curl --request GET \
--url https://api.0xarchive.io/v1/hyperliquid/orderbook/{symbol}/l4/history \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.0xarchive.io/v1/hyperliquid/orderbook/{symbol}/l4/history"
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/hyperliquid/orderbook/{symbol}/l4/history', 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/hyperliquid/orderbook/{symbol}/l4/history"
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": [
{
"coin": "BTC",
"timestamp": "2026-03-12T00:00:00.000Z",
"checkpoint_timestamp": "2026-03-12T00:00:00.000Z",
"diffs_applied": 0,
"last_block_number": 1023882395,
"bids": [
{
"oid": 18499128731,
"user_address": "0x0000000000000000000000000000000000000000",
"side": "B",
"price": 105384.5,
"size": 0.824,
"timestamp": 1773273600123
}
],
"asks": [
{
"oid": 18499128731,
"user_address": "0x0000000000000000000000000000000000000000",
"side": "B",
"price": 105384.5,
"size": 0.824,
"timestamp": 1773273600123
}
],
"bid_count": 12,
"ask_count": 15,
"total_bid_size": 102.34,
"total_ask_size": 98.76,
"is_crossed": true
}
],
"meta": {
"count": 123,
"next_cursor": "<string>",
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"coverage_from": "2023-11-07T05:31:56Z",
"notice": "<string>"
}
}{
"code": 400,
"error": "Failed to deserialize query string: limit: invalid digit found in string",
"error_code": "invalid_query_params",
"request_id": "3f2a9c71-5b0e-4d68-9a4c-7e1d2b6f8a05"
}{
"code": 401,
"error": "Missing or invalid API key. Provide X-API-Key header."
}{
"code": 429,
"error": "Rate limit exceeded"
}Get Hyperliquid L4 orderbook history
0xArchive API reference for Get Hyperliquid L4 orderbook history. Includes route metadata, schemas, examples, and implementation notes.
curl --request GET \
--url https://api.0xarchive.io/v1/hyperliquid/orderbook/{symbol}/l4/history \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.0xarchive.io/v1/hyperliquid/orderbook/{symbol}/l4/history"
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/hyperliquid/orderbook/{symbol}/l4/history', 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/hyperliquid/orderbook/{symbol}/l4/history"
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": [
{
"coin": "BTC",
"timestamp": "2026-03-12T00:00:00.000Z",
"checkpoint_timestamp": "2026-03-12T00:00:00.000Z",
"diffs_applied": 0,
"last_block_number": 1023882395,
"bids": [
{
"oid": 18499128731,
"user_address": "0x0000000000000000000000000000000000000000",
"side": "B",
"price": 105384.5,
"size": 0.824,
"timestamp": 1773273600123
}
],
"asks": [
{
"oid": 18499128731,
"user_address": "0x0000000000000000000000000000000000000000",
"side": "B",
"price": 105384.5,
"size": 0.824,
"timestamp": 1773273600123
}
],
"bid_count": 12,
"ask_count": 15,
"total_bid_size": 102.34,
"total_ask_size": 98.76,
"is_crossed": true
}
],
"meta": {
"count": 123,
"next_cursor": "<string>",
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"coverage_from": "2023-11-07T05:31:56Z",
"notice": "<string>"
}
}{
"code": 400,
"error": "Failed to deserialize query string: limit: invalid digit found in string",
"error_code": "invalid_query_params",
"request_id": "3f2a9c71-5b0e-4d68-9a4c-7e1d2b6f8a05"
}{
"code": 401,
"error": "Missing or invalid API key. Provide X-API-Key header."
}{
"code": 429,
"error": "Rate limit exceeded"
}X-API-Key with this request. See REST authentication.Shared request rules
Shared request rules
Machine schema
Machine schema
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
Start of the requested window as a Unix timestamp in milliseconds. ISO 8601 strings are rejected.
1767225600000
End of the requested window as a Unix timestamp in milliseconds. ISO 8601 strings are rejected.
1767312000000
Timestamp cursor in Unix milliseconds from the previous response metadata.
Maximum number of results (default: 100, max: 1000)
x <= 1000Response
Typed L4 orderbook checkpoint array
true
Hide child attributes
Hide child attributes
Trading pair or market symbol.
"BTC"
Snapshot timestamp in UTC.
"2026-03-12T00:00:00.000Z"
Timestamp of the checkpoint used for this snapshot.
"2026-03-12T00:00:00.000Z"
Number of L4 diffs applied after the checkpoint.
0
Last Hyperliquid block represented by this snapshot.
1023882395
Bid-side resting orders, best price first.
Hide child attributes
Hide child attributes
Hyperliquid order identifier.
18499128731
Address attributed to the resting order.
"0x0000000000000000000000000000000000000000"
Book side: B for bid or A for ask.
B, A "B"
Venue-native resting order price.
105384.5
Venue-native remaining order size.
0.824
Queue-join timestamp in Unix epoch milliseconds; 0 when unknown.
1773273600123
Ask-side resting orders, best price first.
Hide child attributes
Hide child attributes
Hyperliquid order identifier.
18499128731
Address attributed to the resting order.
"0x0000000000000000000000000000000000000000"
Book side: B for bid or A for ask.
B, A "B"
Venue-native resting order price.
105384.5
Venue-native remaining order size.
0.824
Queue-join timestamp in Unix epoch milliseconds; 0 when unknown.
1773273600123
Number of bid orders in the full stored/reconstructed checkpoint before optional depth truncates returned bids/asks.
12
Number of ask orders in the full stored/reconstructed checkpoint before optional depth truncates returned bids/asks.
15
Aggregate venue-native bid size in the full stored/reconstructed checkpoint before optional depth truncates returned bids/asks.
102.34
Aggregate venue-native ask size in the full stored/reconstructed checkpoint before optional depth truncates returned bids/asks.
98.76
True only when a reconstructed historical book has best bid greater than or equal to best ask; omitted for clean snapshots.
true
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. Currently used when the requested window ends before coverage begins for the symbol; may carry other advisories in future.
Was this page helpful?