Skip to main content

Two kinds of list

Most list endpoints page with a cursor. A few return a complete set that does not page, and truncate it with limit instead. Both shapes carry has_more and next_cursor so a single client can read either, but only the paging kind ever sets them.

Cursor pagination

These endpoints return a page of results with a cursor:
To fetch the next page, send next_cursor back as the cursor parameter. Repeat until has_more is false.
Cursors are opaque. Pass them back exactly as received, and do not build, parse or store them.
Results are returned newest first.

Complete sets

The endpoints in the second row above return the whole set in one response. They have no cursor, so has_more is always false and next_cursor is always null. Here limit truncates the result rather than paging it, and two extra fields tell you whether that happened:
total_count is how many rows matched before limit was applied. capped is true when the response carries fewer than that, so these are the top rows and not all of them.
Rows are ranked, so a capped response is the most significant ones rather than an arbitrary slice. Raise limit to widen it, or narrow from/to to reduce what matches.
Always check capped before reporting a total. Reading len(data) as the count is correct only when capped is false.

Dates

All dates are ISO 8601. Because to is exclusive, consecutive ranges line up without overlapping. A full month of August is from=2026-08-01&to=2026-09-01. Timestamps in responses are UTC, in the form 2026-08-31T09:41:00Z. A value that is not valid ISO 8601 returns 400 invalid_date.

Next steps

Rate limits

Pacing a large export

Errors

Handling failures