Broker API HubMenu

Interactive Brokers API rate limits

What is recorded about how fast you may call the Interactive Brokers API: 6 limit records, the wording from the record and 3 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
Global requests a second (Web API)10Per authenticated username, that is per Web API sessionibkrcampus.comchecked corroborated by interactivebrokers.com/docs/web-api/trading/usage-and-availability/pacing-limitations
Historical market data requestsEither 10 req/s or 50 req/minute, as the page words itGET /iserver/marketdata/history onlyinteractivebrokers.comchecked corroborated by ibkrcampus.com/campus/ibkr-api-page/webapi-doc/
Market data snapshot requests a second10GET /iserver/marketdata/snapshot onlyinteractivebrokers.comchecked corroborated by ibkrcampus.com/campus/ibkr-api-page/webapi-doc/
Order and trade list requests1 req/5 sGET /iserver/orders and GET /iserver/trades, each counted on its owninteractivebrokers.comchecked corroborated by ibkrcampus.com/campus/ibkr-api-page/webapi-doc/
Session validation requests a minute1GET /sso/validate onlyinteractivebrokers.comchecked corroborated by ibkrcampus.com/campus/ibkr-api-page/webapi-doc/
Session keep alive requests a second1GET /tickle onlyinteractivebrokers.comchecked corroborated by ibkrcampus.com/campus/ibkr-api-page/webapi-doc/

Rate limits, as the record words them

Rate limits, as worded

Web API: 10 requests a second for each authenticated username, which IBKR equates with each Web API session, and the same figure through the Client Portal Gateway. Some endpoints carry their own limit: /iserver/marketdata/snapshot 10 a second; /iserver/marketdata/history 10 a second or 50 a minute, with 5 concurrent requests; /iserver/orders and /iserver/trades 1 per 5 seconds; /iserver/scanner/params 1 per 15 minutes; /tickle 1 a second; /sso/validate 1 a minute. A breach returns HTTP 429. The two IBKR pages cited first, read on 12 Oct 2026, say a violating IP address may be put in a penalty box for 10 minutes and that repeat violators may be blocked permanently until the issue is resolved. IBKR's Web API v1.0 pacing page, read the same day, says 15 minutes. TWS API, read again on 12 Oct 2026: the maximum is market data lines divided by two, per second, so the default 100 lines gives 50 requests a second, and for more than that IBKR suggests its FIX API.

IBKR Web API, pacing limitationschecked IBKR Campus, Web API documentationchecked IBKR Web API v1.0 documentation, pacing limitationschecked IBKR TWS API: pacing limitationschecked

Error codes that concern limits

These are the decoded Interactive Brokers 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
100Not recordedMax rate of messages per second has been exceeded.interactivebrokers.github.iochecked
429 Too Many Requests429On the Client Portal Web API, Interactive Brokers says that where a pacing limit is exceeded, the API returns a "429 Too Many Requests" exception (the vendor's wording).interactivebrokers.github.iochecked
456Not recordedListed by the vendor as "Max number of real time requests has been reached".interactivebrokers.comchecked

Pacing and backoff, in general

This part is general advice and says nothing about Interactive Brokers 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, IG, OANDA, Pepperstone, Saxo, Swissquote, ThinkMarkets, Tickmill, Trading 212, XTB.