Limits & Throughput

Credits, plan gates, and rate limits set the real operating cost of an integration.

Budget
Heavy routes first
Limits
Per-second and concurrent caps
Plans
Free through Enterprise

Endpoint cost map

Route cost is uneven. Price the expensive calls first.

Low-cost routes
Freshness, instruments, current state
Heavy routes
History, order flow, L3/L4 depth
WebSocket
1 credit per message
EndpointScopeCredits
GET /v1/*/instruments, /*/current, /*/freshness/:symbolHyperliquid1
GET /v1/hyperliquid/orderbook/:symbolHyperliquid1
GET /v1/lighter/orderbook/:symbolLighter.xyz2
GET /v1/hyperliquid/hip3/orderbook/:symbol (Pro+)HIP-31
GET /v1/hyperliquid/orderbook/:symbol/historyHyperliquid5
GET /v1/hyperliquid/hip3/orderbook/:symbol/history (Pro+)HIP-35
GET /v1/lighter/orderbook/:symbol/historyLighter.xyz10
GET /v1/*/trades/:symbolHyperliquid2
GET /v1/*/funding/:symbolHyperliquid2
GET /v1/*/openinterest/:symbolHyperliquid2
GET /v1/*/summary/:symbolHyperliquid2
GET /v1/*/prices/:symbolHyperliquid2
GET /v1/*/candles/:symbolHyperliquid3
GET /v1/hyperliquid/liquidations/:symbolHyperliquid3
GET /v1/hyperliquid/liquidations/:symbol/volumeHyperliquid3
GET /v1/*/orders/:symbol/history (Pro+)Hyperliquid3
GET /v1/*/orders/:symbol/flow (Pro+)Hyperliquid5
GET /v1/*/orders/:symbol/tpsl (Pro+)Hyperliquid3
GET /v1/*/orderbook/:symbol/l4 (Pro+)Hyperliquid10
GET /v1/*/orderbook/:symbol/l4/diffs (Pro+)Hyperliquid3
GET /v1/*/orderbook/:symbol/l4/history (Build+)Hyperliquid3
GET /v1/lighter/l3orderbook/:symbol (Pro+)Lighter.xyz5
GET /v1/lighter/l3orderbook/:symbol/history (Pro+)Lighter.xyz10
GET /v1/data-quality/coverage/:exchange/:symbolData Quality5
GET /v1/data-quality/* (other)Data Quality1
WebSocket messageWebSocket1

Budgeting rules

History, order flow, and deep-book pulls dominate spend.

Loop budget

Budget the heavy loop first

History, order flow, and deep-book pulls move the bill. Price those first.

Venue premium

Treat Lighter history as its own line item

Lighter order book history costs 10 credits per request, so it should not share the same budget model as Hyperliquid.

Reality check

Model the mix on paper

A loop with 1,000 order books and 500 history pulls is already 3,500 credits. Do the math first.

Where the budget changes

These are the venue-specific details that move cost the most.

Lighter.xyz

High detail, higher credit cost

Checkpoint-to-tick reconstruction stays plan-gated, and order book history remains the expensive outlier.

HIP-3

Builder-perp breadth is plan-gated

Free still includes km:US500. Build+ opens the wider builder-perp family under the Hyperliquid namespace.

WebSocket

Streaming is usually cheaper than polling

Messages bill at 1 credit each, so live transport often beats frequent REST polling.

What to confirm after pricing

After pricing, lock rate limits and response shapes.

What stays free

Free is narrow, but not empty.

REST coverage

BTC and km:US500 stay available

You keep the core REST routes for BTC on Hyperliquid and km:US500 on HIP-3 after the trial ends.

Diagnostics

Freshness and data-quality routes stay on

Status, coverage, incidents, latency, SLA, summary, and cursor pagination remain available on Free.

Tooling

The full toolchain still works

SDKs, the CLI, MCP, and the Claude Code skill stay available even on the narrow free plan.

What is excluded

These are the limits that usually push a project onto a paid plan.

Transport

No WebSocket or replay on Free

Free is REST-only. Paid plans add live streams and replay.

Depth

No L4, L3, or wider Lighter detail

Deep order book routes and finer Lighter reconstruction stay behind paid plans.

Breadth

Coverage stays intentionally narrow

Anything beyond BTC and km:US500 needs a paid plan, and bulk export is not included.

What Free is for

Free works for narrow prototypes and diagnostics. It is not a broad market-data plan.

Credits
10M monthly
Coverage
BTC + km:US500
Trial path
14-day Build at signup
FeatureFree plan
Monthly Credits10,000,000
Rate Limit15 requests/sec
Concurrent Queries3 in-flight
SymbolsBTC (Hyperliquid) + km:US500 (HIP-3)
Historical Depth30 days
Per-Request Range30 days max
Orderbook Depth20 levels per side
WebSocketNot included
Bulk ExportNot included
L4 / L3 OrderbookNot included
Lighter GranularityNot included

When to upgrade

Upgrade when coverage, depth, or transport becomes the bottleneck.

More symbols

Broader market coverage

Upgrade when the job extends past BTC or km:US500.

Live transport

Streams or replay

WebSocket and replay are the cleanest upgrade trigger for most live systems.

More depth

Wider history or deeper books

Upgrade when 30 days, 20 levels, or the free symbol set is no longer enough.

Need broader coverage? Start the Build trial or compare plans on pricing.

Tier matrix

Design for request rate and in-flight ceilings. The API does not queue overflow work.

Requests / sec
Per API key
Concurrent
Hard cap per key
Budget
Monthly credits still apply
TierRequests / secConcurrentMonthly creditsCoverage
Free15310,000,000BTC + km:US500
Build501080,000,000All
Pro15020400,000,000All
EnterpriseCustomCustomUnlimitedAll

Concurrency rules

Read the headers and the in-flight cap together.

Per-second budget

Watch X-RateLimit-Remaining

Use it to see next-second headroom instead of learning by 429.

Monthly budget

Watch X-Credits-Remaining

The monthly credit ceiling still applies even when the per-second window looks healthy.

Recovery and backoff

Use reset headers and bounded retries.

Per-second reset

Read X-RateLimit-Reset

Wait for the next second window instead of blind retries.

Monthly reset

Read X-Credits-Reset

Read the reset timestamp to decide whether the key can recover in time.

Queue control

Do not stack retries behind one exhausted key

If the key is exhausted, shed load or switch keys. Unbounded retries only add noise.

Client rules

Simple client-side controls beat a pile of 429s.

Monitor response headers

Every response includes X-RateLimit-Remaining and X-Credits-Remaining. Use them instead of waiting for a 429.

Limit concurrent requests

The in-flight cap is client-side work too. Use a semaphore or pool so the server never sees an avoidable burst.

Use cursor pagination

Follow next_cursor instead of splitting history into many small windows. It is cheaper and easier to reason about.

Cache slow-changing routes

Instruments and freshness are 1-credit routes. Cache them for a few minutes instead of refetching on every pass.

Use aggregation intervals

For funding, open interest, and price history, ask for 1h, 4h, or 1d aggregates when raw rows are not required.

Prefer WebSocket for live loops

A live subscription often replaces hundreds of REST calls per minute and keeps your request budget cleaner.

Back off on 429

Read the reset headers and retry later. Immediate retries on an exhausted key just waste time.