Response Schemas
Field names, nested objects, and example payloads for the main response shapes.
Every venue route returns the same envelope: a top-level success flag, a data body, and a meta block. Cursor pagination lives on the next cursor inside meta.
Schemas below show the full response shape. Expand the data field to see payload fields and meta to see pagination details. Data Quality routes return their own top-level shape and are documented separately.
Response envelope
Standard envelope for every venue route. data is an object for snapshots and an array for series and history.
Standard envelope
Every /v1/{venue}/* route returns this shape.
{ "success": true, "data": [ /* one item per row */ ], "meta": { "count": 1000, "next_cursor": "1761840000596_907964252522803", "request_id": "4d1fe223-53e7-498d-a54a-4fb2f9314734" }}| Field | Description |
|---|---|
success | Always true on a 2xx response. Errors return success: false with an error field. |
data | Payload. Object for single-snapshot routes (/orderbook/:symbol, /summary/:symbol) and an array for series and history routes. |
meta.count | Number of items returned in data. |
meta.next_cursor | Cursor for the next page on paginated routes. Missing means you have reached the final page. |
meta.request_id | UUID for support traceability — log it next to errors. |
Cursor pagination
Paginated routes (history, trades, candles, liquidations, order flow, etc.) return up to limit items per page along with meta.next_cursor. Pass that cursor on the next request to fetch the next page. The cursor is opaque — do not parse it.
Loop pattern
Keep calling until meta.next_cursor is missing. The cursor encodes both the boundary and any tie-breaking — passing it back guarantees no overlaps and no skipped rows.
import requests
API = "https://api.0xarchive.io"HEADERS = {"X-API-Key": "YOUR_KEY"}
cursor = Nonewhile True: params = {"start": 1761840000000, "end": 1761926400000, "limit": 1000} if cursor: params["cursor"] = cursor r = requests.get(f"{API}/v1/hyperliquid/trades/BTC", headers=HEADERS, params=params) body = r.json() for trade in body["data"]: process(trade) cursor = body["meta"].get("next_cursor") if not cursor: break # last page reached
| Concept | How it behaves |
|---|---|
limit | Page size. Default 100, max 1000 on most routes. Larger pages reduce round trips. |
cursor | Only set this on the second request and beyond. Pass meta.next_cursor from the previous response verbatim. |
| Stop condition | When the response omits meta.next_cursor, you have reached the end of the requested start/end window. |
| Idempotence | Cursors are stable across retries within the same window. A 5xx that returns the same cursor is safe to retry. |
| DQ incidents | Data Quality incidents use limit/offset instead of cursors — see the Data Quality schemas below. |
Market state
Single-snapshot payloads for books, current pricing, funding, and open interest.
Order Book
GET /v1/{hyperliquid|lighter|hyperliquid/hip3|hyperliquid/hip4}/orderbook/:symbol
{
"success": true,
"data": {
"coin": "BTC",
"symbol": "BTC",
"timestamp": "2026-01-01T12:00:00Z",
"bids": [
{
"px": "42150.50",
"sz": "2.5",
"n": 5
},
{
"px": "42150.00",
"sz": "5.2",
"n": 8
}
],
"asks": [
{
"px": "42151.00",
"sz": "1.8",
"n": 3
},
{
"px": "42151.50",
"sz": "3.1",
"n": 4
}
],
"mid_price": "42150.75",
"spread": "0.50",
"spread_bps": "1.19"
},
"meta": {
"count": 1,
"request_id": "4d1fe223-53e7-498d-a54a-4fb2f9314734"
}
}Symbol Summary
GET /v1/{venue}/summary/:symbol
{
"success": true,
"data": {
"coin": "BTC",
"symbol": "BTC",
"timestamp": "2026-01-01T12:00:00Z",
"mark_price": "42150.75",
"oracle_price": "42148.50",
"mid_price": "42150.75",
"open_interest": "12500.5",
"funding_rate": "0.0001",
"premium": "0.00005",
"volume_24h": "1250000000",
"liquidation_volume_24h": 5000000
},
"meta": {
"count": 1,
"request_id": "4d1fe223-53e7-498d-a54a-4fb2f9314734"
}
}Open Interest (current)
GET /v1/{venue}/openinterest/:symbol/current
{
"success": true,
"data": {
"coin": "BTC",
"symbol": "BTC",
"timestamp": "2026-01-01T12:00:00Z",
"open_interest": "12500.5",
"mark_price": "42150.75",
"oracle_price": "42148.50",
"day_ntl_volume": "1250000000",
"mid_price": "42150.75",
"impact_bid_price": "42150.00",
"impact_ask_price": "42151.50"
},
"meta": {
"count": 1,
"request_id": "4d1fe223-53e7-498d-a54a-4fb2f9314734"
}
}Funding Rate (current)
GET /v1/{venue}/funding/:symbol/current
{
"success": true,
"data": {
"coin": "BTC",
"symbol": "BTC",
"timestamp": "2026-01-01T00:00:00Z",
"funding_rate": "0.0001",
"premium": "0.00005"
},
"meta": {
"count": 1,
"request_id": "4d1fe223-53e7-498d-a54a-4fb2f9314734"
}
}Symbol Freshness
GET /v1/{venue}/freshness/:symbol
{
"success": true,
"data": {
"coin": "BTC",
"symbol": "BTC",
"exchange": "hyperliquid",
"measured_at": "2026-04-30T17:09:54.286Z",
"orderbook": {
"last_updated": "2026-04-30T17:09:52.357Z",
"lag_ms": 1929
},
"trades": {
"last_updated": "2026-04-30T17:09:05.051Z",
"lag_ms": 49235
},
"funding": {
"last_updated": "2026-04-30T17:09:39.281Z",
"lag_ms": 15005
},
"open_interest": {
"last_updated": "2026-04-30T17:09:39.281Z",
"lag_ms": 15005
},
"liquidations": {
"last_updated": "2026-04-30T15:32:15.597Z",
"lag_ms": 5858689
}
},
"meta": {
"count": 1,
"request_id": "4d1fe223-53e7-498d-a54a-4fb2f9314734"
}
}Instruments
Discovery routes. Use these to enumerate tradable symbols before pulling other data.
Instruments (Hyperliquid / Lighter)
GET /v1/{hyperliquid|lighter}/instruments and /v1/{hyperliquid|lighter}/instruments/:symbol
{
"success": true,
"data": [
{
"name": "BTC",
"sz_decimals": 5,
"max_leverage": 40,
"instrument_type": "perp",
"is_active": true
}
],
"meta": {
"count": 230,
"request_id": "4d1fe223-53e7-498d-a54a-4fb2f9314734"
}
}HIP-3 Instruments
GET /v1/hyperliquid/hip3/instruments and /v1/hyperliquid/hip3/instruments/:symbol
{
"success": true,
"data": [
{
"coin": "km:US500",
"namespace": "km",
"ticker": "US500",
"mark_price": 715.36,
"open_interest": 4490.7,
"mid_price": 715.355,
"latest_timestamp": "2026-04-30T17:10:19.439Z"
}
],
"meta": {
"count": 132,
"request_id": "4d1fe223-53e7-498d-a54a-4fb2f9314734"
}
}HIP-4 Instruments (per side)
GET /v1/hyperliquid/hip4/instruments and /v1/hyperliquid/hip4/instruments/:symbol — one row per coin (Yes/No sides). Coins use the numeric id (0, 1, 10, 11, ...).
{
"success": true,
"data": [
{
"outcome_id": 0,
"side": 0,
"asset_id": 100000000,
"coin": "#0",
"symbol": "#0",
"name": "BTC ≥ 78213 by 2026-05-03 06:00 UTC — Yes",
"description": "class:priceBinary|underlying:BTC|expiry:20260503-0600|targetPrice:78213|period:1d",
"side_name": "Yes",
"recurring_class": "priceBinary",
"recurring_underlying": "BTC",
"recurring_expiry": "2026-05-03T06:00:00Z",
"recurring_target_px": 78213,
"recurring_period": "1d",
"builder_address": "0x1234567890abcdef1234567890abcdef12345678",
"is_settled": false,
"first_seen_at": "2026-05-02T07:47:00Z",
"last_updated_at": "2026-05-02T20:25:00Z"
}
],
"meta": {
"count": 2,
"request_id": "4d1fe223-53e7-498d-a54a-4fb2f9314734"
}
}HIP-4 Outcomes (per outcome)
GET /v1/hyperliquid/hip4/outcomes (list, no aggregated_oi) and GET /v1/hyperliquid/hip4/outcomes/:outcome_id (detail, includes aggregated_oi).
{
"success": true,
"data": [
{
"outcome_id": 0,
"name": "BTC ≥ 78213 by 2026-05-03 06:00 UTC",
"description_raw": "class:priceBinary|underlying:BTC|expiry:20260503-0600|targetPrice:78213|period:1d",
"class": "priceBinary",
"underlying": "BTC",
"expiry": "2026-05-03T06:00:00Z",
"target_price": 78213,
"period": "1d",
"side_specs": [
{
"side": 0,
"name": "Yes",
"coin": "#0",
"asset_id": 100000000
},
{
"side": 1,
"name": "No",
"coin": "#1",
"asset_id": 100000001
}
],
"is_settled": false,
"status": "live",
"source_seen_at": "2026-05-02T20:25:00Z",
"aggregated_oi": {
"side0_open_interest_contracts": 568048,
"side1_open_interest_contracts": 568048,
"outcome_display_open_interest_contracts": 1136096,
"paired_set_supply_contracts": 568048,
"side_supply_parity": true,
"currency": "USDH",
"as_of": "2026-05-02T20:27:21Z",
"side0_as_of": "2026-05-02T20:27:21Z",
"side1_as_of": "2026-05-02T20:27:21Z"
}
}
],
"meta": {
"count": 1,
"request_id": "4d1fe223-53e7-498d-a54a-4fb2f9314734"
}
}Hyperliquid Spot Pairs
GET /v1/hyperliquid/spot/pairs and /v1/hyperliquid/spot/pairs/:symbol. 294 spot pairs. Symbols are dashed (PURR-USDC); the wire/index forms are returned for reference but the API never accepts @<n> in URLs.
{
"success": true,
"data": [
{
"symbol": "PURR-USDC",
"base": "PURR",
"quote": "USDC",
"wire": "PURR/USDC",
"pair_index": 107
}
],
"meta": {
"count": 294,
"request_id": "4d1fe223-53e7-498d-a54a-4fb2f9314734"
}
}Hyperliquid Spot
Spot fills carry fields that perp fills do not: open-set fee_token (USDC, PURR, HYPE, KHYPE, USOL, ...), real EVM tx_hash on roughly 69% of fills, builder_address / builder_fee for routed orders, and twap_id for slices of a parent TWAP. Spot has no funding, OI, liquidations, or candles by design (build OHLCV client-side from spot trades).
Spot Trade
GET /v1/hyperliquid/spot/trades/:symbol. Backfilled from 2025-03-22; pre-March 2025 spot history is unrecoverable from any free public archive.
{
"success": true,
"data": [
{
"symbol": "PURR-USDC",
"coin": "PURR/USDC",
"side": "B",
"price": "0.32152",
"size": "1502.0",
"timestamp": "2026-05-05T17:13:24.733Z",
"tx_hash": "0xf19c2a14abc7b4f60a5d2ae8c9b0f4a1d6e7c2b3a4d5e6f70819203a4b5c6d7e",
"trade_id": 1003245567,
"order_id": 89567103221,
"crossed": true,
"fee": "0.4824",
"fee_token": "USDC",
"user_address": "0x9a3c4d5e6f7081a2b3c4d5e6f70819203a4b5c1e",
"builder_address": "0x4950abcdef1234567890abcdef12345678909395",
"builder_fee": "0.024",
"twap_id": null,
"direction": "Buy"
}
],
"meta": {
"count": 1,
"next_cursor": "1761840000596_907964252522803",
"request_id": "4d1fe223-53e7-498d-a54a-4fb2f9314734"
}
}Spot TWAP
GET /v1/hyperliquid/spot/twap/:symbol and /v1/hyperliquid/spot/twap/user/:user. Live-only from 2026-05-05.
{
"success": true,
"data": [
{
"symbol": "HYPE-USDC",
"coin": "HYPE/USDC",
"twap_id": 7732,
"user_address": "0x44ad567890abcdef1234567890abcdef12348b9c",
"side": "A",
"slice_price": "24.875",
"slice_size": "12.3",
"timestamp": "2026-05-05T17:13:25.119Z",
"parent_total_size": "120.0",
"completed_size": "36.9",
"status": "progressing"
}
],
"meta": {
"count": 1,
"next_cursor": "1761840000596_907964252522803",
"request_id": "4d1fe223-53e7-498d-a54a-4fb2f9314734"
}
}Historical series
Paginated time-series payloads. Stop when meta.next_cursor is missing.
Trades
GET /v1/{venue}/trades/:symbol — fill-level history with cursor pagination
{
"success": true,
"data": [
{
"symbol": "ETH",
"coin": "ETH",
"side": "B",
"price": "2250.50",
"size": "1.5",
"timestamp": "2026-01-01T12:00:00Z",
"trade_id": 12345678,
"crossed": true,
"fee": "0.45",
"fee_token": "USDC",
"direction": "Open Long",
"builder_address": "0xb84c7fb41ee7d8781e2b0d59eed2accd2ae99533",
"builder_fee": "0.039",
"priority_gas": 3e-8
}
],
"meta": {
"count": 1000,
"next_cursor": "1761840000596_907964252522803",
"request_id": "4d1fe223-53e7-498d-a54a-4fb2f9314734"
}
}Trades (recent)
GET /v1/lighter/trades/:symbol/recent, /v1/hyperliquid/hip3/trades/:symbol/recent, and /v1/hyperliquid/hip4/trades/:symbol/recent — most recent fills, no pagination
{
"success": true,
"data": [
{
"symbol": "ETH",
"coin": "ETH",
"side": "B",
"price": "2250.50",
"size": "1.5",
"timestamp": "2026-01-01T12:00:00Z",
"trade_id": 12345678,
"crossed": true,
"fee": "0.45",
"fee_token": "USDC",
"direction": "Open Long",
"builder_address": "0xb84c7fb41ee7d8781e2b0d59eed2accd2ae99533",
"builder_fee": "0.039",
"priority_gas": 3e-8
}
],
"meta": {
"count": 50,
"request_id": "4d1fe223-53e7-498d-a54a-4fb2f9314734"
}
}Order Book History
GET /v1/{venue}/orderbook/:symbol/history — checkpoint-rate snapshots (or sub-second on Lighter granularity options)
{
"success": true,
"data": [
{
"coin": "BTC",
"symbol": "BTC",
"timestamp": "2026-01-01T12:00:00Z",
"bids": [
{
"px": "42150.50",
"sz": "2.5",
"n": 5
},
{
"px": "42150.00",
"sz": "5.2",
"n": 8
}
],
"asks": [
{
"px": "42151.00",
"sz": "1.8",
"n": 3
},
{
"px": "42151.50",
"sz": "3.1",
"n": 4
}
],
"mid_price": "42150.75",
"spread": "0.50",
"spread_bps": "1.19"
}
],
"meta": {
"count": 1,
"next_cursor": "1761840000596_907964252522803",
"request_id": "4d1fe223-53e7-498d-a54a-4fb2f9314734"
}
}Candles
GET /v1/{venue}/candles/:symbol
{
"success": true,
"data": [
{
"timestamp": "2026-01-01T12:00:00Z",
"open": 42150.5,
"high": 42200,
"low": 42100,
"close": 42180,
"volume": 125.5,
"quote_volume": 5290000,
"trade_count": 1234
}
],
"meta": {
"count": 1,
"next_cursor": "1761840000596_907964252522803",
"request_id": "4d1fe223-53e7-498d-a54a-4fb2f9314734"
}
}Funding History
GET /v1/{venue}/funding/:symbol
{
"success": true,
"data": [
{
"coin": "BTC",
"symbol": "BTC",
"timestamp": "2026-01-01T00:00:00Z",
"funding_rate": "0.0001",
"premium": "0.00005"
}
],
"meta": {
"count": 1,
"next_cursor": "1761840000596_907964252522803",
"request_id": "4d1fe223-53e7-498d-a54a-4fb2f9314734"
}
}Open Interest History
GET /v1/{venue}/openinterest/:symbol
{
"success": true,
"data": [
{
"coin": "BTC",
"symbol": "BTC",
"timestamp": "2026-01-01T12:00:00Z",
"open_interest": "12500.5",
"mark_price": "42150.75",
"oracle_price": "42148.50",
"day_ntl_volume": "1250000000",
"mid_price": "42150.75",
"impact_bid_price": "42150.00",
"impact_ask_price": "42151.50"
}
],
"meta": {
"count": 1,
"next_cursor": "1761840000596_907964252522803",
"request_id": "4d1fe223-53e7-498d-a54a-4fb2f9314734"
}
}Price History
GET /v1/{venue}/prices/:symbol
{
"success": true,
"data": [
{
"timestamp": "2026-01-01T12:00:00Z",
"mark_price": "42150.75",
"oracle_price": "42148.50",
"mid_price": "42150.75"
}
],
"meta": {
"count": 1,
"next_cursor": "1761840000596_907964252522803",
"request_id": "4d1fe223-53e7-498d-a54a-4fb2f9314734"
}
}Liquidations
Hyperliquid + HIP-3 liquidation events and bucketed volumes.
Liquidation
GET /v1/hyperliquid/liquidations/:symbol, /v1/hyperliquid/liquidations/user/:user, /v1/hyperliquid/hip3/liquidations/:symbol
{
"success": true,
"data": [
{
"coin": "BTC",
"timestamp": "2026-04-23T17:17:12.656Z",
"liquidated_user": "0xf0e35ea2542c070b74faba2dfbe6c16e599fdaa3",
"liquidator_user": "0xf0e35ea2542c070b74faba2dfbe6c16e599fdaa3",
"price": "77611",
"size": "0.00024",
"side": "A",
"mark_price": "77612",
"closed_pnl": "-0.22656",
"direction": "Close Long",
"trade_id": 63845468834205,
"tx_hash": "0xf89907d0bf82aa6afa120439d0b66e0207ea00b65a85c93d9c61b3237e868455"
}
],
"meta": {
"count": 1,
"next_cursor": "1761840000596_907964252522803",
"request_id": "4d1fe223-53e7-498d-a54a-4fb2f9314734"
}
}Liquidation Volume
GET /v1/hyperliquid/liquidations/:symbol/volume and /v1/hyperliquid/hip3/liquidations/:symbol/volume
{
"success": true,
"data": [
{
"coin": "BTC",
"symbol": "BTC",
"timestamp": "2026-04-24T00:00:00Z",
"total_usd": 716220.9,
"long_usd": 631463.06,
"short_usd": 84757.84,
"count": 258,
"long_count": 228,
"short_count": 30
}
],
"meta": {
"count": 1,
"next_cursor": "1761840000596_907964252522803",
"request_id": "4d1fe223-53e7-498d-a54a-4fb2f9314734"
}
}Order books and diffs (Pro+)
Higher-tier depth payloads — node-level L4, derived L2 full depth, and Lighter L3.
L4 Order Book
GET /v1/hyperliquid/orderbook/:symbol/l4 and HIP-3 / HIP-4 equivalents — single reconstruction
{
"success": true,
"data": {
"coin": "BTC",
"timestamp": "2026-04-29T17:12:24.360Z",
"checkpoint_timestamp": "2026-04-29T17:12:24.360Z",
"diffs_applied": 0,
"last_block_number": 977546146,
"bids": [
{
"oid": 403690644184,
"user_address": "0xf9109ada2f73c62e9889b45453065f0d99260a2d",
"side": "B",
"price": 75908,
"size": 0.00262
}
],
"asks": [
{
"oid": 403690755957,
"user_address": "0x2ca4927174ba283d8a57f60ef3589844035a2930",
"side": "A",
"price": 75909,
"size": 0.00017
}
],
"bid_count": 30561,
"ask_count": 22323,
"total_bid_size": 6551.5,
"total_ask_size": 5028
},
"meta": {
"count": 1,
"request_id": "4d1fe223-53e7-498d-a54a-4fb2f9314734"
}
}L4 Order Book (history)
GET /v1/hyperliquid/orderbook/:symbol/l4/history and HIP-3 / HIP-4 equivalents — paginated checkpoints
{
"success": true,
"data": [
{
"coin": "BTC",
"timestamp": "2026-04-29T17:12:24.360Z",
"checkpoint_timestamp": "2026-04-29T17:12:24.360Z",
"diffs_applied": 0,
"last_block_number": 977546146,
"bids": [
{
"oid": 403690644184,
"user_address": "0xf9109ada2f73c62e9889b45453065f0d99260a2d",
"side": "B",
"price": 75908,
"size": 0.00262
}
],
"asks": [
{
"oid": 403690755957,
"user_address": "0x2ca4927174ba283d8a57f60ef3589844035a2930",
"side": "A",
"price": 75909,
"size": 0.00017
}
],
"bid_count": 30561,
"ask_count": 22323,
"total_bid_size": 6551.5,
"total_ask_size": 5028
}
],
"meta": {
"count": 1,
"next_cursor": "1761840000596_907964252522803",
"request_id": "4d1fe223-53e7-498d-a54a-4fb2f9314734"
}
}L4 Diff
GET /v1/hyperliquid/orderbook/:symbol/l4/diffs and HIP-3 / HIP-4 equivalents — order-level changes
{
"success": true,
"data": [
{
"timestamp": "2026-04-29T17:13:24.733Z",
"block_number": 977547037,
"seq": 278,
"coin": "BTC",
"oid": 403691709447,
"user_address": "0x023a3d058020fb76cca98f01b3c48c8938a22355",
"side": "B",
"price": 75856,
"new_size": 0.74856,
"diff_type": "new"
}
],
"meta": {
"count": 1,
"next_cursor": "eyJ2IjoyLCJmIjoiNTNlMmQyNDcxZGM5NzkwNiJ9",
"request_id": "4d1fe223-53e7-498d-a54a-4fb2f9314734"
}
}L2 Full-Depth Order Book
GET /v1/hyperliquid/orderbook/:symbol/l2 and HIP-3 / HIP-4 equivalents — derived from L4
{
"success": true,
"data": {
"coin": "BTC",
"symbol": "BTC",
"timestamp": "2026-04-30 17:13:07.908",
"bids": [
{
"px": 76183,
"sz": 75.5,
"n": 405
},
{
"px": 76182,
"sz": 32.2,
"n": 88
}
],
"asks": [
{
"px": 76184,
"sz": 0.44,
"n": 5
},
{
"px": 76185,
"sz": 1.32,
"n": 12
}
],
"bid_levels": 12649,
"ask_levels": 8032,
"total_bid_size": 5878.9,
"total_ask_size": 4405.5,
"mid_price": 76183.5,
"spread": 1,
"spread_bps": 0.13
},
"meta": {
"count": 1,
"request_id": "4d1fe223-53e7-498d-a54a-4fb2f9314734"
}
}L2 Full-Depth Order Book (history)
GET /v1/hyperliquid/orderbook/:symbol/l2/history and HIP-3 / HIP-4 equivalents — paginated full-depth checkpoints
{
"success": true,
"data": [
{
"coin": "BTC",
"symbol": "BTC",
"timestamp": "2026-04-30 17:13:07.908",
"bids": [
{
"px": 76183,
"sz": 75.5,
"n": 405
},
{
"px": 76182,
"sz": 32.2,
"n": 88
}
],
"asks": [
{
"px": 76184,
"sz": 0.44,
"n": 5
},
{
"px": 76185,
"sz": 1.32,
"n": 12
}
],
"bid_levels": 12649,
"ask_levels": 8032,
"total_bid_size": 5878.9,
"total_ask_size": 4405.5,
"mid_price": 76183.5,
"spread": 1,
"spread_bps": 0.13
}
],
"meta": {
"count": 1,
"next_cursor": "1761840000596_907964252522803",
"request_id": "4d1fe223-53e7-498d-a54a-4fb2f9314734"
}
}L2 Diff
GET /v1/hyperliquid/orderbook/:symbol/l2/diffs and HIP-3 / HIP-4 equivalents — tick-level price-level changes
{
"success": true,
"data": [
{
"timestamp": "2026-04-29T17:13:54.739+00:00",
"block_number": 977546590,
"price": 75799,
"size": 2.05,
"count": 5,
"side": "B"
}
],
"meta": {
"count": 1,
"next_cursor": "1761840000596_907964252522803",
"request_id": "4d1fe223-53e7-498d-a54a-4fb2f9314734"
}
}L3 Order Book (Lighter)
GET /v1/lighter/l3orderbook/:symbol — single snapshot
{
"success": true,
"data": {
"coin": "BTC",
"timestamp": "2026-04-30T17:11:01.247Z",
"orders": [
{
"order_index": 562952175455810,
"owner_account_index": 102394,
"side": "ask",
"price": 76281.7,
"remaining_size": 0.39322,
"original_size": 0.39322
},
{
"order_index": 844422671662026,
"owner_account_index": 390028,
"side": "bid",
"price": 76207.4,
"remaining_size": 3.57799,
"original_size": 3.57799
}
],
"bid_count": 1250,
"ask_count": 980,
"total_bid_size": 450.5,
"total_ask_size": 380.2,
"mid_price": 76244.55,
"spread": 1,
"spread_bps": 0.13
},
"meta": {
"count": 1,
"request_id": "4d1fe223-53e7-498d-a54a-4fb2f9314734"
}
}L3 Order Book (history)
GET /v1/lighter/l3orderbook/:symbol/history — paginated snapshots
{
"success": true,
"data": [
{
"coin": "BTC",
"timestamp": "2026-04-30T17:11:01.247Z",
"orders": [
{
"order_index": 562952175455810,
"owner_account_index": 102394,
"side": "ask",
"price": 76281.7,
"remaining_size": 0.39322,
"original_size": 0.39322
},
{
"order_index": 844422671662026,
"owner_account_index": 390028,
"side": "bid",
"price": 76207.4,
"remaining_size": 3.57799,
"original_size": 3.57799
}
],
"bid_count": 1250,
"ask_count": 980,
"total_bid_size": 450.5,
"total_ask_size": 380.2,
"mid_price": 76244.55,
"spread": 1,
"spread_bps": 0.13
}
],
"meta": {
"count": 1,
"next_cursor": "1761840000596_907964252522803",
"request_id": "4d1fe223-53e7-498d-a54a-4fb2f9314734"
}
}Order lifecycle and flow (Pro+)
Order placements, cancellations, fills, TP/SL events, and aggregated buy/sell flow.
Order History
GET /v1/hyperliquid/orders/:symbol/history and HIP-3 / HIP-4 equivalents
{
"success": true,
"data": [
{
"timestamp": "2026-04-29T17:14:31.588Z",
"block_time": "2026-04-29T17:14:31.588Z",
"block_number": 977548020,
"seq": 641,
"coin": "BTC",
"user_address": "0x162cc7c861ebd0c06b3d72319201150482518185",
"status": "canceled",
"side": "B",
"limit_price": 68313,
"size": 0.0029,
"orig_size": 0.0029,
"oid": 403692588220,
"order_type": "Limit",
"is_trigger": false,
"is_position_tpsl": false,
"reduce_only": false,
"tif": "Alo",
"cloid": "0x00000000000000000b56a219d5668a74"
}
],
"meta": {
"count": 1,
"next_cursor": "1761840000596_907964252522803",
"request_id": "4d1fe223-53e7-498d-a54a-4fb2f9314734"
}
}TP / SL Order History
GET /v1/hyperliquid/orders/:symbol/tpsl and HIP-3 / HIP-4 equivalents — trigger and TP/SL orders
{
"success": true,
"data": [
{
"timestamp": "2026-04-29T17:14:32.795Z",
"block_time": "2026-04-29T17:14:32.795Z",
"block_number": 977548038,
"seq": 2748,
"coin": "BTC",
"user_address": "0x58a90dfa54eca4027bee2c23b931a8fd596e7261",
"status": "reduceOnlyCanceled",
"side": "B",
"limit_price": 76503,
"size": 0.00024,
"orig_size": 0.00024,
"oid": 403666382043,
"order_type": "Stop Market",
"trigger_condition": "Price above 76503",
"trigger_price": 76503,
"is_trigger": true,
"is_position_tpsl": false,
"reduce_only": true
}
],
"meta": {
"count": 1,
"next_cursor": "1761840000596_907964252522803",
"request_id": "4d1fe223-53e7-498d-a54a-4fb2f9314734"
}
}Order Flow
GET /v1/hyperliquid/orders/:symbol/flow and HIP-3 / HIP-4 equivalents — bucketed activity counts
{
"success": true,
"data": [
{
"timestamp": "2026-04-29T17:00:00Z",
"limit_orders_placed": 947692,
"orders_canceled": 935453,
"orders_filled": 14197,
"trigger_orders_placed": 2396,
"tpsl_orders_placed": 621,
"orders_triggered": 799,
"orders_force_canceled": 1950
}
],
"meta": {
"count": 1,
"request_id": "4d1fe223-53e7-498d-a54a-4fb2f9314734"
}
}Data Quality
Data Quality routes return a custom shape — they do not use the standard success/data/meta envelope. The schemas below show the entire response body.
System Status
GET /v1/data-quality/status — overall health and per-exchange / per-data-type status
{
"status": "operational",
"updated_at": "2026-04-30T17:15:00Z",
"exchanges": {
"hyperliquid": {
"status": "operational",
"last_data_at": "2026-04-30T17:14:55Z",
"latency_ms": 1601
},
"lighter": {
"status": "operational",
"last_data_at": "2026-04-30T17:14:55Z",
"latency_ms": 51248
},
"hip3": {
"status": "operational",
"last_data_at": "2026-04-30T17:14:55Z",
"latency_ms": 525
},
"hip4": {
"status": "operational",
"last_data_at": "2026-04-30T17:14:55Z",
"latency_ms": 612
}
},
"data_types": {
"orderbook": {
"status": "operational",
"completeness_24h": 100
},
"fills": {
"status": "operational",
"completeness_24h": 99.9
},
"funding": {
"status": "operational",
"completeness_24h": 98.5
},
"open_interest": {
"status": "operational",
"completeness_24h": 98.5
}
},
"active_incidents": 0
}Exchange Coverage
GET /v1/data-quality/coverage and /v1/data-quality/coverage/:exchange
{
"exchange": "hyperliquid",
"data_types": {
"orderbook": {
"earliest": "2023-04-15T00:00:07Z",
"latest": "2026-04-30T17:15:16Z",
"total_records": 23262965687,
"symbols": 190,
"resolution": "~1.2 seconds",
"completeness": 100,
"historical_coverage": 100
},
"fills": {
"earliest": "2023-04-15T03:31:18Z",
"latest": "2026-04-30T17:15:07Z",
"total_records": 2507165257,
"symbols": 200,
"lag": "~1 hour",
"completeness": 99.9,
"historical_coverage": 100
}
}
}Symbol Coverage
GET /v1/data-quality/coverage/:exchange/:symbol — per-symbol gap detection and cadence
{
"exchange": "hyperliquid",
"symbol": "BTC",
"data_types": {
"orderbook": {
"earliest": "2023-04-15T00:00:07.400Z",
"latest": "2026-04-30T17:10:03.608Z",
"total_records": 171749724,
"completeness": 100,
"historical_coverage": 98.2,
"gaps": [
{
"start": "2026-04-25T07:32:53.589Z",
"end": "2026-04-25T07:35:07.775Z",
"duration_minutes": 2.24
}
],
"cadence": {
"median_interval_seconds": 1.2,
"p95_interval_seconds": 3,
"sample_count": 66123
}
}
}
}Incidents (list)
GET /v1/data-quality/incidents — uses limit/offset pagination, not cursor
{
"incidents": [
{
"id": "INC-2026-001",
"status": "resolved",
"severity": "major",
"exchange": "lighter",
"data_types": [
"orderbook",
"fills",
"funding",
"open_interest"
],
"symbols_affected": [
"ALL"
],
"started_at": "2026-02-12T22:02:03Z",
"resolved_at": "2026-02-12T22:52:00Z",
"duration_minutes": 49,
"title": "Lighter.xyz upstream outage",
"description": "Service disruption — 50-min gap across all symbols.",
"root_cause": "Upstream service disruption.",
"resolution": "Recovered on their own."
}
],
"pagination": {
"total": 1,
"limit": 50,
"offset": 0
}
}Incident (detail)
GET /v1/data-quality/incidents/:id
{
"id": "INC-2026-001",
"status": "resolved",
"severity": "major",
"exchange": "lighter",
"data_types": [
"orderbook",
"fills",
"funding",
"open_interest"
],
"symbols_affected": [
"ALL"
],
"started_at": "2026-02-12T22:02:03Z",
"resolved_at": "2026-02-12T22:52:00Z",
"duration_minutes": 49,
"title": "Lighter.xyz upstream outage",
"description": "Service disruption — 50-min gap across all symbols.",
"root_cause": "Upstream service disruption.",
"resolution": "Recovered on their own."
}Latency
GET /v1/data-quality/latency — current WebSocket and ingestion lag
{
"measured_at": "2026-04-30T17:10:11.613Z",
"exchanges": {
"hyperliquid": {
"websocket": {
"current_ms": 2049,
"avg_1h_ms": 2049,
"avg_24h_ms": 2049
},
"data_freshness": {
"orderbook_lag_ms": 2049,
"fills_lag_ms": 5349,
"funding_lag_ms": 32332,
"oi_lag_ms": 32332
}
},
"lighter": {
"websocket": {
"current_ms": 32961,
"avg_1h_ms": 32961,
"avg_24h_ms": 32961
},
"data_freshness": {
"orderbook_lag_ms": 32961,
"fills_lag_ms": 45008,
"funding_lag_ms": 8988,
"oi_lag_ms": 8870
}
}
}
}SLA
GET /v1/data-quality/sla — monthly compliance
{
"period": "2026-03",
"sla_targets": {
"uptime": 99.9,
"data_completeness": 99.5,
"api_latency_p99_ms": 500
},
"actual": {
"uptime": 99.999,
"uptime_status": "met",
"data_completeness": {
"orderbook": 83.3,
"fills": 83.3,
"funding": 83.3,
"overall": 83.3
},
"completeness_status": "missed",
"api_latency_p99_ms": 32662,
"latency_status": "missed"
},
"incidents_this_period": 0,
"total_downtime_minutes": 0
}