cTrader API rate limits
What is recorded about how fast you may call the cTrader API: 2 limit records, the wording from the record and 1 related error code.
Risk warning: CFDs and spread bets are complex instruments and come with a high risk of losing money rapidly due to leverage. You can lose money on these products, and each provider publishes its own loss figure under FCA rules. You should consider whether you understand how they work and whether you can afford to take the high risk of losing your money. Automated and API trading can amplify losses through bugs, connectivity failures and runaway orders.
Recorded limits
One record per limit. The scope is part of the limit: a figure is only useful once you know whether it applies to a key, an account, a session or an address.
| Limit | Value | Scope | Source |
|---|---|---|---|
| Requests a second, not historical data | 50 | Per connection, requests that are not for historical data | help.ctrader.comchecked |
| Requests a second, historical data | 5 | Per connection, historical data requests only | help.ctrader.comchecked |
Rate limits, as the record words them
- Rate limits, as worded
50 requests a second per connection for requests that are not for historical data, and 5 requests a second per connection for historical data requests, as stated on the cTrader Open API documentation home page, re-read 12 Oct 2026.
Error codes that concern limits
These are the decoded cTrader Open API errors whose code or meaning names a rate limit, an allowance or throttling. Each row links to the full meaning and the fix.
| Code | HTTP status | Meaning, first sentence | Source |
|---|---|---|---|
| 108 | Not recorded | Request rate limit exceeded (page gives the name with no longer description). | help.ctrader.comchecked |
Pacing and backoff, in general
This part is general advice and says nothing about cTrader Open API in particular. The figures that apply are the recorded ones above, and the provider's own documentation is the authority.
Pace before you are refused. Work out the gap between requests that keeps you under the limit, then leave a margin, because a limit counted by a provider's clock will not line up exactly with yours. Spread calls evenly: a burst at the start of each window is the usual way to hit a limit while staying under it on average. The rate limit calculator checks a polling plan against a limit and gives the shortest interval that fits.
When a request is refused for rate, stop sending and wait. Double the wait after each refusal in a row, add a small random amount so that several programs do not retry together, and cap the number of attempts. If the reply names how long to wait, use that figure in place of your own.
Take extra care with dealing requests. A refused or unanswered order may or may not have gone through, so check the state of the order before you send it again. Cache what does not change, such as instrument details and history you have already downloaded, and prefer a stream to polling where one is offered.
Where to go next
- The full cTrader Open API record
- cTrader Open API quickstart
- All cTrader Open API error codes
- Broker API rate limits compared
- HTTP 429 across broker APIs
- Rate limits for every broker and platform
- The fact register
Other platforms: DXtrade, Match-Trader, MetaApi, MetaCopier, MetaTrader 4, MetaTrader 5, TradeLocker.