Rate Limits
The API enforces rate limits to ensure fair usage. Limits vary by tier.
Limits by Tier
| Limit | Premium | Business |
|---|---|---|
| Requests per minute | 60 | 200 |
| Daily export creations | 100 | Unlimited |
| Concurrent exports | 1 | 5 |
| Max queued exports | 3 | 5 |
| Export creations per 3 minutes | 7 | 30 |
| Jobs per 5-minute window | 10 | 15 |
Rate Limit Headers
Rate-limited responses return HTTP 429 with:
json
{"status_code": 429,"error_code": "RATE_LIMIT_EXCEEDED","seconds_to_wait": 45,"detail": "Rate limit exceeded. Please wait before retrying."}
Retry Strategy
Recommended approach
Use the seconds_to_wait value from 429 responses to implement backoff. For polling job status, use 5-10 second intervals instead of continuous polling.
- Check the
seconds_to_waitfield in 429 responses - Wait the specified duration before retrying
- Use exponential backoff as a fallback strategy
- Consider using webhooks instead of polling to avoid rate limits