How it works
Cursors are opaque strings — you should not attempt to parse or construct them. Pass the cursor you received in the previous response to advance to the next page.First page
Omit thecursor parameter entirely to fetch the first page:
Subsequent pages
Takenext_cursor from the response and pass it as cursor on the next request:
End of results
When you reach the last page,next_cursor is null and has_more is false. Stop paginating.
Pagination parameters
string
Opaque cursor for pagination. Pass the
next_cursor value from the previous response to fetch the next page. Omit for the first page.integer
default:"25"
Maximum number of items to return per page. Must be between
1 and 100.Response envelope
Every list endpoint wraps its results in this envelope:array
required
The page of results.
string | null
required
Opaque cursor to pass as
cursor on the next request. null when this is the last page.boolean
required
true if there are more results beyond this page.integer
Total number of matching items. May be approximate for very large datasets.
Example: paginating through users
The following example shows a full pagination cycle usingGET /v1/users.
Request — page 1
next_cursor is null — you have fetched all records.
Iterating all pages in code
Cursors are not permanent. Do not store a cursor and attempt to resume pagination days later — use the cursor immediately within the same session.