px, sz, n), not the individual orders themselves.
L2 is the shape of the book: spreads, depth charts, a top-of-book monitor, or a light historical window. Step up to L3 or L4 only when individual resting orders matter, and use Order history or Order flow for lifecycle records. Every venue serves native L2 snapshots, which on core and HIP-3 come from two sources and stop at 20 levels per side. Hyperliquid core and HIP-3 also serve full-depth aggregated L2 derived from L4. Order books compares the depths side by side.
Get an L2 snapshot
The path and symbol format change by venue family.- Hyperliquid
- Spot
- HIP-3
- HIP-4
- Lighter
- Lighter on Robinhood Chain
Plain perp symbols such as
BTC and ETH. Use the /l2 routes for full-depth aggregated L2 (request levels via depth) from 2026-03-11 01:03 UTC onward.Native L2 versus full-depth L2
Hyperliquid core and HIP-3 expose two L2 surfaces, and they answer different questions:
Native Hyperliquid and HIP-3 L2 routes serve two sources, described below, and top out at 20 levels per side. A request like
depth=200 on /v1/hyperliquid/orderbook/BTC/history still returns at most 20 levels. For full-depth aggregated L2 on those families, use the /l2 route family. Spot, HIP-4, and Lighter serve native L2 depth.
Two sources in native core and HIP-3 history
Native Hyperliquid core and HIP-3 L2 history holds two sources, interleaved in time. Every snapshot names its source insource, and source=venue or source=node on the request returns only that source.
Both sources hold the top 20 levels per side, and at the same instant they show the same book. Use
venue for the venue’s own view and the longest history. Use node for a regular grid in chain time, for example to line the book up with trades and L4 events, which carry block time.
The node source starts on 2026-06-15 08:26 UTC for core and on 2026-06-01 for HIP-3, with some HIP-3 markets from 2026-05-01. Where we could not confirm our record of the order stream against the node’s own state, the node source has no rows for that stretch, and the venue source still covers it.
When you filter history by source, send the same source on every page; meta.next_cursor continues the filtered series.
Request parameters
The full-depth
/l2/history routes return the stored full depth by default. Pass depth to keep only the best levels on each side; bid_levels and ask_levels still report the full count. Ask for a bounded start/end window and paginate with cursor, and check a long window with Data quality before relying on it. Lighter’s native history route additionally accepts granularity=checkpoint|30s|10s|1s|tick; checkpoint returns snapshot items, while tick items contain a checkpoint plus its ordered deltas. Use that route-specific shape instead of treating every L2 history item as a plain book snapshot.
Example response
The L2 snapshot returns the same envelope across venues. Native core and HIP-3 snapshots also carrysource:
px (price), sz (total size), and n (order count). px, sz, mid_price, spread, and spread_bps are decimal strings, so parse them as decimals, not floats. n aggregates the orders at a level; L4 lists each one with its oid and user_address. The /l2 routes also return bid_levels, ask_levels, total_bid_size, and total_ask_size. Full field meanings live in the field dictionary, the Reference carries the exact types, and Example responses has more payload shapes.
Access
Each venue’s start date, WebSocket channels, and page limit come fromGET /v1/capabilities, followed by the SDK, CLI, and MCP names for the same data. The start date is the first served row on that venue; exact starts vary by market, so check /v1/symbols for a single symbol. Send 0xArchive-Version: 2026-10-01 for the current response contract; see API conventions.
Stream or replay it
Hyperliquid core, Spot, HIP-3, and Lighter stream L2 books live. Subscribe toorderbook on Hyperliquid core; Spot, HIP-3, and Lighter use spot_orderbook, hip3_orderbook, and lighter_orderbook.
lighter_orderbook sends a full top-20 Lighter book at most once per interval: one book per second by default, or the rate set with interval_ms. Its live payload differs from the REST response above; see Lighter WebSocket channels. Current Lighter L2 snapshots are also available through REST, and lighter_orderbook supports historical WebSocket replay. Historical data is also available through REST and exports. HIP-4 current order-book reads use REST; stored hip4_orderbook history remains replayable.
Export in bulk
L2 books export as thel2_orderbook schema ($3/GB, $5 minimum), delivered as Parquet with ZSTD compression. Keep L2, L3, and L4 in separate tables. Build a selection in the Data Catalog; columns and coverage keys are on Export schemas.