Rate limits
Updated
Your plan sets the limit, which is counted in requests per second per account.
Limits by plan
| Account | Requests per second |
|---|---|
| Free (signup credits only) | 2 |
| Starter ($19/month) | 10 |
| Growth ($49/month) | 25 |
| Scale ($149/month) | 50 |
| Any test key | 5 |
Headers
Every API response includes these headers:
| Header | Meaning |
|---|---|
x-ratelimit-limit | Requests per second allowed for this key. |
x-ratelimit-remaining | Requests left in the current second. |
x-ratelimit-reset | Unix time (seconds) when the window resets. |
When you hit the limit
A call over the limit fails with HTTP 429 and code rate_limited. The body includes retryAfter and the response includes a retry-after header, both in seconds. You are not charged for the call.
Data providers also set their own limits. If a provider pushes back, you get a retryable upstream_error instead.
Free endpoints
GET /v1/account and GET /v1/usage cost no credits but require a key. GET /v1/tools and GET /v1/health don't require a key.
Staying under the limit
- Use
limitto get more rows from each call rather than making more calls. - Cache results on your side, since most data doesn't change from minute to minute.
- When you get a 429, back off instead of retrying in a tight loop.