Rate Limits

API requests are rate-limited based on your plan. Rate limit headers are included in every response to help you track your usage.

Limits by Plan

PlanRequests/minRequests/day
Free101,000
Basic6010,000
Pro300100,000
EnterpriseCustomCustom

Response Headers

Every response includes rate limit information in the headers:

HeaderDescription
X-RateLimit-LimitMaximum requests per window
X-RateLimit-RemainingRemaining requests in current window
X-RateLimit-ResetUnix timestamp when the window resets
Retry-AfterSeconds to wait (only on 429 responses)

Handling Rate Limits

When you exceed your rate limit, the API returns a 429 status code. Implement exponential backoff using the Retry-After header:

Example

import requests
import time

def make_request_with_retry(url, headers, json_data, max_retries=3):
    for attempt in range(max_retries):
        response = requests.post(url, headers=headers, json=json_data)

        if response.status_code == 429:
            retry_after = int(
                response.headers.get("Retry-After", 60)
            )
            print(f"Rate limited. Retrying in {retry_after}s...")
            time.sleep(retry_after)
            continue

        return response

    raise Exception("Max retries exceeded")