curl --request GET \
--url https://api.0xarchive.io/v1/orderbook/{symbol} \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.0xarchive.io/v1/orderbook/{symbol}"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.0xarchive.io/v1/orderbook/{symbol}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.0xarchive.io/v1/orderbook/{symbol}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"success": true,
"data": {
"symbol": "BTC",
"coin": "BTC",
"timestamp": "2025-01-21T10:30:45.123Z",
"bids": [
{
"px": "42150.00",
"sz": "1.5",
"n": 15
}
],
"asks": [
{
"px": "42150.00",
"sz": "1.5",
"n": 15
}
],
"mid_price": "42150.50",
"spread": "1.00",
"spread_bps": "2.37"
},
"meta": {
"count": 123,
"next_cursor": "<string>",
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"coverage_from": "2023-11-07T05:31:56Z",
"notice": "<string>",
"has_more": true,
"symbol": "<string>",
"venue": "<string>"
}
}{
"code": 400,
"error": "Failed to deserialize query string: limit: invalid digit found in string",
"error_code": "invalid_query_params",
"param": "limit",
"request_id": "3f2a9c71-5b0e-4d68-9a4c-7e1d2b6f8a05",
"success": false
}{
"code": 401,
"error": "Missing authentication credentials. Provide X-API-Key header or Bearer token.",
"error_code": "unauthorized",
"request_id": "71ed4b6f-63ef-4ae1-a123-07ffa47c1c14",
"success": false
}{
"code": 404,
"error": "No L4 checkpoint available before requested timestamp",
"error_code": "not_found",
"request_id": "ad7df471-eb8a-477c-bd9f-c685a9825f5b",
"success": false
}{
"code": 429,
"error": "Rate limit exceeded"
}Get order book (Deprecated)
0xArchive API reference for Get order book (Deprecated). Includes authentication, parameters, response shape, examples, and route-safe implementation notes.
curl --request GET \
--url https://api.0xarchive.io/v1/orderbook/{symbol} \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.0xarchive.io/v1/orderbook/{symbol}"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.0xarchive.io/v1/orderbook/{symbol}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.0xarchive.io/v1/orderbook/{symbol}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"success": true,
"data": {
"symbol": "BTC",
"coin": "BTC",
"timestamp": "2025-01-21T10:30:45.123Z",
"bids": [
{
"px": "42150.00",
"sz": "1.5",
"n": 15
}
],
"asks": [
{
"px": "42150.00",
"sz": "1.5",
"n": 15
}
],
"mid_price": "42150.50",
"spread": "1.00",
"spread_bps": "2.37"
},
"meta": {
"count": 123,
"next_cursor": "<string>",
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"coverage_from": "2023-11-07T05:31:56Z",
"notice": "<string>",
"has_more": true,
"symbol": "<string>",
"venue": "<string>"
}
}{
"code": 400,
"error": "Failed to deserialize query string: limit: invalid digit found in string",
"error_code": "invalid_query_params",
"param": "limit",
"request_id": "3f2a9c71-5b0e-4d68-9a4c-7e1d2b6f8a05",
"success": false
}{
"code": 401,
"error": "Missing authentication credentials. Provide X-API-Key header or Bearer token.",
"error_code": "unauthorized",
"request_id": "71ed4b6f-63ef-4ae1-a123-07ffa47c1c14",
"success": false
}{
"code": 404,
"error": "No L4 checkpoint available before requested timestamp",
"error_code": "not_found",
"request_id": "ad7df471-eb8a-477c-bd9f-c685a9825f5b",
"success": false
}{
"code": 429,
"error": "Rate limit exceeded"
}Authorizations
API key for authentication. Get yours at https://0xarchive.io/dashboard
Path Parameters
Trading pair symbol (e.g., BTC, ETH, SOL)
"BTC"
Query Parameters
Unix timestamp in milliseconds. If not provided, returns latest snapshot.
1704067200000
Requested price levels per side for this deprecated Hyperliquid compatibility route. Native Hyperliquid L2 data is capped at 20 levels per side; values above 20 do not return full depth here. Use /v1/hyperliquid/orderbook/{symbol}/l2 for full-depth aggregated L2.
x <= 2020
Response
Order book snapshot
true
L2 order book snapshot
Hide child attributes
Hide child attributes
Trading pair symbol
"BTC"
Trading pair symbol (deprecated, use symbol instead)
"BTC"
Snapshot timestamp (UTC)
"2025-01-21T10:30:45.123Z"
Mid price (best bid + best ask) / 2
"42150.50"
Spread in absolute terms (best ask - best bid)
"1.00"
Spread in basis points
"2.37"
Response metadata
Hide child attributes
Hide child attributes
Number of records returned
Cursor for pagination (timestamp). Use this value as the cursor parameter to fetch the next page of results.
Unique request ID for support
Earliest coverage for the requested symbol and data type. Present only when the requested window ends before coverage begins.
Human-readable advisory about the response. Used when the requested window ends before coverage begins for the symbol, and on CVD responses that are one page of several; may carry other advisories in future.
Present on cursor-paged routes: true when another page exists. next_cursor is present exactly when it is true.
Present on per-symbol routes: the symbol the response covers.
Present on per-symbol routes: the venue the response covers, for example hyperliquid or hip3.
Was this page helpful?