Skip to main content
Every REST request is a path plus query parameters. The path picks the venue family and symbol; the query narrows the window and shape of the result. The per-data-type pages list the exact parameters for each route; this page is the shared grammar across all of them.

Path: venue family and symbol

The symbol sits in the path, and its shape depends on the venue family:
FamilyPath namespaceSymbol shape
Hyperliquid core/v1/hyperliquid/*Plain perp, e.g. BTC
Hyperliquid Spot/v1/hyperliquid/spot/*Pair, e.g. HYPE-USDC
HIP-3/v1/hyperliquid/hip3/*Builder prefix, e.g. km:US500 (case-sensitive)
HIP-4/v1/hyperliquid/hip4/*Outcome side id, URL-encoded, e.g. %230
Lighter/v1/lighter/*Lighter symbol; list with /v1/lighter/instruments
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. The format is not uniform, so check the route:
  • Market-state routes (order books, trades, candles, funding, open interest, liquidations) take Unix milliseconds. start defaults to 24h ago, end to now.
  • Order routes (order history, order flow, take profits & stop losses) also take Unix milliseconds, e.g. 1767225600000. ISO 8601 strings are rejected.
When in doubt, the data-type page and the OpenAPI contract give the exact type per route.

Query: shape and size

ParameterWhere it appliesWhat it does
intervalcandles, funding, open interest, order flowAggregation bucket, e.g. 1h
depthorder-book snapshot routes where documentedLevels per side. Native Hyperliquid/HIP-3 L2 routes cap at 20 levels (venue source limit); full-depth Hyperliquid/HIP-3 /l2 snapshots return the depth you request. Not tier-gated.
limitmost list routesMax rows; the default and ceiling vary by route
cursorpaginated routesContinuation token from meta.next_cursor (see Pagination)
statusorder historyFilter by order status where supported
order_typeorder historyFilter by order type where supported
triggeredTP/SLFilter by whether a trigger fired
userorder history, TP/SLFilter by wallet address. user_address is ignored; use user
Use start and end on /history and /diffs routes. Use timestamp only on snapshot routes such as /orderbook/{symbol} or /orderbook/{symbol}/l2.

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. For the exact parameter table per data type, open the matching page under Market data; for the generated contract, use OpenAPI.
Last modified on July 13, 2026