Pagination
Every list endpoint pages via opaque cursor tokens. Walk a result set by passing back the next_cursor you receive on the previous page.
The cursor contract
One pattern across every list endpoint.
List endpoints (/v2/tickers, /v2/scan, /v2/signals/{signal}, /v2/signals/.../history/..., /v2/universes, /v2/rules, /v2/webhooks, /v2/webhooks/{id}/deliveries) return a next_cursor alongside the data. Pass it back as ?cursor= to get the next page. When there’s no more data, next_cursor is null.
Treat cursors as opaque
Don’t parse them. Don’t construct them. Don’t cache them.
The server bakes the sort key, the page size, and the original filters into each token. Changing any query parameter mid-walk invalidates the cursor. If you need to change the filter, start a new walk.
Page size
Default 50, max 100.
Pass ?limit= to change page size. The maximum is 100 on every list endpoint. Bulk-fetch endpoints (/v2/tickers?symbols=…) have their own limits documented on the endpoint page.
See also
Adjacent topics.
- Errors & rate limits — what happens when you blow past the limit.
- Schema — the data model you’re walking through.