Broker API HubMenu

IG API rate limits

What is recorded about how fast you may call the IG API: 5 limit records and 4 related error codes.

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
Historical price data points a week10,000Per account, price history endpoints onlylabs.ig.comchecked
Non trading requests a minute30Per account, non trading calls onlylabs.ig.comchecked
Non trading requests a minute60Per application, that is per API key, non trading calls onlylabs.ig.comchecked
Concurrent streaming subscriptions40Per streaming connectionlabs.ig.comchecked corroborated by labs.ig.com/streaming-api-guide.html
Trading requests a minute100Sources conflict ig.com states around 40, checked . IG's own pages disagree. The conflict is labelled, not resolved. Pace against 40.Per account, trading calls onlylabs.ig.comchecked

Error codes that concern limits

These are the decoded IG 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
error.public-api.exceeded-account-allowance403The account's traffic allowance has been exceeded.labs.ig.comchecked
error.public-api.exceeded-account-historical-data-allowance403The account's allowance for historical data has been exceeded.labs.ig.comchecked
error.public-api.exceeded-account-trading-allowance403The account's allowance for trading requests has been exceeded.labs.ig.comchecked
error.public-api.exceeded-api-key-allowance403The traffic allowance of the API key has been exceeded.labs.ig.comchecked

Pacing and backoff, in general

This part is general advice and says nothing about IG 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 brokers: Axi, Bitget, Capital.com, CMC Markets, Deriv, Dukascopy, eToro, Exness, FOREX.com, FXCM, FxPro, Interactive Brokers, OANDA, Pepperstone, Saxo, Swissquote, ThinkMarkets, Tickmill, Trading 212, XTB.