RATE LIMITS
Rate limits and quotas
Two independent limits protect the API: a per-second rate limit and a daily or monthly quota. There is never any overage billing; requests simply stop until the limit resets.
How limits work
- Rate limit
- A sustained number of requests per second per key, with a short burst allowance on top (a token bucket). Exceeding it returns
429 rateLimitedwithRetry-After. - Quota
- The total requests your plan includes. Every plan, Free included, resets at the start of each UTC calendar month. Exceeding it returns
429 quotaExceeded.
Plan limits
Each plan’s credits and entitlements are listed on Plans, and your current limits are shown in the console.
Need more? Compare plans or upgrade from the console; the new limits apply within 60 seconds.
Response headers
Authenticated responses tell you where you stand, so you can slow down before you hit a limit:
HTTP/1.1 200 OK
X-RateLimit-Limit: 5
X-RateLimit-Remaining: 9
X-Quota-Limit: 20000
X-Quota-Remaining: 18542| Header | Description |
|---|---|
X-RateLimit-Limit | Uniform gateway requests-per-minute limit shared by all plans. |
X-RateLimit-Remaining | Whole requests remaining in the gateway rate-limit window. |
X-RateLimit-Reset | Unix time (seconds, rounded up) when the gateway rate limit resets. |
Retry-After | Seconds to wait before retrying (minimum 1). |
Rate-limit headers are sent once the key is authenticated; quota headers are sent once the request passes the rate limit. All of them are readable from browser JavaScript (CORS-exposed).
When you hit a limit
rateLimited: wait the number of seconds inRetry-After, then retry.quotaExceeded: don't retry; it won't succeed untilX-Quota-Reset. Stop and alert, or upgrade.
A copy-paste retry helper is in Retrying safely, and the SDKs handle it automatically.
Staying under the limit
- Request bigger pages. One call with
page_size=100costs the same as one with 10. - Poll for new articles only. Use
indexed_fromwithsort=indexed_descinstead of re-running the same search. See Keep a RAG index fresh. - Cache results for repeat queries in your own app.
- Watch
X-Quota-Remainingand alert before it reaches zero. Usage charts in the console show the trend.