- Throttle — a requests-per-second rate limit with a burst allowance (sliding window).
- Quota — a total request allowance per calendar period (
DAY,WEEKorMONTH), resetting at the period boundary (UTC).
Response headers
Every successful (and throttled) response includes headers describing where you stand:
Watch
X-Quota-Remaining in your integration and slow down proactively as it approaches zero.
429 responses
There are two distinct429 Too Many Requests cases:
Rate limit exceeded (throttle)
Rate limit exceeded (throttle)
You sent requests faster than the key’s per-second allowance. The response
includes a Recovery: wait
Retry-After header (in seconds) and a body with the precise
wait in milliseconds:Retry-After seconds (or retryAfterMs) and retry.
Throttled requests do not consume quota.Quota exceeded
Quota exceeded
The key has used its full allowance for the current period. The body tells
you when the period resets:Recovery: retrying sooner will not help — wait until
resetsAt, or ask
your environment administrator about the key’s usage plan.Worked retry example
A resilient client retries throttled requests with the server-provided delay, and stops when the quota is exhausted:429, retry after Retry-After seconds if the header is present; if it is absent, the quota is exhausted — back off until resetsAt.
Checking your status — GET /data/quota
GET /data/quota returns your key’s current quota and throttle status. It is the free status check: it never consumes quota, and it requires no scope — any valid Data API key can call it. Poll it as often as you like.
quota and throttle are null when the key has no quota or throttle plan respectively. The scopes array is also the easiest way to confirm exactly what your key can access.
