Rate Limits

Request limits per API key, how to read the rate-limit headers, and how to handle them gracefully.

Default Limits

PlanRequests / minute
Standard120
Enterprise600

Limits apply per API key, not per organization — separate keys have separate budgets.

Rate Limit Headers

Every response includes headers describing your current limit status:

Response headers
X-RateLimit-Limit: 120
X-RateLimit-Remaining: 97
X-RateLimit-Reset: 1738404600

Handling 429s

Exceeding your limit returns an HTTP 429 Too Many Requests response. Respect the Retry-After header before retrying:

429 response
{
  "success": false,
  "data": null,
  "error": {
    "code": "rate_limited",
    "message": "Rate limit exceeded. Retry after the interval in the Retry-After header."
  }
}
Back off exponentially
On a 429, wait at least the duration in Retry-After, then back off exponentially on repeated limit hits rather than retrying immediately in a tight loop.

Best Practices

  • Batch reads where possible instead of polling individual records in a loop.
  • Prefer webhooks over polling for anything event-driven.
  • Cache list responses that don’t need to be real-time.