Rate limiting
Limits are enforced over a fixed one-hour window per account — the window opens with your first request and resets one hour later. It does not slide continuously. The allowance depends on your plan.
Read the response headers rather than hard-coding a number or a reset time: your allowance can change
with your plan, and X-RateLimit-Reset always carries the exact reset moment.
Present on every successful response:
X-RateLimit-Limit— your hourly allowance.X-RateLimit-Remaining— requests left in the current window.X-RateLimit-Reset— when the window resets, as an absolute Unix epoch time in seconds, not a countdown.
When the limit is exceeded the API returns 429 with a Retry-After
header, in seconds, and this body:
{
"error": "RATE_LIMIT_EXCEEDED",
"message": "API rate limit exceeded for this account (<limit> requests/hour). Retry after <n>s."
}
The two headers do not overlap: on a 429, X-RateLimit-Reset is
not set — use Retry-After. On a successful response,
Retry-After is not set.
If you need to react to changes promptly, use outbound event webhooks instead of polling. They deliver within seconds and consume no API quota.