Skip to main content
GET
https://api.0xarchive.io
/
v1
/
hyperliquid
/
hip3
/
orderbook
/
{symbol}
Get HIP-3 native L2 order book (20 levels)
curl --request GET \
  --url https://api.0xarchive.io/v1/hyperliquid/hip3/orderbook/{symbol} \
  --header 'X-API-Key: <api-key>'
import requests

url = "https://api.0xarchive.io/v1/hyperliquid/hip3/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/hyperliquid/hip3/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/hyperliquid/hip3/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"
  }
}
{
  "code": 400,
  "error": "Invalid request parameters"
}
{
  "code": 401,
  "error": "Missing or invalid API key. Provide X-API-Key header."
}
{
  "code": 404,
  "error": "Resource not found"
}
{
  "code": 429,
  "error": "Rate limit exceeded"
}

Authorizations

X-API-Key
string
header
required

API key for authentication. Get yours at https://0xarchive.io/dashboard

Path Parameters

symbol
string
required

HIP-3 symbol name (e.g., xyz:XYZ100)

Example:

"xyz:XYZ100"

Query Parameters

timestamp
integer<int64>

Unix timestamp in milliseconds. If not provided, returns latest snapshot.

Example:

1739750400000

depth
integer

Requested price levels per side for this native venue snapshot. Hyperliquid native L2 data is capped at 20 levels per side; values above 20 do not return full depth on this route. Use the /l2 routes for full-depth aggregated L2.

Required range: x <= 20
Example:

20

Response

Order book snapshot

success
boolean
Example:

true

data
object

L2 order book snapshot

meta
object

Response metadata

Last modified on July 7, 2026