Websocket Rate Limits
Public Concurrent Connections
For public concurrent connections via our Websocket, the rate limit is set to a maximum of 20 connections per second or 600 connections per minute per IP address.
Order Management
Order methods (order.create, order.create_batch, order.modify, order.cancel, order.cancel_batch, order.cancel_all) are limited per account:
- Retail Orders are orders sent after authenticating with an interactive token. See Retail vs Pro Orders. Over WebSocket, a Retail Order over its limit is rejected rather than switched to Pro Order behavior.
- A batch request counts as one request, whatever the number of orders in it.
- Order requests sent through the REST API count toward this limit as well.
- There is no IP based limit on order methods over WebSocket.
- A request over the limit is rejected with error code
42901. See Error Handling.
The WebSocket order limit is lower than the REST API order limit. For high throughput order entry, prefer batch methods, for example order.cancel_batch followed by order.create_batch to update quotes on several levels at once.
Messages and Subscriptions
- Messages over the message rate limit are delayed, not rejected. Authenticated
order.*requests do not count toward it, but each connection processes messages in order, so an order request sent behind delayed messages waits for them. Use a separate connection for order entry. - A client that sends messages faster than the server can process them is disconnected with close code
4032. - A subscription request over the subscription limit is rejected with error code
42900. - A connection that holds no subscriptions for 5 minutes is closed with close code
4031.