Create the account and mint one key
Start at 0xArchive.io/signup, then create one API key in the dashboard.
One dashboard-managed API key
Start with one authenticated BTC order book call, confirm the payload, then branch into the interface that matches the job.
Start with one live BTC order book request. It confirms account setup, X-API-Key auth, Hyperliquid routing, and the response shape. Then pick the interface that fits.
Create a key, send BTC, keep the request_id.
Preflight
Three moves. No client switch until the response lands.
Start at 0xArchive.io/signup, then create one API key in the dashboard.
One dashboard-managed API key
HTTP 200 with a data payload
Known-good payload plus request_id
Run the request
Use X-API-Key against the Hyperliquid order book.
API_BASE="https://api.0xarchive.io/v1/hyperliquid"
# Live order book requestcurl --request GET \ --url "${API_BASE}/orderbook/BTC" \ --header "X-API-Key: 0xa_your_api_key"import requests
API_BASE = "https://api.0xarchive.io/v1/hyperliquid"
# Live order book requestresponse = requests.get( f"{API_BASE}/orderbook/BTC", headers={"X-API-Key": "0xa_your_api_key"}, timeout=10,)data = response.json()["data"]print(data["mid_price"])const API_BASE = "https://api.0xarchive.io/v1/hyperliquid";
// Live order book requestconst response = await fetch(`${API_BASE}/orderbook/BTC`, { headers: { "X-API-Key": "0xa_your_api_key" },});const { data } = await response.json();console.log(data.mid_price);use reqwest::Client;
let client = Client::new();let api_base = "https://api.0xarchive.io/v1/hyperliquid";
// Live order book requestlet orderbook = client .get(format!("{api_base}/orderbook/BTC")) .header("X-API-Key", "0xa_your_api_key") .send().await? .json().await?;println!("BTC mid price: {}", orderbook["data"]["mid_price"]);Checks
Account, auth, route, symbol, and order book schema clear in one response.
Endpoint path
GET /v1/hyperliquid/orderbook/BTC
Auth header
X-API-Key: 0xa_your_api_key
Payload checks
Look for four fields, then move on.
Status
Book
Summary
Trace
Read the response
Confirm the normalized order book fields and keep the request_id with the first good payload.
{ "success": true, "data": { "coin": "BTC", "timestamp": "2026-01-01T12:00:00Z", "bids": [ { "px": "42150.50", "sz": "2.5", "n": 5 } ], "asks": [ { "px": "42151.00", "sz": "1.8", "n": 3 } ], "mid_price": "42150.75", "spread": "0.50", "spread_bps": "1.19" }, "meta": { "count": 1, "request_id": "req_abc123" }}Lock the boring parts down once the first request works.
Move the key out of copied command history and into the shell, app config, or secret manager that owns the next job.
Save the first successful response or request_id so later changes can isolate transport or client issues instead of re-debugging auth.
After the first response is stable, pick the interface that fits: browser, REST reference, WebSocket, SDK, or wallet-managed automation.