Rate limits & quotas
Two independent caps, both per account: a QPS limit (real-time) and a daily request pool (UTC day). All keys on the account share both. Both count JSON-RPC calls, so every entry in a batch counts.
| Plan | QPS / account | Daily limit / account | Notes |
|---|---|---|---|
| Free | 10 calls/s | 10,000 requests | No card required. Token-bucket burst ≈ 1 second of QPS. |
| Pro | 50 calls/s | 100,000 requests | While the subscription is active. |
QPS (real-time)
- Enforced on the public RPC endpoints before requests reach the upstream nodes.
- Over HTTP, exceeding QPS returns
429with JSON-RPC error code-32005and a shortRetry-After. A per-account WebSocket rate violation can close the connection instead. - Limits are per account, not per key or per IP: all your keys (HTTP and WebSocket) draw from the same QPS budget, so adding keys does not raise it.
- QPS counts JSON-RPC calls, not HTTP requests or WebSocket messages: a batch of 20 uses 20. A batch is accepted as long as the account is not already over its rate, and its full size is charged, so a large batch borrows ahead and following HTTP calls get
429until the account has caught up. - Free accounts also share the Free tier's overall capacity. When it is busy you can get
429("Free tier capacity is busy") below your own limit; retry shortly or upgrade to Pro. On WebSocket the message gets a-32005error reply and the connection stays open.
Daily quota
- Usage is collected asynchronously. Once reported account usage reaches the pool limit, all its keys pause after the next gateway refresh; this is not a synchronous, per-request hard cutoff.
- The pool resets at 00:00 UTC; quota-paused keys resume after recovery and gateway refresh, usually within a few minutes.
- Upgrading to Pro raises the account pool and QPS after entitlement propagation. Keys paused under the old limit are re-evaluated against the new pool and any lower per-key risk cap.
- Account pool progress and per-key usage shares are on the dashboard; Try-it calls in these docs count toward the daily pool too.
The account pool is your plan daily limit; a single key can also carry a lower platform risk cap.
Concurrency and Try-it
Rate is separate from concurrency: slow requests can fill the in-flight limit even below your QPS. Reduce parallel work when you receive 429. Try-it has its own per-user rate and concurrency controls; its JSON-RPC calls still count toward the daily pool.