Skip to main content

Rate Limits

API keys are subject to rate limiting to ensure fair usage and platform stability.

How It Works​

Rate limiting uses a sliding window algorithm. Each API key has its own independent limit tracked per minute.

SettingValue
Default limit60 requests/minute
Maximum limit10,000 requests/minute
Window typeSliding window
ScopePer API key

The rate limit for each key is set at creation time via the rateLimitRpm parameter.

Rate Limit Headers​

Every API response includes rate limit headers:

HeaderDescription
X-RateLimit-LimitYour rate limit (requests per minute)
X-RateLimit-RemainingRemaining requests in current window
X-RateLimit-ResetUnix timestamp when the window resets

Example response headers:

X-RateLimit-Limit: 300
X-RateLimit-Remaining: 297
X-RateLimit-Reset: 1716026460

Exceeding the Limit​

When you exceed your rate limit, the API returns:

429 Too Many Requests

{
"error": {
"code": "rate_limit_exceeded",
"message": "Rate limit exceeded. Try again in 15 seconds."
}
}

The Retry-After header indicates how many seconds to wait:

Retry-After: 15

Best Practices​

  1. Respect Retry-After — Implement exponential backoff, but honor the Retry-After header when present
  2. Cache responses — Cache analysis results to avoid redundant requests
  3. Monitor usage — Track your consumption from the API Keys section in your dashboard
  4. Request appropriate limits — Set rateLimitRpm based on your actual needs when creating keys

JWT Authentication​

Requests authenticated with JWT tokens (browser sessions) are not subject to rate limiting. Rate limits only apply to API key requests.