API Ratelimits on FTX US

 

API Documentation

FTX US offers complete REST, WebSocket, and FIX APIs to suit your algorithmic trading needs. API is available for both retail and institutional customers on FTX US. 

API Docs can be found here.

 

Ratelimits

The relevant limits on order placement are mostly unaffected by other API calls; you can cancel orders and fetch private data without using your order placement rate limits.

 

You will likely begin to see longer latency if you send more than one order in a 50ms period in a particular subaccount; this means that you can theoretically get out roughly 20 orders per second per subaccount if they are evenly spaced out without experiencing higher latency.

 

In addition to this, there is a cap on how many requested-but-not-yet-risk-checked orders a given subaccount can have out at once. This limit is only relevant if you are sending at a rate that exceeds our risk-checking throughput for your subaccount. This is typically around 140 orders per second but may vary with market conditions. Again, you can send more if you split between subaccounts; and this restriction only applies to orders placed, not orders canceled.  Splitting between different API keys or IP addresses will not have any effect on this limit.

 

Furthermore, there will soon be a cap on orders sent overall for a user and per market per user (just orders, not cancels or marketdata).  A user in this instance means a full account on FTX US including all subaccounts.  To be clear this limit applies across an entire account--not just a subaccount--but to some extent you get individual limits for each market.

 

Per Second

mceclip4.png

The context for these changes:

When markets move a lot, it can take longer to process orders.  This is because everyone wants to send lots of orders, and so everyone does--enough to cause a backlog.  There are two problems: first that it causes delays; but second, that it means that orders that would have traded end up getting backlogged in favor of orders that were going to be quickly cancelled anyway.

 

Each person sends all of their marginal orders (why not!), enough that the total number of orders sent is faster than the matching engine can process them.  And so only some of the orders are processed quickly (the first sent), including some marginal orders that the sender didn't really care about.  But this means that other orders--including some really important orders--end up at the back of the line.

 

The best solution is to increase capacity, and we're doing that. Improvements to the matching engine to increase throughput and efficiently handle load are constantly being worked on. But in addition, it's important that even when things are busy, (a) there isn't much lag, and (b) people can get their most important orders through.

 

That's why ratelimits exist: to make sure that each person's most important orders get through quickly and aren't held back by others' marginal orders.

 

This is also why we're introducing soft and hard ratelimits.  Hard ratelimits always apply.  But soft ratelimits only apply when the matching engine gets close to a backlog.  This means that, when orders become more in demand, ratelimits help insure that the most important orders still have room by reducing the room for less important ones; but when markets are quiet, users have more freedom to use the spare capacity.

 

Note that, generally, these ratelimits attempt to maintain a consistent $ volume traded per order ratio--that is, each user has roughly the same fill rate * order size threshold.

 

The limits would be as follows:

Per 200ms hard ( will never allow more than this)
*Units used in the chart below are in requests/200ms. Note that these are enforced every 200ms, and that the above per second limits apply (e.g. MM3 can send 100 per 200ms, up to 400 total per second based on the per second limit above)

mceclip2.png

Per 200ms soft (will sometimes allow more than this but depends on exchange load)
*Units used in the chart below are in requests/200ms

mceclip3.png


Note: You only need to reach either the tier or the 30d volume threshold. For users with volumes at least 2x the requirements of MM3, the rate limits are 1.5x the VIP3/MM3 tier. For users with volumes at least 4x the requirements for VIP3/MM3, the ratelimits are 3x the VIP3/MM3 tier.

These limits are now live.

 

Remember that cancels do not count towards any of these ratelimits, and hitting the ratelimits won’t stop you from being able to cancel.  Similarly, marketdata calls do not contribute to the ratelimites, only order placement.  Soft ratelimits kick in when exchange load is relatively high.  Note that if a user's volume/order ratio is significantly below $10 FTX reserves the right to impose additional ratelimits on them.  In general, FTX reserves the right to alter ratelimits and other features on FTX as reasonable or necessary.