Pagination
List endpoints are cursor-paged against a pinned snapshot, so a page never shifts under you mid-walk.
json
{
"data": [ ... ],
"pagination": {
"next_cursor": "eyJvIjoyNSwicyI6IjIwMjYtMDktMDdUMTg6MDA6MDBaIn0",
"has_more": true
}
}Pass next_cursor back as cursor to fetch the following page. Do not construct or decode cursors — they encode the snapshot the walk is pinned to, and a hand-built one will be rejected.
History is bounded
A history request may span at most 31 days, and your plan's maximum_history_days may bound it further. This is an upstream limit as much as a policy one: the public candle source retains a rolling 31-day window, so a longer range does not exist to be served.
Caching
Latest and aggregate responses carry Cache-Control: private, no-cache with Vary: X-API-Key, because visibility is per-caller. A shared CDN will correctly refuse to cache them; cache in your own application instead, keyed by the same scope your key carries.