Rate Limits & Quota
Each API key is governed by two independent limits, both enforced at the gateway:
| Limit | Default | Window |
|---|---|---|
| Rate limit | 60 requests/minute | rolling per-minute |
| Monthly quota | 100,000 requests | calendar month (UTC) |
Both are configurable per key — the values for a given key are shown when you create or edit it in System → API Keys.
What counts
Quota is charged only on a successful dispatch (a request that reaches the underlying read). Requests rejected earlier in the pipeline — 401 (bad key), 403 (missing scope), 404 (unknown resource) — do not consume quota. A 429 likewise does not consume quota.
Exceeding a limit
When either limit is exceeded the API returns 429 Too Many Requests with the standard error envelope:
{ "error": "rate limit exceeded", "request_id": "…" }
Back off and retry after the window resets — the next minute for the rate limit, or the next month for the quota. If you consistently hit the monthly quota, request a higher limit on the key rather than minting multiple keys.
Designing around the limits
- Page efficiently. Use the largest
limit(up to 100) that suits your use case to minimize request count. - Cache responses that don't change often rather than re-fetching per render.
- Don't poll tightly. For data that changes infrequently (subscriptions, companies), widen your polling interval.