Limits
Rate limits are applied per integration and per route. This means hitting the withdrawal endpoint does not affect your rate limit on the rates endpoint, and vice versa. Limits are tracked using the authentication credentials (
x-app-id) in your request headers.
Response headers
Rate-limited endpoints include the following headers in every response:Example response headers
Handling rate limits
When you exceed the rate limit, the API returns a 429 Too Many Requests status code. See error handling for the full 429 response format. To handle this gracefully:- Check the
X-RateLimit-Remainingheader before making requests. If it is approaching0, slow down. - If you receive a
429response, use theRetry-Afterheader (value in seconds) to determine how long to wait before retrying. - Add a retry loop so transient rate limit hits don’t break your integration.
Example retry logic
Best practices
- Batch operations where possible to reduce the total number of API calls.
- Monitor headers proactively. Don’t wait for a
429to start throttling. - Queue withdrawals on your end and process them at a steady rate below the limit.