Plans and limits

What a key can spend and how fast it can call, and what the API answers at each limit.

Free key

Every key starts free: no card, and the credits renew each month.

Credits each monthRateWebSocket connections
1,000,0005 req/s, burst 302

What a call costs

Every call counts credits against your key: the month's free credits first, then your plan's or your balance. A REST call counts 1 credit; calls that join layers or read long histories count more.

CallCredits
REST call
Any /v1 REST request not listed below
1
Hyperliquid-compatible call
POST /info (or a /ws post) of any type that is not heavy: meta, l2Book, allMids, clearinghouseState…
0.5
Medium call
Enriched answers (layers joined, analytics, simulations):
GET /v1/liquidations/stats, GET /v1/positions/changes, GET /v1/hypercore/builders/*/fills, GET /v1/launches/*/holders, GET /v1/launches/*/timeline, GET /v1/tokens/*/lifecycle, GET /v1/holders, GET /v1/wallet/*, GET /v1/bridges, GET /v1/entities/*/pnl window=90d, GET /v1/entities/*/pnl window=all, GET /v1/kols/leaderboard, GET /v1/tokens/*/security, GET /v1/tokens/*/traders
5
Heavy call
History, long windows and batches:
POST /info type=userFills, POST /info type=userFillsByTime, POST /info type=candleSnapshot span>30d, POST /info type=historicalOrders, POST /info type=userFunding, POST /info type=userNonFundingLedgerUpdates, POST /v1/balances/batch, GET /v1/candles span>30d, GET /v1/hypercore/wallet/*/stops history=1, GET /v1/hypercore/oi span>30d, GET /v1/prices/history span>30d
100
Webhook delivery
Each delivery to your webhook URL; +0.1 per extra event of a batch, failed attempts free
1
WebSocket data
Every byte pushed to you on /v1/ws, /ws or /hl/ws, uncompressed, replays included, summed per hour (a BTC order book on /v1/ws, about 36 GB a month, is about 0.8M credits). Pongs, errors and status frames are free; a snapshot that mirrors a REST or /info call counts as that call
1 per 48 KiB
Free
GET /v1/status, GET /v1/whoami, GET /v1/openapi.json
0

No daily limit: a key spends its credits as it likes, within its rate. Each MCP tool counts like the REST call it runs.

Pay as you go

No plan needed. Past the free credits, calls are paid from your prepaid balance, each credit at the price of its band, counted over the month. Top up in USDC from $1; the balance never expires.

Credits in a monthUSD per million
First 100M$12.00 / M
100M to 1B$10.00 / M
Over 1B$8.00 / M

Per key, the limits rise with what you prepay and spend: the highest level you reach applies, from the next minute.

LevelUnlocked byReq/sBurstWS connections
FreeEvery key5302
Level 1$10 prepaid20403
Level 2$349 spent this month10020020
Level 3$999 spent this month30060050

Plans

A plan buys a monthly allowance of credits and a higher throughput, paid from your balance. Yearly billing takes 15 % off. Past the included credits, calls go on and are charged per million from your balance at the plan's overage rate.

PlanPer monthIncluded creditsReq/sBurstWS connsPast included
Starter$496,000,00020403$10.00 / M
Builder$9914,000,00030605$8.00 / M
Pro$34960,000,00010020020$6.00 / M
Scale$999200,000,00030060050$5.00 / M

A monthly cap, set on your billing page, bounds the overage. An upgrade starts at once and credits back the unused part of the current plan; a downgrade starts when the paid period ends. Scale: larger volumes sized per customer.

At the limits

429 Over your key's rate. The rate is a bucket of burst requests refilled at rps per second: short bursts pass, a sustained rate above it does not. The answer carries Retry-After and retryAfter (seconds) with code: "rate_limited": wait, then send the same call again. Past your WebSocket connections, a new /v1/ws connection is refused with 429 at the upgrade.

HeaderValue
X-RateLimit-LimitRequests per second of your key
X-RateLimit-BurstThe most requests at once (the bucket)
X-RateLimit-RemainingRequests left in the bucket now
X-RateLimit-ResetSeconds until the bucket is full again

402 Out of credits: the month's free credits are used and the balance is empty. Every call but the free ones answers 402 with code: "payment_required", and WebSockets are refused (an open one closes with code 4002), until you add funds or the month starts again. The body says why (message) and how to pay (checkoutUrl).

  • Pay per call with x402. The REST 402 also offers credit packs in USDC on Base, Arbitrum One and HyperEVM (accepts, and the PAYMENT-REQUIRED header). An agent pays one and sends the same call again with its key: the account is credited and the call served. With no key at all, the same payment opens an account and returns its key. Not on the Hyperliquid-compatible /info and /ws: credit the account, then call again.
  • Monthly cap reached. A cap you set on your billing page stops spending: the same 402, its message naming the cap, with no credit packs, until you raise the cap or the month ends.
  • Debt. An account that owes money (plan overage past what it may run on credit, a payment taken back) answers 402 with the amount, debtUsd, until it is paid in full.

Check your usage

GET /v1/whoami is free: your key's tier, billing state (ok, or why it is refused) and the limits in force, {rps, burst, maxConns}.

  • GET /v1/account, never counted: balance, credits used this month, free credits left, cap, plan and renewal. MCP: get_account.
  • GET /v1/account/usage: calls, credits and USD per day and call class.

Agent guide (agents.md)llms.txtOpenAPIMCP serverGet an API keyChangelog