Offset pagination
Many list endpoints accept:
Example:
Cursor pagination
Every list endpoint also supports cursor pagination, and it is the form to prefer: rows created while you page shift offset-based pages (skipping or repeating rows), but never a cursor.
When
has_more is true, the response includes next_cursor, the last
returned object’s id. Pass it as starting_after on the next request; that is
the whole loop. The two forms cannot be combined in one request.
The server SDK paginates with cursors automatically: iterating a list with
for await advances by starting_after until has_more is false. Pass
starting_after yourself to resume a walk from a saved position.
API-key and webhook-endpoint lists preserve their original full-list behavior
when limit is omitted. They still return a Page, but that page is terminal;
pass a limit when you want incremental requests.
TypeScript
Client guidance
- Do not assume list responses are complete unless pagination metadata says there are no more results.
- Keep
limitmoderate for interactive experiences. - When reviewing a large payment history, prefer repeated small pages over very large list requests.

