How REST Credits Are Billed
REST API requests are billed by the number of rows a request returns, not a flat fee per call:rows_per_credit depends on the endpoint family:
| Endpoint family | Rows per credit | Approximate cost |
|---|---|---|
| Trades, fills, L2 order book history, funding, open interest, liquidations, Lighter L3 order book | 1,000 | about 1 credit per 1,000 rows |
| Candles | 10,000 | about 1 credit per 10,000 rows |
| L4 (diffs, orders, flow, TP/SL, reconstruction) | 5,000 | about 1 credit per 5,000 rows |
| Single-value (current order book, current funding, current open interest, summary, prices, freshness, instruments, symbols, pairs, outcomes) | not metered by rows | 1 credit |
depth returns fewer rows and costs fewer credits. A request that returns no rows still costs the 1 credit minimum.
JSON and Apache Arrow output are billed identically. The opt-in ?format=arrow response (available for the trades family) is never cheaper or more expensive than JSON.
WebSocket and historical replay billing is unchanged: 1 credit per message. Monthly allowances are unchanged.
Credit Surfaces
| Surface | What credits help plan | Design implication |
|---|---|---|
| REST API | Request volume, heavy route usage, and historical pulls | Start with one route, then batch by symbol and window |
| WebSocket replay | Replay speed, channel count, and historical event volume | Bound windows and store replay configuration |
| Data Catalog | File-style exports and subscriber credit offsets | Use export credits for purchase-style workflows, not infinite API loops |
| L3/L4 depth | Larger payloads and reconstruction-heavy workflows | Separate high-depth jobs from simple freshness checks |
| Automation workflows | Scripts and agent-assisted jobs that can accidentally widen too fast | Require route, symbol, limit, and concurrency before execution |
How To Think About Credits
Credits should make the workflow more explicit. A job should know the route family, symbol set, data family, time window, page size, concurrency, retry budget, and output destination before it starts. If the job cannot state those values, it is not ready to spend broadly. Do not use credits as a substitute for correctness. A job can be under budget and still use the wrong route family. A job can have enough credits and still produce bad research if it ignores freshness or incidents. Treat credits, rate limits, and data quality as separate gates.Workflow Rules
Probe before spend
Run one bounded request, inspect the response envelope, and preserve
meta.request_id.Estimate by route family
Separate Hyperliquid core, Hyperliquid Spot, HIP-3, HIP-4, and Lighter work instead of summing them into one vague market-data job.
Split heavy jobs
Batch historical pulls and replay windows so work can pause, resume, and retry without duplicating output.