Appearance
Rate limits
General limits
Two limits apply to every request at the same time:
| Limit | Requests |
|---|---|
| Per API key | 2,000 per minute |
| Per IP address | 1,200 per minute |
A request over either limit is rejected with 429 Too Many Requests. Wait for the counter to reset before you send more, and spread requests out rather than retrying straight away.
When counters reset
Counters reset at the start of each minute, not a minute after your first request.
- If one IP address sends 1,200 requests between 12:00:00 and 12:00:30, further requests from it are rejected until 12:01:00.
- If it sends 1,000 requests between 12:00:00 and 12:00:59, it can send another 1,200 from 12:01:00.
Spreading requests across several IP addresses doesn't raise a key's limit: a key can make 2,000 requests a minute in total, whichever addresses they come from.
Routes with their own limits
These routes have their own limit per IP address instead of the general limits above. Per-second limits reset at the start of each second.
| Route | Method | Limit per IP address |
|---|---|---|
/v1/account/subaccount | POST | 1 per second |
/v1/account/subaccounts/transfer | POST | 20 per second |
/v1/public/time, /v1/public/status, /v1/public/{currencyPair}/buckets | GET | 20 per second |
Other /v1/public routes | GET | 30 per minute |
Public routes take no API key, so only the limit per IP address applies to them.
WARNING
We may lower limits temporarily when the platform is under severe load.
Staying within the limits
- Use webhooks to find out when something happens on your accounts, such as a deposit or a withdrawal, instead of polling.
- Fetch lists a page at a time with the largest page size an endpoint allows, and filter by time where you can.
- Cache responses for as long as their
Cache-Controlheader allows. See Performance.