Overview
Rate limits protect the API from abuse and ensure fair usage for all users. When you exceed a rate limit, the API returns a429 Too Many Requests response with a Retry-After header and a retryAfter field indicating how many seconds to wait before retrying.
API key rate limits
Authenticated endpoints are rate-limited per API key based on whether the endpoint is a read or write operation.
Read endpoints are those that require
X-Public-Key only. Write endpoints are those that require X-Public-Key, X-Timestamp, and X-Signature. See the Authentication guide for details.
When the limit is exceeded:
Retry-After header with the number of seconds to wait.
API key management
API key management endpoints are rate-limited per session token to prevent abuse. Each user can have a maximum of 2 active API keys at any time.
Rotation shares the revoke limit since it revokes the existing key and creates a new one.
When the limit is exceeded:
retryAfter value reflects the actual time remaining until the next request is allowed.
Login endpoint
The login endpoint (POST /v1/user/login) is rate-limited to 1 request per 2 minutes per email address.
When the limit is exceeded:
Handling rate limit errors
Node.js
Best practices
- Handle 429 gracefully — if you receive a rate limit response, wait for the
retryAfterduration before retrying. - Cache your session token — after a successful login, store the returned
tokenanddeviceIdand reuse them for subsequent API key operations. There’s no need to log in again for each request. - Don’t poll the login endpoint — the login endpoint is intended for one-time session creation, not repeated calls.
- Batch where possible — if you need data for multiple markets, use list endpoints instead of making individual requests.