Limits by plan
The API is part of Agency. On any other plan every request returns
403 api_access_not_available_on_current_plan, including requests that would otherwise be valid.
We check the plan on each request, so a downgrade takes effect immediately and an upgrade restores
access without reissuing keys.
Headers
Whenever we can tell which account a request belongs to, the response carries your current standing on both windows:
Read your limits from these headers rather than hard-coding the numbers above — when your plan
changes, so do they.
On
429 the response also carries Retry-After — seconds until the window that fired resets:
the end of the current minute for rate_limit_exceeded, midnight UTC for daily_quota_exceeded.
Handling a 429
The two codes need different treatment.rate_limit_exceeded clears within a minute, so waiting
out Retry-After and repeating the call works. daily_quota_exceeded will not clear until
midnight UTC, so stop and surface it rather than retrying.
What counts
- Everything that reached the quota check, including requests that then fail validation.
- A bulk request counts as one, however many items it contains.
429 that arrives without rate limit headers.