HyperCore /info API
The read API for the HyperCore L1 — the perps/spot CLOB. One HTTPS endpoint, one POST shape: a JSON body whose type field selects the request. Market metadata, book snapshots, asset contexts, and per-wallet state.
Endpoint
- Endpoint
- https://api.hyperliquidrpc.com/info
- Protocol
- HTTPS POST, JSON body
- Auth
- API key in the x-api-key header
- Selector
- "type" field in the body, e.g. { "type": "l2Book", "coin": "BTC" }
curl https://api.hyperliquidrpc.com/info \ -H 'x-api-key: YOUR_KEY' \ -H 'content-type: application/json' \ -d '{"type":"l2Book","coin":"BTC"}'All prices, sizes, and PnL values come back as exact decimal strings — never floats. Parse them with a decimal type if you do arithmetic; the strings reconcile byte-for-byte with the chain and with our historical archive.
Market data requests
Metadata, books, and per-asset context. Expand a row for the exact request/response bodies.
Request
{ "type": "meta" }Response
{ "universe": [ { "name": "BTC", "szDecimals": 5, "maxLeverage": 40 }, { "name": "ETH", "szDecimals": 4, "maxLeverage": 25 } ]}Request
{ "type": "spotMeta" }Response
{ "tokens": [{ "name": "HYPE", "szDecimals": 2, "weiDecimals": 8 }], "universe": [{ "name": "@107", "tokens": [150, 0] }]}Request
{ "type": "perpDexs" }Response
[ { "name": "core", "full_name": "Hyperliquid" }, { "name": "test", "full_name": "HIP-3 deployment" }]Note: Prices and sizes are exact decimal strings. For continuous depth, use the L2 stream.
Request
{ "type": "l2Book", "coin": "BTC" }Response
{ "coin": "BTC", "time": 1781078042418, "levels": [ [{ "px": "67011.0", "sz": "3.41280", "n": 14 }], [{ "px": "67012.0", "sz": "2.88457", "n": 11 }] ]}Request
{ "type": "metaAndAssetCtxs" }Response
[ { "universe": [{ "name": "BTC", "szDecimals": 5 }] }, [ { "markPx": "67012.0", "oraclePx": "67010.5", "funding": "0.0000125", "openInterest": "8412.55310", "dayNtlVlm": "2541870442.18" } ]]Request
{ "type": "exchangeStatus" }Response
{ "time": 1781078042418, "specialStatuses": null }Resolving markets
meta returns the perp universe, spotMeta the spot tokens and @N pairs, and perpDexs the HIP-3 / builder-deployed DEX listings (dex:SYMBOL markets). Together they map every symbol you will see on the streams — cache them and refresh occasionally rather than fetching per request.
User state requests
Per-wallet reads: positions and margin, resting orders, fills, and funding payments. Each takes a user address in the body.
Request
{ "type": "clearinghouseState", "user": "0x913ef4b96e9fd7d6f8c14e22b1a1a1e7c41a0a2b"}Response
{ "marginSummary": { "accountValue": "150214.301187", "totalNtlPos": "402100.55" }, "assetPositions": [ { "position": { "coin": "BTC", "szi": "2.54000", "entryPx": "65120.3", "unrealizedPnl": "4804.918000" } } ]}Request
{ "type": "openOrders", "user": "0x913ef4b96e9fd7d6f8c14e22b1a1a1e7c41a0a2b"}Response
[ { "coin": "ETH", "side": "B", "limitPx": "3498.25", "sz": "12.4400", "oid": 91834221384, "timestamp": 1781078043121 }]Request
{ "type": "userFills", "user": "0x913ef4b96e9fd7d6f8c14e22b1a1a1e7c41a0a2b"}Response
[ { "coin": "BTC", "px": "67012.0", "sz": "0.14523", "side": "B", "dir": "Close Short", "closedPnl": "182.337041", "fee": "2.433037", "tid": 442191083327011 }]Request
{ "type": "userFunding", "user": "0x913ef4b96e9fd7d6f8c14e22b1a1a1e7c41a0a2b", "startTime": 1780992000000}Response
[ { "time": 1781078400084, "coin": "BTC", "usdc": "-14.302187", "szi": "2.54000", "fundingRate": "0.0000125" }]Snapshots vs. streams
/info is a point-in-time read. If you find yourself polling it on an interval, the data you want almost certainly exists as a push stream with strictly better latency and ordering:
- Polling
l2Book→ subscribe to the L2 book stream (snapshot, then one update per block, guaranteed never crossed). - Polling
userFills→ subscribe to trades filtered by wallet, server-side. - Polling
openOrders→ subscribe to the order lifecycle stream filtered by wallet. - Polling
userFunding→ subscribe to events (funding, liquidations, ledger updates).
Related
- HyperEVM JSON-RPC — EVM state reads and transaction broadcast on the same key.
- Choosing a stream — which push feed replaces which polling pattern.
- Rate limits & tiers — request budgets per plan; 429 handling.