Skip to main content
Every list endpoint returns the same envelope and uses cursor-based pagination. Cursors guarantee no duplicates or missing items even if data changes between requests. Items come back newest first, ordered by created_at.

Request parameters

Response envelope

Keep the same query parameters across the whole iteration (filters, limit, etc.). Changing them mid-walk invalidates the cursor.

Walk a list

1

Fetch the first page

2

Fetch each next page

Pass next_page from the previous response as cursor on the next request:
3

Stop when has_more is false

The last page returns "has_more": false and "next_page": null.

Loop in code

A malformed or tampered cursor returns 400 BAD_REQUEST. See Errors for the full envelope.