Skip to main content
Build a REST request from a path that names the venue family and symbol, plus query parameters that set the time window, the shape of the result, and any filters. Each data-type page under Datasets lists its routes’ exact parameters; the rules below are shared by all of them.

Path: venue family and symbol

The symbol sits in the path, and its shape depends on the venue family: Keep the symbol shape intact. A HIP-3 prefix or a HIP-4 # is part of the identifier, not decoration.

Query: time windows

Most routes accept a start and end window. Snapshot-at-time routes use timestamp instead, and the levels routes also accept at. Every one of these parameters takes either form:
  • Unix milliseconds, for example 1767225600000.
  • RFC 3339, for example 2026-01-01T00:00:00Z or 2026-01-01T02:00:00+02:00. URL-encode + as %2B.
start defaults to 24 hours before end on most history routes, and end defaults to now. A time that does not parse returns 400 with error_code invalid_time_range when you send the version header, or invalid_query_params without it. A range that starts before a data type’s first served row is served from that row; see API conventions. Use start and end on /history and /diffs routes. Use timestamp only on snapshot routes such as /orderbook/{symbol} or /orderbook/{symbol}/l2.

Query: shape, size, and filters

A value outside a documented parameter’s accepted set returns 400 and names the parameter. The generated contract for every route is in OpenAPI.

Keep requests bounded

Start with one symbol, one route, and one short window before widening. A bounded request is cheaper, easier to retry, and easier to reason about than an open-ended pull. Size the window and limit to the question, then paginate rather than asking for everything at once.

Next step

Walk a long window page by page with Pagination.
Last modified on October 6, 2026