limit to set the page size, read the next cursor from the response, and send it back as cursor until the response has no next cursor. Never build, parse, or change a cursor: pass back exactly the value the API returned.
Page through a list
Request the first page without a cursor:pagination.has_more, it is false on the last page.
A cursor records a position, not the filters or sort order. Send the same filters, sort, and limit on every page of one list. A cursor reused with different filters continues from the same position under the new filters.
Fetch every page
pagination.next_cursor on some endpoints and a top-level next_cursor on others.
Parameters
Paginated endpoints
Rules for an out-of-range
limit:
- Above the maximum: the API uses the maximum, except on
GET /v1/webhooks/{id}/deliveries, where a value above 100 uses 50. - Text instead of a number: treated like 0, except on
GET /v1/inbox/reviews/{accountId}, where text uses 20 and only a number below 1 returns400 validation.field_invalid. - Google and WhatsApp endpoints: positive values go to the platform unchecked, so the platform decides what it accepts. The exception is
GET /v1/platforms/google/accounts/{id}/search-keywords, where a negative value or a value above 100 returns400 validation.page_size_invalid. - Platform page limits:
GET /v1/inbox/comments/{postId}can return fewer comments thanlimit, because the platform sets its own page size. YouTube returns at most 100 per page, and Bluesky returns one page.
GET /v1/posts rejects a malformed cursor with 400 validation.field_invalid and error.meta.field set to cursor. Pass only values the API returned.
GET /v1/events returns the events inside your plan’s event history. See Plans and usage.
Lists with no pagination
These endpoints return every item in one response:GET /v1/accounts(filter withbrand_id),GET /v1/brands,GET /v1/keys,GET /v1/keys/scopes,GET /v1/invites,GET /v1/announcements,GET /v1/billing/plansGET /v1/webhooks,GET /v1/webhooks/eventsGET /v1/automations(filter withaccount_id)GET /v1/accounts/{id}/pages,GET /v1/accounts/{id}/boardsGET /v1/inbox/reviewsGET /v1/platforms/facebook/logins/{loginId}/pages,GET /v1/platforms/google/logins/{loginId}/locationsGET /v1/platforms/instagram/accounts/{id}/media/{mediaId}/collaboratorsGET /v1/exportsreturns the 50 newest exports. Older exports are not listed.GET /v1/exports/{id}/videos
GET /v1/usage returns one object.
Related
- API reference: every query parameter on each list endpoint
- IDs: store IDs and cursors as opaque strings
- Errors: the
validation.*codes list endpoints return - Plans and usage: how long events and webhook deliveries stay listed on each plan
- Rate limits: the limits that apply to every request, including platform limits on reads