Rate Limits

Understand how rate limiting works and how to handle 429 responses.

Limits by Plan

Free: 10 req/min, 20 burst. Pro: 60 req/min, 100 burst. Enterprise: 300 req/min, 500 burst. Rate limits are applied per API key.

Rate Limit Headers

Every response includes rate limit headers so you can track your usage in real-time.

X-RateLimit-Limit: 60
X-RateLimit-Remaining: 45
X-RateLimit-Reset: 1740800060

Handling 429 Responses

When you exceed your rate limit, the API returns a 429 status code with a Retry-After header. Implement exponential backoff for production use.

import time

def fetch_with_retry(url, headers, max_retries=3):
    for attempt in range(max_retries):
        response = requests.get(url, headers=headers)
        if response.status_code == 429:
            wait = int(response.headers.get("Retry-After", 2 ** attempt))
            time.sleep(wait)
            continue
        return response
    raise Exception("Rate limit exceeded after retries")