Rate Limits
Rate limits help ensure fair usage and system stability. Different pricing tiers have different limits.
Rate Limit Tiers
| Tier | Requests/Hour |
|---|---|
| Free | 100 |
| Pro | 10,000 |
| Enterprise | Custom |
Rate Limit Headers
Every API response includes rate limit information in the headers:
X-RateLimit-Limit: 10000X-RateLimit-Remaining: 9995X-RateLimit-Reset: 1640995200X-RateLimit-Limit: Maximum number of requests allowed per hourX-RateLimit-Remaining: Number of requests remaining in the current windowX-RateLimit-Reset: Unix timestamp when the rate limit resets
Handling Rate Limits
When you receive a 429 status code, implement exponential backoff:
import timeimport requests def make_request_with_retry(url, headers, max_retries=3): for attempt in range(max_retries): response = requests.get(url, headers=headers) if response.status_code == 429: reset_time = int(response.headers.get('X-RateLimit-Reset', 0)) wait_time = max(60, reset_time - time.time()) print(f"Rate limited. Waiting {wait_time}s...") time.sleep(wait_time) continue return response raise Exception("Max retries exceeded")Tip: Monitor your rate limit usage and upgrade your plan if you consistently hit limits. Enterprise customers can request custom limits.