Cursor model
List endpoints that can return more rows than yourlimit use cursor
pagination. The response includes a nextCursor field:
nextCursoris a string when more results exist, ornullwhen you’ve reached the end.- To get the next page, pass it back as the
cursorfield in your next request body (forPOSTendpoints) — keep every other parameter (includingsort_direction) identical.
Request — page 2
What’s inside a cursor
A cursor is a base64-encoded, HMAC-signed keyset token encoding{ ts, id, dir } — the timestamp and ID of the last row you saw, and the
sort direction the cursor was issued for. You should treat it as an opaque
string: don’t decode, construct, or edit it.
If a cursor is malformed, expired-format, or tampered with, the API returns:
400 Bad Request
sort_direction must stay constant
Because the cursor encodes a sort direction, changing sort_direction
between pages of the same query invalidates the cursor — you’ll get
INVALID_CURSOR or unexpected results. If you need to re-sort, start a new
query without a cursor.
Page size
Uselimit to control page size. The maximum allowed value depends on your
tier’s max_rows (see Rate Limits & Tiers) — requesting a
higher limit than your tier allows is clamped, not rejected.
Endpoints that are NOT paginated
The following endpoints return a complete result set (or a single object) in one response and do not acceptcursor / return nextCursor:
POST /v1/domain/overviewPOST /v1/domain/assetsPOST /v1/domain/third-party-riskGET /v1/domain/{domain}/timelineGET /v1/domain/top-exposedPOST /v1/search/stealer-idPOST /v1/search/infection-analysisPOST /v1/search/categorize-domainsPOST /v1/search/keywordGET /v1/accountGET /v1/stats/*