# Interactive Brokers API rate limits

Independent and unofficial. Not affiliated with or endorsed by any broker or platform named here. Educational only: nothing here is advice, and nothing here recommends a broker or a trade.

This is the markdown version of https://openbrokerapi.com/brokers/ibkr/rate-limits, written from the same records as that page.

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.

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.

- Newest check: 2026-10-12

## 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.

- Global requests a second (Web API): 10 requests per second
  - Scope: Per authenticated username, that is per Web API session
  - Status: verified. Source: [ibkrcampus.com](https://www.ibkrcampus.com/campus/ibkr-api-page/webapi-doc/), checked 2026-10-12.
  - Corroborated by [interactivebrokers.com/docs/web-api/trading/usage-and-availability/pacing-limitations](https://www.interactivebrokers.com/docs/web-api/trading/usage-and-availability/pacing-limitations)
  - Note: Client Portal Web API. Some endpoints carry their own lower limit, held in separate records. A breach returns HTTP 429, and both IBKR pages read on 12 Oct 2026 give a penalty box of 10 minutes for a violating IP address.
- Historical market data requests: Either 10 req/s or 50 req/minute, as the page words it
  - Scope: GET /iserver/marketdata/history only
  - Status: verified. Source: [interactivebrokers.com](https://www.interactivebrokers.com/docs/web-api/trading/usage-and-availability/pacing-limitations), checked 2026-10-12.
  - Corroborated by [ibkrcampus.com/campus/ibkr-api-page/webapi-doc/](https://www.ibkrcampus.com/campus/ibkr-api-page/webapi-doc/)
  - Note: The page gives two figures joined by or and does not say which applies when, so no single number is recorded. The IBKR Campus page also lists 5 concurrent requests for this endpoint.
- Market data snapshot requests a second: 10 requests per second
  - Scope: GET /iserver/marketdata/snapshot only
  - Status: verified. Source: [interactivebrokers.com](https://www.interactivebrokers.com/docs/web-api/trading/usage-and-availability/pacing-limitations), checked 2026-10-12.
  - Corroborated by [ibkrcampus.com/campus/ibkr-api-page/webapi-doc/](https://www.ibkrcampus.com/campus/ibkr-api-page/webapi-doc/)
- Order and trade list requests: 1 req/5 s
  - Scope: GET /iserver/orders and GET /iserver/trades, each counted on its own
  - Status: verified. Source: [interactivebrokers.com](https://www.interactivebrokers.com/docs/web-api/trading/usage-and-availability/pacing-limitations), checked 2026-10-12.
  - Corroborated by [ibkrcampus.com/campus/ibkr-api-page/webapi-doc/](https://www.ibkrcampus.com/campus/ibkr-api-page/webapi-doc/)
  - Note: The same figure applies to /iserver/account/pnl/partitioned, /portfolio/accounts and /portfolio/subaccounts. The window is 5 seconds, which a single unit cannot state, so the figure stays as wording.
- Session validation requests a minute: 1 requests per minute
  - Scope: GET /sso/validate only
  - Status: verified. Source: [interactivebrokers.com](https://www.interactivebrokers.com/docs/web-api/trading/usage-and-availability/pacing-limitations), checked 2026-10-12.
  - Corroborated by [ibkrcampus.com/campus/ibkr-api-page/webapi-doc/](https://www.ibkrcampus.com/campus/ibkr-api-page/webapi-doc/)
- Session keep alive requests a second: 1 requests per second
  - Scope: GET /tickle only
  - Status: verified. Source: [interactivebrokers.com](https://www.interactivebrokers.com/docs/web-api/trading/usage-and-availability/pacing-limitations), checked 2026-10-12.
  - Corroborated by [ibkrcampus.com/campus/ibkr-api-page/webapi-doc/](https://www.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.
  - Status: verified. Source: [IBKR Web API, pacing limitations](https://www.interactivebrokers.com/docs/web-api/trading/usage-and-availability/pacing-limitations), checked 2026-10-12.
  - Status: verified. Source: [IBKR Campus, Web API documentation](https://www.ibkrcampus.com/campus/ibkr-api-page/webapi-doc/), checked 2026-10-12.
  - Status: verified. Source: [IBKR Web API v1.0 documentation, pacing limitations](https://www.interactivebrokers.com/docs/web-api/v1/pacing-limitations), checked 2026-10-12.
  - Status: verified. Source: [IBKR TWS API: pacing limitations](https://www.interactivebrokers.com/docs/tws-api/doc/pacing-limitations/introduction), checked 2026-10-12.

## Error codes that concern limits

These are the decoded Interactive Brokers errors whose record concerns a rate limit, an allowance or throttling. Each links to the full meaning and the fix.

- [100](https://openbrokerapi.com/errors/ibkr/100-max-message-rate-exceeded) (HTTP status not recorded): Max rate of messages per second has been exceeded.
  - Status: verified. Source: [interactivebrokers.github.io](https://interactivebrokers.github.io/tws-api/message_codes.html), checked 2026-09-19.
- [429 Too Many Requests](https://openbrokerapi.com/errors/ibkr/web-api-429) (HTTP status 429): On 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).
  - Status: verified. Source: [interactivebrokers.github.io](https://interactivebrokers.github.io/cpwebapi/use-cases), checked 2026-10-12.
- [456](https://openbrokerapi.com/errors/ibkr/456-max-number-of) (HTTP status not recorded): Listed by the vendor as "Max number of real time requests has been reached".
  - Status: verified. Source: [interactivebrokers.com](https://www.interactivebrokers.com/docs/tws-api/doc/error-handling/error-codes), checked 2026-10-12.

## 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 at https://openbrokerapi.com/tools/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 Interactive Brokers record](https://openbrokerapi.com/brokers/ibkr)
- [All Interactive Brokers error codes](https://openbrokerapi.com/errors/ibkr)
- [Rate limits for every broker and platform](https://openbrokerapi.com/rate-limits)
- [The fact register](https://openbrokerapi.com/facts)

## Licence and how to cite

The limit records on this page come from the limits register, which is CC BY 4.0 (https://openbrokerapi.com/data/limits.json). Everything else on it comes from records that are all rights reserved. This file is the page itself, at its own address, in another format, and it is not part of the CC BY 4.0 downloads listed at https://openbrokerapi.com/data.

Cite as: Interactive Brokers API rate limits. Broker API Hub, https://openbrokerapi.com/brokers/ibkr/rate-limits, newest check 2026-10-12.

Where you rely on a single figure, cite the source and the checked date printed beside it as well. Where this page and a broker's own documentation differ, the documentation wins.
