posts.listSaved
List the connected account's own saved posts (a private bookmark list), newest-saved-first.
Prerequisites
- A Curviate API key, passed as
apiKeywhen you construct the client. Authentication and accounts shows how to create one. - A connected LinkedIn account. This resource is account-scoped: the
account_idis injected automatically by the account-scoped accessor, so you pass it once tocurviate.account(...)and every call below inherits it. Authentication and accounts covers connecting one, and accounts.list returns theaccount_idof each account already connected.
Signature
listSaved(params?: SavedPostListQuery): Promise<SavedPostListPage>Example
import { Curviate } from "@curviate/sdk";
const curviate = new Curviate({
apiKey: "cvt_live_...",
baseUrl: "https://api.curviate.com",
});
const page = await curviate.account("acc_YOUR_ACCOUNT_ID").posts.listSaved();
for (const item of page.items ?? []) {
console.log(item.id);
}
// `page.cursor` is the opaque cursor for the next page (null when exhausted).Parameters
| Name | Type | Required | Description |
|---|---|---|---|
limit | number | No | Page-size lower bound (1-100, default 20); returns AT LEAST this many items, up to the next upstream page boundary (a page may return slightly more). Paginate with the returned cursor and walk until cursor is null for the complete list. |
cursor | string | No | Opaque pagination cursor from a prior response's cursor; omit for the first page. Page until cursor is null. There is no offset parameter; an unanchored numeric offset is inert upstream, so it is not a product-surface knob. |
Returns
Resolves to SavedPostListPage. Top-level fields: object, items, cursor, safety_warning.
Error codes
| Code | What it means, and what to do |
|---|---|
UNAUTHORIZED | The API key is missing, malformed, or revoked. Check the key you passed to the client. |
INVALID_REQUEST | A parameter failed validation. The message names the offending field; fix the request rather than retrying it. |
RATE_LIMIT_ACCOUNT | This account's own quota is exhausted. Wait for the window in the Retry-After header, then retry. |
RATE_LIMIT_TENANT | The tenant-wide quota is exhausted across all accounts. Slow the whole workload, not just this call. |
PLATFORM_RATE_LIMIT | LinkedIn is throttling this account. Back off well beyond the hinted delay; sustained pressure risks the account. |
PLATFORM_ERROR | An upstream failure, usually transient: retry once with backoff before treating it as a real error. Check the response first, though. When it carries retry_likely_to_succeed: false and retry_hint: {kind: "never"}, retrying cannot help and backing off only delays the real answer. |
ACCOUNT_NOT_FOUND | No connected account with that id belongs to this tenant. List your accounts to get a current id. |
NO_ACTIVE_SEAT | The targeted account is not on an active seat. Buy or attach a seat in Billing, then retry. |
RESOURCE_NOT_FOUND | The id in the path does not exist, or is not visible to this account. Re-read it from the list endpoint that produced it. |
Every code above is a stable CurviateError.code you can branch on. The full list, the response envelope, and retry semantics are in the Error codes reference.
Next steps
posts.listComments: List comments on a post.posts.listReactions: List reactions on a post.posts.listUserPosts: List a user's own posts.- SDK Quick Start: installation, the client, account scoping, and pagination.