Limits
Rate limits are applied per integration and per route. This means hitting the withdrawal endpoint does not affect your rate limit on the withdrawal-addresses endpoint, and vice versa. Limits are tracked using the authentication credentials (
x-app-id) in your request headers. Route-specific limits replace the default 500 for that route only.
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.