Broker API HubMenu

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.

Independent and unofficialNewest check

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.

LimitValueScopeSource
Requests a second, not historical data50Per connection, requests that are not for historical datahelp.ctrader.comchecked
Requests a second, historical data5Per connection, historical data requests onlyhelp.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.

cTrader Open API documentationchecked

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.

CodeHTTP statusMeaning, first sentenceSource
108Not recordedRequest 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

Other platforms: DXtrade, Match-Trader, MetaApi, MetaCopier, MetaTrader 4, MetaTrader 5, TradeLocker.