These limits apply to all protocols (REST, WebSocket, FIX). For REST-specific call counter limits see REST rate limits. For Derivatives limits see Derivatives rate limits.
- Rate of transactions.
- Open order count.
Transaction Rate Limits
Each client has a rate counter per pair, the count starts at 0 and the count is incremented on each transaction by a given amount depending on the transaction type. The count is decremented over time by a decay rate based on client tier. When the rate counter threshold is reached, the engine will generateEOrder:Rate limit exceeded rejection message.
Note, most clients will never reach the trading rate threshold and the restriction is designed to protect the market / platform when clients trading at higher frequencies with a larger quantity of orders.
Incrementing the rate counter
The table below shows the increase in the rate counter for different transactions:- Fixed count: this is always applied on receipt of the transaction (even if the transaction fails validation).
- Decaying count: this is an additional count depending on the resting time of the order. The size of the count depends on the number of seconds since the order was created or amended.
| Transaction | Fixed | < 5s | < 10s | < 15s | < 45s | < 90s | < 300s |
|---|---|---|---|---|---|---|---|
| Add Order | +1 | - | - | - | - | - | - |
| Amend Order | +1 | +3 | +2 | +1 | - | - | - |
| Edit Order | +1 | +6 | +5 | +4 | +2 | +1 | - |
| Cancel Order | - | +8 | +6 | +5 | +4 | +2 | +1 |
| Batch Add | +(n/2) | - | - | - | - | - | - |
| Batch Cancel | - | +(8*n) | +(6*n) | +(5*n) | +(4*n) | +(2*n) | (1*n) |
nrepresents the number of orders in a batch.- If the rate counter in the batch exceeds maximum for a batch cancel, the requests in batch are still accepted.
Example: rate counter increase over short order lifetime
Scenario: a client sends a new order and amends the price after 7 seconds. After a further 36 seconds, the client cancels the order from the book, what would be the increase to the rate counter?| Description | Rate Count Change | Rate Count Total |
|---|---|---|
| Add order - fixed | +1 | 1 |
| Amend order - fixed | +1 | 2 |
| Amend order - decay < 15s | +2 | 4 |
| Cancel order - decay < 45s | +4 | 8 |
Decrementing the rate counter
The rate counter is decreased by a decay rate every second, the decay rate varies by client tier.| Starter Tier | Intermediate Tier | Pro Tier | |
|---|---|---|---|
| Rate counter decay rate | -1 | -2.34 | -3.75 |
Example: rate counter decrease over 10 seconds
Scenario: a intermediate tier client has entered a burst of 50 orders and waited 10 seconds, what would be the new rate counter value at the end of the period?Exceeding rate counter threshold
When the rate counter exceeds the threshold for the client tier, further transactions will be restricted withEOrder:Rate limit exceeded rejection until the rate counter has decayed below the threshold.
| Starter Tier | Intermediate Tier | Pro Tier | |
|---|---|---|---|
| Rate counter threshold | 60 | 125 | 180 |
Additional rate counter information
- The rate counter values can be monitored in the websockets feeds openOrders (v1) or executions (v2).
- A rate counter calculator is available in the support pages.
Open Order Limits
The open order limit is the maximum number of open orders per pair. When the open order threshold is reached, the engine will generateEOrder:Orders limit exceeded rejection message.
The maximum open order limit varies per client tier.
| Starter Tier | Intermediate Tier | Pro Tier | |
|---|---|---|---|
| Max open orders per pair | 60 | 80 | 225 |