Our REST and WebSocket APIs have rate limits that affect the number of calls that can be made within a short amount of time. The rate limits are designed to protect the APIs against attacks (such as DDoS attacks), and to prevent manipulation of our order books (such as by rapidly placing and cancelling large orders).
The API rate limits are divided into three sections (public, private, trading) depending upon the API interface being used (REST or WebSocket) and the type of call that is being made (market data, account management, placing/cancelling orders).
Public (REST Market Data)
The public endpoints are rate limited by IP address and currency pair for calls to Trades and OHLC, and by IP address only for calls to all other public endpoints.
Calling the public endpoints at a frequency of 1 per second (or less) would remain within the rate limits, but exceeding this frequency could cause the calls to be rate limited. If the rate limits are reached, additional calls would be restricted for a few seconds (or possibly longer if calls continue to be made while the rate limits are active).
Private (REST Account Management)
The private endpoints are rate limited by API key and are based upon a counter that starts at 0, increases with each call, and decreases over time. Each API key's counter is separate, and if the counter exceeds the maximum value, subsequent calls using that API key would be rate limited. If the rate limits are reached, additional calls will be restricted for a few seconds (or possibly longer if calls continue to be made while the rate limits are active).
Trading (REST and WebSocket Placing/Cancelling Orders)
The trading endpoints (REST AddOrder/CancelOrder and WebSocket addOrder/cancelOrder) are rate limited by account and per currency pair, and are based upon how orders interact with the order book.
In brief (the TLDR version), each account and currency pair has a maximum number of points that can be used every second without reaching the trading rate limits. Placing, executing, and cancelling orders uses these points, while time replenishes these points. Using more points than allowed (based upon your account type) would cause subsequent calls to be rate limited.
Complete details of the trading rate limits are provided so that our traders can calculate the precise number of orders that they can place/execute/cancel based upon their trading strategy (order fill rate, order lifetime on the order book, etc.)
Examples for different account types and basic trading strategies are provided for convenience, along with a rate limit calculator to determine the rate limits for more complex strategies.