Skip to main content
Collection endpoints use cursor-based pagination in created_at DESC, id DESC order — newest first. Pass the next_cursor from one response as ?cursor= on the next request. There are no page numbers and no offsets.

Paginated endpoints

The following endpoints include next_cursor and has_more in meta:
  • GET /v1/videos
  • GET /v1/videos/{id}/analyses
  • GET /v1/deals
  • GET /v1/deals/{id}/activities
  • GET /v1/deals/{id}/scorings

Non-paginated collections

These endpoints return the full collection in a single response — no cursor or limit parameters are accepted:
  • GET /v1/members
  • GET /v1/webhooks
  • GET /v1/videos/{id}/transcript
  • GET /v1/videos/{id}/events
?cursor=... and ?limit=... on these endpoints are silently ignored — the request will not error. If you’re expecting a limit to apply and it isn’t, you’re probably on a non-paginated endpoint.

Query parameters

Response shape

When there are no more pages, has_more is false and next_cursor is null.

Drill-through example

Loop on has_more rather than on the stringified cursor — it’s unambiguous even if a future response shape changes:

Invalid cursors

A malformed or unparseable cursor silently falls back to page 1. This is intentional — cursor encoding may evolve between API versions, and a stale cursor from a previous client build shouldn’t break the consumer. If you need to detect stale cursors, compare the first item’s ID to what you were expecting — or, more robustly, store the last successful cursor with a timestamp and re-fetch from scratch periodically.

Stability under concurrent writes

Cursors use keyset pagination on (created_at, id), so:
  • Items created after you start paging appear on the first page of a fresh query, never in the middle of your drill-through.
  • Items deleted during paging may skip pages — you’ll see the next item after the gap, not a duplicate of an earlier ID.
  • No overlapping IDs between pages.
This is safer than offset pagination for long-running drill-throughs, but the total count isn’t available mid-iteration.