Request limits are determined from cost associated with each API call.
For 'derivatives' endpoints, clients have a pool of up to 500 that continually replenishes at a rate of 500 every 10 seconds.
The below table displays the cost associated with each API call:
'Derivatives' Path |
Cost |
sendorder | 10 |
editorder | 10 |
cancelorder | 10 |
batchorder | 9 + size of batch |
accounts | 2 |
openpositions | 2 |
fills (without lastFillTime specified) | 2 |
fills (with lastFillTime specified) | 25 |
cancelallorders | 25 |
cancelallordersafter | 25 |
withdrawaltospotwallet | 100 |
openorders | 2 |
orders/status | 1 |
unwindqueue | 200 |
For 'history' endpoints, clients have a pool of up to 60 tokens that continually replenishes at a rate of 60 every 10 minutes.
The below table displays the cost associated with each API call:
'History' Path |
Cost (tokens) |
Historical orders | 1 |
Historical triggers | 1 |
Historical executions | 1 |
Account log | 10 |
accountlogcsv | 6 |
Note: the Historical orders, triggers, executions and Account log CSV endpoints share the same rate limiting budget and use a separate rate limiting system
On the Batch Order endpoint, the cost is 9 + size of the batch of the requests. For example, a batch of 10 order requests, (send, edit, and or cancel) sent through the Batch Order endpoint would cost 19.
If the API limit is exceeded, the API will return error equal to apiLimitExceeded.
Example | |
The following shows the return of call of the sendorder endpoint where the API limit has been exceeded.
{
"result":"error", "serverTime":"2016-02-25T09:45:53.818Z", "error":"apiLimitExceeded" } |
Note: there is no cost associated with public endpoints