Rate Limits
Each API key has a per-minute quota and a daily quota. Requests made by applications sharing the same key share both limits.
Check your limits
The standard defaults are:
| Window | Default quota |
|---|---|
| Per minute | 60 requests |
| Per UTC day | 5,000 requests |
A key's configured limits may differ. API Key Info returns rateLimitPerMinute, rateLimitPerDay and a daily usage snapshot in usage, including requestsToday, remainingToday and resetsAt. Daily quotas reset at 00:00 UTC.
Usage is a snapshot, not a reservation of capacity. Other callers sharing the key may consume requests concurrently. Avoid checking /me before every call; it is itself an API request and is subject to the same limits.
Handle a quota response
Both quota failures return HTTP 429, with different error codes:
| Code | Action |
|---|---|
RATE_LIMITED | Wait for the per-minute window to reset. Respect the Retry-After response header when present |
DAILY_RATE_LIMITED | Stop scheduled requests until the daily reset, or ask your administrator to review the key's configured quota |
For requests that reach the per-minute limiter, the API provides these headers:
| Header | Meaning |
|---|---|
RateLimit-Limit | The key's request allowance for the minute window |
RateLimit-Remaining | Requests remaining in that window |
RateLimit-Reset | Seconds until the window resets |
Retry-After | Seconds to wait after the per-minute quota is exceeded |
Do not assume daily-limit responses include the minute-window headers. Check the error code as well as the status. Browser access to response headers depends on CORS; server-side clients can inspect the returned headers directly.
Schedule requests efficiently
- Spread requests through the minute rather than sending the full allowance at once
- Use bounded exponential backoff with jitter for transient failures; never retry in a tight loop
- Keep retries within the remaining quota and stop retrying a daily-limit failure until reset
- Use supported filters and field selection, and reuse extracted data across reports
- Avoid overlapping scheduled refreshes that download the same dataset
For pagination and request construction, see Querying. For broader integration guidance, see Developer Guidelines.