Per key
- Requests per second count all chains together: 10 rps on Standard is 10 per second in total, not per chain.
- Requests open at once is per chain: a request counts from when it’s accepted until its response has been fully read. On pay-as-you-go it’s 1: finish reading one response before you send the next query to the same chain. On other plans it’s twice the requests-per-second limit, but at most 4 per chain for now, so that no single key can take all of a chain’s query capacity.
- Every accepted response carries
X-RateLimit-Limit(your requests per second) andX-RateLimit-Remaining(left in the current second).
Refused requests are free.
Per client address
In front of the key checks, every route has limits per client IP address, keys or not:
Normal clients never meet these. They exist to stop floods and key guessing.
Busy servers
When a chain’s server is at capacity, a request waits up to 5 seconds for a free slot, then gets503 unavailable with Retry-After: 1. Retry with backoff. If you see it often, contact us.
Making the most of your limit
- Large pages. Leave
maxObjectsat 100,000. One request then carries up to 100,000 rows; a rate of 1 per second still moves a lot of data. - Read responses promptly. A response you’re slow to read keeps one of your open-request slots busy.
- Don’t poll faster than blocks arrive. See Following the head.
- Serialize per key. With pay-as-you-go’s 1 request per second, run one query at a time per
key. A simple client-side limiter (one request per second, sequential) never sees a
429. - Need more? Standard has 10 per second; custom plans can have more.
Checking your limits
GET /v1/account returns the key’s rps and status. It’s free and
doesn’t count toward the limit.