/v1/lighter/* for Lighter market data, L2 depth, L3 order-level snapshots and history, trades, candles, funding, open interest, liquidations, and reconstruction-oriented jobs. For the product-level coverage view, see Lighter market data.
Lighter has two deployments: mainnet and Robinhood Chain. This page covers mainnet. The Robinhood Chain deployment is served under /v1/rh-lighter/* with the same routes except L3; see Lighter on Robinhood Chain REST.
Answer: Use
/v1/lighter/* for Lighter data. Choose L2 for aggregated levels, L3 for individual resting orders, and the route-specific trades, candles, funding, or OI operation for history. Do not rewrite Lighter L3 as Hyperliquid L4.Evidence: Start with Lighter instruments, confirm the operation in OpenAPI, and check Venue coverage.Route groups
First request
px/sz/n as decimal strings; see the field dictionary). The difference is depth: Lighter also serves an order-level L3 book at /v1/lighter/l3orderbook/{symbol}, with individual orders rather than aggregated levels. The current L3 route returns one book object; the history route returns an array of snapshots. History granularity defaults to checkpoint and also accepts 30s, 10s, 1s, and tick; each item can contain up to 250 orders per side. L3 fields use numeric order_index, owner_account_index, price, remaining_size, and original_size, not L2 px/sz strings or wallet addresses.
Choosing depth
Use L2 order-book routes for price-level depth. Use the L3 route at/v1/lighter/l3orderbook/{symbol} for order-level detail or reconstruction; it returns individual orders. The current response is one object, while history returns an array of snapshots. History supports checkpoint, 30s, 10s, 1s, and tick granularity, with up to 250 orders per side per item. For long windows, begin with one bounded request, paginate deliberately, and store meta.request_id per page. Pair Lighter history with data-quality checks when the output feeds a backtest, model, alert, dashboard, or export.
Trades: canonical versus preliminary
Lighter trade routes are two-tier./v1/lighter/trades/{symbol} serves canonical per-fill history reconciled daily from the Lighter Foundation archive: rows marked source: "bucket", enriched with fields such as tx_hash, order_id, fee, realized_pnl, and maker/taker attribution, with end clamped to the finalization watermark reported in meta.finalized_through. Per-fill rows begin January 17, 2025, with exact starts varying by market. /v1/lighter/trades/{symbol}/recent serves preliminary live rows marked source: "ws" without that enrichment. Field sets and the clamp behavior are documented on Trades and Lighter Historical Data API. Lighter identity fields such as account_index are Lighter account indexes, not wallet addresses.
Lighter request checklist
Use this checklist before a Lighter workflow enters code, tests, or an agent task.Live data over WebSocket
For continuing updates, subscribe tolighter_orderbook, lighter_trades, lighter_open_interest, or lighter_funding on wss://api.0xarchive.io/ws instead of polling these routes. Live messages use different payload shapes from the REST responses, and live trades are preliminary until the canonical trade route finalizes them. Current candles and L3 snapshots stay on REST. See Lighter WebSocket channels.
Generated client guidance
When the user says Lighter or Lighter.xyz, map to/v1/lighter/* and keep Lighter fixtures and data-quality checks in their own tests. If a generated client has one generic exchange string, confirm Lighter still resolves to the Lighter namespace rather than a relabeled Hyperliquid symbol.
For generated route details, open Lighter trades or current Lighter funding.