Pagination
Cursor pagination: which endpoints page, the envelope, and how to walk every page.
List endpoints return a cursor-paginated envelope. Read data, and while has_more is true, request the next page by passing the returned next_cursor as ?cursor=. The cursor is opaque - pass it back verbatim, don't build your own. ?limit= is 1-100 (default 50).
Envelope
{
"data": [ … ],
"has_more": true,
"next_cursor": "Y21jMGNvbnRhY3QwMDAx"
}
# fetch the next page:
GET /contacts?cursor=Y21jMGNvbnRhY3QwMDAxPages are keyset-based (not offset), so rows are never skipped or repeated across pages even as the list changes underneath you. When has_more is false, next_cursor is null - stop.