Skip to content

Rate Limits

The API allows a fixed number of requests per 10-minute window, per API key. The window slides continuously — it doesn’t reset on a fixed clock interval.

In practice: if you make 100 requests in the first minute on the Free plan, you must wait ~9 minutes before your first request exits the window and you can send another.

PlanRequestsWindow
Free10010 minutes
Pro1,00010 minutes

Every API response includes rate limit headers:

HeaderDescription
X-RateLimit-LimitMax requests allowed in the window
X-RateLimit-RemainingRequests remaining in the current window
Retry-AfterSeconds to wait before retrying (only present on 429 responses)

When the limit is exceeded, the API returns 429 Too Many Requests:

{
"error": "rate_limit_exceeded",
"message": "Rate limit exceeded",
"code": "rate_limit_exceeded"
}

Unauthenticated requests (missing X-API-Key) are not counted — they return 401 directly.

Read the Retry-After header and pause before retrying. Use exponential backoff for repeated 429s:

import time, requests
def api_call_with_retry(url, headers, max_retries=3):
for attempt in range(max_retries):
resp = requests.get(url, headers=headers)
if resp.status_code == 429:
retry_after = int(resp.headers.get("Retry-After", 60))
time.sleep(retry_after * (2 ** attempt)) # exponential backoff
continue
return resp
raise Exception("Rate limit retries exhausted")

Upgrade to Pro from your dashboard to get 10× the rate limit.