Rate Limiting

Understand API rate limits, response headers, and how to handle 429 Too Many Requests errors.

The API enforces rate limits to ensure fair usage and service stability.

Limits

ContextLimit
Authenticated requests (per API key)120 requests / minute
Unauthenticated requests (per IP)20 requests / minute

Rate limit headers

Every response includes headers showing your current rate limit status:

HeaderDescription
X-RateLimit-LimitMaximum requests allowed per window
X-RateLimit-RemainingRequests remaining in the current window
X-RateLimit-ResetUnix timestamp when the window resets

Handling rate limits

When you exceed the rate limit, the API returns 429 Too Many Requests:

{
  "error": {
    "type": "rate_limit_error",
    "message": "Rate limit exceeded. Please retry after the Retry-After period.",
    "code": "rate_limited"
  }
}

The response includes a Retry-After header with the number of seconds to wait before retrying.

Best practices

  • Check headers proactively. Monitor X-RateLimit-Remaining to avoid hitting the limit.
  • Implement exponential backoff. When you receive a 429, wait for the Retry-After duration, then retry with increasing delays.
  • Cache responses. If your integration reads the same data repeatedly, cache it locally to reduce API calls.