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 month | Rate | WebSocket connections |
|---|---|---|
| 1,000,000 | 5 req/s, burst 30 | 2 |
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.
| Call | Credits |
|---|---|
| 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 month | USD 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.
| Level | Unlocked by | Req/s | Burst | WS connections |
|---|---|---|---|---|
| Free | Every key | 5 | 30 | 2 |
| Level 1 | $10 prepaid | 20 | 40 | 3 |
| Level 2 | $349 spent this month | 100 | 200 | 20 |
| Level 3 | $999 spent this month | 300 | 600 | 50 |
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.
| Plan | Per month | Included credits | Req/s | Burst | WS conns | Past included |
|---|---|---|---|---|---|---|
| Starter | $49 | 6,000,000 | 20 | 40 | 3 | $10.00 / M |
| Builder | $99 | 14,000,000 | 30 | 60 | 5 | $8.00 / M |
| Pro | $349 | 60,000,000 | 100 | 200 | 20 | $6.00 / M |
| Scale | $999 | 200,000,000 | 300 | 600 | 50 | $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.
| Header | Value |
|---|---|
X-RateLimit-Limit | Requests per second of your key |
X-RateLimit-Burst | The most requests at once (the bucket) |
X-RateLimit-Remaining | Requests left in the bucket now |
X-RateLimit-Reset | Seconds 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 thePAYMENT-REQUIREDheader). 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/infoand/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