Reference
Rate limits
Successful responses (HTTP 2xx) include the rate-limit headers below. A 429 response also includes the active throttle window when a rate or quota window is exhausted. Treat the headers as part of your control loop rather than retrying blindly.
Headers
X-RateLimit-LimitRequests allowed in the active hourly rate-limit or monthly quota window.
X-RateLimit-RemainingRequests remaining in the active hourly rate-limit or monthly quota window.
X-RateLimit-ResetUnix timestamp (seconds) when the active rate-limit or quota window resets.
Retry-AfterSeconds until the next request is allowed on 429 responses.
Other 4xx responses may omit these headers. Read the error body code first; only retry automatically when the status and headers describe a retryable throttle window.
Monthly REST quota
Every plan with a fixed volume, Free included, has a monthly REST request quota. All API keys of an organization share it. Requests count once they pass authentication and the quota check, including 4xx validation errors; Live WebSocket traffic and History replays do not count. The window is the UTC calendar month and resets at 00:00 UTC on the 1st. Enterprise quotas are agreed per contract.
Once the quota is used up, REST requests return 429 with rate_limit_exceeded, X-RateLimit-Limit set to the monthly quota, X-RateLimit-Remaining: 0 and X-RateLimit-Reset at the next month start. The error body also carries error.upgradeUrl, the billing page. Upgrade under Billing for a higher quota.
Quota exhaustion
Quota exhaustion returns 429. Back off until X-RateLimit-Reset (Unix seconds) before retrying. Retrying without honouring the reset header risks extending the throttle window.