Overview
All list endpoints return paginated results using cursor-based pagination. Results are ordered newest first, and you can page in both directions: towards older records withnext_cursor and towards newer records with previous_cursor.
Response envelope
List endpoints return a standard envelope:Query parameters
Traversing pages
Fetch the first page, then passnext_cursor to move towards older records, or previous_cursor to move back towards newer records. Both tokens go in the same cursor parameter, and each cursor already encodes its own direction.
list method returns an async iterator that handles cursor traversal automatically; you don’t need to pass cursor yourself. Use the iterator when you want to walk every page; pass cursor explicitly only if you’re rendering one page at a time in your own UI.
Important notes
- Cursors are opaque. Do not decode, parse, or construct them. Always use the value returned by the API.
- Cursors are time-limited. An expired cursor is rejected. Start a new list request without
cursorif this happens. - Changing filters between pages invalidates the cursor. Omit
cursorto begin pagination again when filters change. - Pagination is bidirectional. Use
next_cursorto page towards older records andprevious_cursorto page back towards newer records, both via thecursorparameter.has_moreandhas_previoustell you when each direction is exhausted.