Rate Limits
The API enforces a rate limit of 10,000 requests per minute per account. This limit applies to all /v2 endpoints and is shared across all API keys belonging to the same account.
Rate Limit Headers
Every API response includes headers to help you track your usage:
Exceeding the Limit
When you exceed the rate limit, the API returns a 429 status code:
The response includes a Retry-After header indicating how many seconds to wait before retrying.
SDK Auto-Retry
The Python SDK automatically retries 429 responses with exponential backoff for idempotent methods (GET, PUT, DELETE). POST and PATCH requests are not retried to prevent duplicate side effects.
Auth Endpoint Limits
Login, registration, and password reset endpoints have a separate IP-based limit of 10 requests per minute per IP address. This applies to:
POST /v1/auth/loginPOST /v1/auth/registerPOST /v1/auth/forgot-passwordPOST /v1/auth/reset-passwordPOST /v1/auth/verify-email
These endpoints do not require authentication, so rate limiting is keyed by IP rather than account. When exceeded, the response uses a different format:
Best Practices
- Check headers: Monitor
X-RateLimit-Remainingto avoid hitting the limit - Back off on 429: If you receive a
429, wait for the duration inRetry-Afterbefore retrying - Spread requests: Distribute requests evenly rather than sending bursts
