API Documentation

Rate Limits

Rate limits protect the API from abuse and ensure fair usage across all customers. Limits are applied per API key and vary by subscription tier.

Limits by Tier

TierRequests / MinuteRequests / DayScopes
Free10100Read-only
Starter605,000All
Pro12050,000All
Enterprise300UnlimitedAll

Rate Limit Headers

Every API response includes rate limit information in the response headers:

HeaderDescription
X-RateLimit-LimitMaximum requests per minute for your tier
X-RateLimit-RemainingRemaining requests in the current minute window
X-RateLimit-ResetUnix timestamp when the minute window resets
X-RateLimit-Daily-RemainingRemaining requests for the current day
Retry-AfterSeconds to wait before retrying (only on 429 responses)

Handling Rate Limits

When you exceed the rate limit, the API returns a 429 Too Many Requests response:

429 Response

{
  "error": "Rate limit exceeded",
  "detail": "Maximum 60 requests per minute for starter tier",
  "retry_after": 12
}

Retry Strategy

Implement exponential backoff with the Retry-After header:

Python

import time
import requests

def api_request(url, headers, max_retries=3):
    for attempt in range(max_retries):
        resp = requests.get(url, headers=headers)
        if resp.status_code != 429:
            return resp
        retry_after = int(resp.headers.get("Retry-After", 5))
        time.sleep(retry_after * (2 ** attempt))
    return resp

Best Practices

  • Cache responses when possible to reduce API calls.
  • Monitor the X-RateLimit-Remaining header to preemptively throttle requests.
  • Use exponential backoff when retrying after a 429 response.
  • Batch operations where possible instead of making many individual requests.
  • Contact us if you consistently need higher limits — we offer custom enterprise plans.