Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.0xarchive.io/llms.txt

Use this file to discover all available pages before exploring further.

Plan limits define how fast a client can call 0xArchive and which high-depth routes it can use. Treat the live pricing page and any response headers returned for your account as account-specific signals for your key.

Current Public Plans

Use the pricing page for checkout and account-specific terms; use this table while designing clients and queue capacity.
PlanAPI capacityReplay and historyData Catalog creditsBest fit
Build, $49 /mo80M credits, 50 rps, 10 concurrent queries, 25 WebSocket subscriptions50x replay with 1 year of historical lookback$25/moNotebooks, dashboards, backtests, and APIs that need broad market history
Pro, $199 /mo400M credits, 150 rps, 20 concurrent queries, 100 WebSocket subscriptions100x replay across the full available archive$100/moProduction systems that need order-level depth and heavier daily usage
Enterprisecustom credits, custom rate limits, custom concurrency, export volume, and retention planning200 WebSocket subscriptions, 1000x replay, scoped SLA and commercial termsCustomDedicated throughput, custom delivery, procurement, and security review
Build covers broad market history across covered Hyperliquid core, Hyperliquid Spot, HIP-3, HIP-4, and Lighter routes. Pro adds order-level depth, heavier daily usage, and full-history access where the route supports it. Enterprise is the path for dedicated throughput, custom retention, contractual review, and customer-facing workloads that need explicit terms.

Data Catalog Export Pricing

Use the Data Catalog when the job is a file purchase instead of a recurring API workload.
Dataset familyPublic priceMinimum
L4 Order Book / L4 Orders$16/GB$25 minimum
Trades / Liquidations$25/GB$15-$25 minimum
L2 / L3 Order Book$10/GB$10 minimum
Funding / Open Interest$3/GB$5 minimum
Subscriber credits apply before card charge. Volume discounts start at $500+.

Operating Model

ControlWhat it affectsClient behavior
Requests per secondBurst rate across REST callsUse backoff and queueing
Concurrent queriesLong-running or heavy history callsBound worker pools
CreditsData volume and heavy route costBudget by endpoint and time range
Route gatesHigher-depth history, L3/L4, replay, and advanced toolingCheck route docs before production use

Client Rules

1

Start with one symbol and one route

Confirm payload shape, credit cost, and latency before widening a job.
2

Batch by time range

Split long historical pulls into windows that can be retried independently.
3

Respect 429 responses

Honor Retry-After when the response includes it. If no retry window is exposed, use capped exponential backoff with jitter, reduce concurrency, and keep meta.request_id or x-request-id for every failed attempt.
4

Track cost by route family

L3/L4, replay, and deep history routes can behave differently from shallow market-state routes.

Limits and throughput guide

Build a client that stays inside rate, concurrency, and credit limits.

Errors and request IDs

Implement retries, fail-fast handling, and support-ready logging.

Designing Around Limits

Build clients as queues, not as unbounded loops. A historical job should know the venue family, symbol, route, time window, page size, concurrency, and retry budget before it starts. That makes it possible to pause, resume, and explain a run without duplicating data or hammering the API after a rate response. For 429 responses, stop widening the job until the retry budget has room again. Honor Retry-After when present. When it is absent, use capped exponential backoff with jitter, lower worker concurrency, and log the request identifier from meta.request_id, x-request-id, or the client wrapper. Do not retry unchanged after auth, access, malformed-request, unsupported-symbol, or invalid-parameter errors; fix the request or key first. Use small probes before wide jobs. One BTC order-book request confirms auth and envelope shape. One one-hour trade window confirms pagination and output schema. Only after those pass should a job widen across symbols or longer history. If a route is heavy because it touches L3, L4, replay, or large history, isolate it from lighter status checks so one slow worker does not block the whole pipeline. Rate limits are also a product-design signal. If users can trigger arbitrary exports, put bounds in your own UI and show progress. If a coding agent writes a script, ask it to include concurrency controls and request-ID logging before running large loops.

Liquidation Route Budgeting

Raw liquidation event routes are useful when the job needs row-level liquidation records. They are the wrong default for every dashboard refresh, repeated backtest scan, or broad symbol loop that only needs aggregate exposure. For those jobs, start with /v1/hyperliquid/liquidations/{symbol}/volume?interval=1h or the matching HIP-3 /volume route, then drill into raw events only for the symbols and windows that need audit-level detail. If a liquidation job returns 429, pause widening. Log the failed path and request ID, honor Retry-After when present, otherwise use capped exponential backoff with jitter, lower concurrency, and retry with a narrower window or the /volume route when aggregate buckets answer the workflow.

Queue Packet

For high-volume jobs, keep the queue packet beside the worker config: route family, symbol list, time windows, page size, concurrency, credit budget, retry budget, output path, and stop condition. The packet makes it clear whether the job is an API workload, WebSocket replay, SDK reconstruction, or Data Catalog export.
Last modified on May 19, 2026