Interactive Brokers' 2026 TWS API release notes run from 10.43 to 10.51, and two of those releases change how an existing bot behaves. 10.47 removes reqFundamentalData (plus its protobuf siblings, callbacks, and the FUNDAMENTAL_RATIOS = 47 tick type) and adds a setting that prepends a $LEDGER- prefix to per-currency account values, changing the keys returned by reqAccountUpdates and reqAccountUpdatesMulti. 10.49 released the TWS API as open source under the GNU General Public License. As of 2026-10-18 the download page lists 10.50 as stable (Sep 9 2026) and 10.51 as latest (Sep 29 2026), with the Python API still on the latest channel only12. If your bot reads fundamentals or parses per-currency balances, read this before you upgrade. Compare IBKR against other brokers in the Broker API Comparator.
TL;DR
- Stable: TWS API 10.50 (v1050.02), released Sep 9 20261.
- Latest: TWS API 10.51 (v1051.01), released Sep 29 2026; the latest channel adds the Python API to the stable languages1.
- 10.47 removed fundamentals:
reqFundamentalData,reqFundamentalsDataProtoBuf,cancelFundamentalData,cancelFundamentalsDataProtoBuf, their callbacks, and tick typeFUNDAMENTAL_RATIOS = 472. - 10.47
$LEDGER-prefix: a new API setting prepends$LEDGER-to per-currency keys (e.g.$LEDGER-CashBalance); off by default for upgrading users, on for new users; affectsreqAccountUpdates/reqAccountUpdatesMulti23. - 10.49 went open source under the GPL and added a Settlement Type field to contract details2.
- 10.48 to 10.51:
reqOpenOrdersnow includes de-activated orders (10.48), orders gainconditionsIncludeOvernight(10.50), andreqPositionsreports the right exchange for commodities and CFDs (10.51)2. - Rate limits unchanged: market-data lines divided by 2 requests per second (50 on the default 100 lines) and the historical-data pacing rules still hold4.
Version state in October 2026
IBKR runs two parallel channels on the TWS API download page1:
| Channel | Version | Release date | API languages |
|---|---|---|---|
| Stable | 10.50 (v1050.02) | Sep 9 2026 | Java, C++, C#/.NET, ActiveX, DDE on Windows; Java and POSIX C++ on Mac/Linux |
| Latest | 10.51 (v1051.01) | Sep 29 2026 | Above plus Python |
Verified 2026-10-181. Both channels are now past 10.47, so its breaking changes reach every client on its next upgrade, whichever channel it follows. IBKR recommends TWS or IB Gateway 1050.02 or higher for full feature support1.
2026 release by release
| Version | What changed | Effect on an existing bot |
|---|---|---|
| 10.43 | Stage orders from the API and submit them from the IBKR mobile app; get-config request/response | Additive |
| 10.44 | Update-config request/response; fractional last sizes in tickSize |
Additive, but size handlers must accept fractions |
| 10.45 | hedgeMaxSize order parameter; one-time clearing of "Enable ActiveX and Socket Clients" and "Allow connections from localhost only" |
API connections fail until the settings are re-enabled |
| 10.46 | Odd-lot tick types 105–110 and generic tick 787 | Additive |
| 10.47 | Fundamentals methods removed; $LEDGER- prefix setting |
Breaking |
| 10.48 | reqOpenOrders includes de-activated orders |
Behaviour change |
| 10.49 | Open source under the GPL; Settlement Type in contract details | Additive |
| 10.50 | conditionsIncludeOvernight on orders; protobuf field descriptions; Excel DDE and portfolio fixes |
Additive |
| 10.51 | reqPositions exchange field fixed for commodities and CFDs |
Fix |
All entries are from IBKR's 2026 production release notes2.
The removed fundamentals API
The clearest break in 10.47 is the deletion of the legacy fundamentals path. Removed methods: reqFundamentalData, reqFundamentalsDataProtoBuf, cancelFundamentalData, and cancelFundamentalsDataProtoBuf, along with the matching callbacks and the FUNDAMENTAL_RATIOS = 47 tick type2. Code calling any of these against a 10.47-or-later client stops returning data. This was a financial-statement and ratio feed (Reuters-sourced), separate from corporate-event data. IBKR's current path for corporate events is the Wall Street Horizon methods reqWshMetaData and reqWshEventData, which cover earnings dates, dividends, splits, and conferences and need the Wall Street Horizon research subscription activated first5. A bot that depended on reqFundamentalData for ratios needs an external fundamentals source after upgrading.
The $LEDGER- per-currency prefix
The second behavior change is opt-in but easy to trip over. 10.47 adds an API setting, "Prepend '$LEDGER-' prefix to per-currency account values"23. It fixes a long-standing ambiguity: a key like CashBalance appeared both at the overall-account level and inside each currency ledger, with no way to tell them apart. With the setting on, per-currency keys become $LEDGER-CashBalance and so on, while account-level keys stay bare23. The default is what bites you: off for upgrading users, on for new users23. Two installs of the same bot can therefore parse different account-value keys depending on install age. Affected calls are reqAccountUpdates and reqAccountUpdatesMulti2.
De-activated orders in reqOpenOrders (10.48)
From 10.48 the reqOpenOrders response includes de-activated orders2. A reconciliation loop that treats every returned order as live can now count orders that will not fill, or try to cancel orders that are already inactive. Filter the response on order status rather than assuming every entry is working.
Open source from 10.49
10.49 released the TWS API under the GNU General Public License, and the download page now carries a Contribute link alongside the installers12. For most bots nothing changes at runtime. The licence matters if you distribute software that embeds the API client, so read the GPL's terms before you ship a closed-source product built on it.
Rate limits in 2026: no change
A frequent question around any API bump is whether the pacing rules moved. For TWS API in 2026 they did not. The request ceiling is still your market-data lines divided by 2 per second: 50 requests per second on the default 100 lines, 100 on 200 lines4. Historical-data pacing is also unchanged: for bars of 30 seconds or less, at most 60 requests in any ten-minute window, no 6+ requests for the same contract, exchange and tick type within 2 seconds, and no identical request repeated within 15 seconds; BID_ASK counts double, and at most 50 historical requests can be open at once4. For the full pacing playbook see IBKR TWS API Rate Limits 2026; for the cost side see Interactive Brokers API Pricing 2026.
Upgrade checklist
- Re-enable socket clients after any upgrade that passes through 10.45, which clears "Enable ActiveX and Socket Clients" and "Allow connections from localhost only" once2.
- Audit for
reqFundamentalDataand its cancel/protobuf variants and theFUNDAMENTAL_RATIOStick; route those to an external fundamentals feed before moving past 10.462. - Pin the
$LEDGER-setting explicitly in your build runbook so every install parses the same keys, rather than relying on the upgrade-vs-new default23. - Filter
reqOpenOrdersby status once you are on 10.48 or later2. - Re-test account-value parsing against both prefixed and bare keys.
- No throttle changes to re-tune — the lines-divided-by-2 request ceiling and historical pacing rules carry over from the prior line4.
Verified figures
The 10.50 stable (Sep 9 2026) and 10.51 latest (Sep 29 2026) versions, the Python-on-latest channel split, the 10.43 to 10.51 release-note entries (including the 10.47 fundamentals removal, the $LEDGER- prefix setting and its upgrade-vs-new default, and the 10.49 open-source release), and the unchanged request and historical pacing limits were all verified against IBKR's own pages on 2026-10-18. Prices and per-exchange data subscriptions are not restated here; see the pricing article.
Connects to
- IBKR TWS API Rate Limits 2026: the full pacing rules these updates leave intact.
- Interactive Brokers API Pricing 2026: the cost side of the same API.
- Alpaca vs Interactive Brokers API 2026: pacing model versus a flat per-minute cap.
- Broker API Comparator: IBKR's surface against other brokers.
References
Footnotes
-
Interactive Brokers. "TWS API" download page (Stable: 10.50, v1050.02, Release Date Sep 9 2026; Latest: 10.51, v1051.01, Release Date Sep 29 2026; Python included on the latest channel; recommended TWS or IB Gateway 1050.02 or higher). interactivebrokers.github.io, verified 2026-10-18. https://download2.interactivebrokers.com/installers/tws-api/index.html ↩ ↩2 ↩3 ↩4 ↩5 ↩6 ↩7
-
Interactive Brokers. "Trader Workstation (TWS) 2026 API Production Release Notes" (10.43 mobile order staging and get-config; 10.44 update-config and fractional last sizes; 10.45 hedgeMaxSize and one-time socket-setting reset; 10.46 odd-lot ticks 105–110 and generic tick 787; 10.47 removes reqFundamentalData/reqFundamentalsDataProtoBuf/cancelFundamentalData/cancelFundamentalsDataProtoBuf and the related callbacks and tick type, and adds the "$LEDGER-" per-currency prefix setting, disabled by default for upgrading users and enabled for new users; 10.48 reqOpenOrders includes de-activated orders; 10.49 open source under the GPL and Settlement Type; 10.50 conditionsIncludeOvernight; 10.51 reqPositions exchange-field fix). ibkrguides.com, verified 2026-10-18. https://www.ibkrguides.com/releasenotes/prod-2026.htm ↩ ↩2 ↩3 ↩4 ↩5 ↩6 ↩7 ↩8 ↩9 ↩10 ↩11 ↩12 ↩13 ↩14 ↩15 ↩16 ↩17
-
FX News Group. "Interactive Brokers updates TWS API" (10.47: new "Prepend '$LEDGER-' prefix to per-currency account values" setting; keys become e.g. "$LEDGER-CashBalance"; disabled by default for existing users, enabled for new ones). fxnewsgroup.com, verified 2026-10-18. https://fxnewsgroup.com/forex-news/retail-forex/interactive-brokers-updates-tws-api-2/ ↩ ↩2 ↩3 ↩4 ↩5
-
Interactive Brokers. "TWS API: Pacing Limitations, Introduction" (maximum requests per second = market-data lines / 2; 50 on the default 100 lines) and "TWS API - Historical Data Limitations" (60 requests in any ten-minute period, six or more same-contract requests within two seconds, identical request within 15 seconds, BID_ASK counted twice, 50 maximum simultaneous open requests). interactivebrokers.com and interactivebrokers.github.io, verified 2026-10-18. https://www.interactivebrokers.com/docs/tws-api/doc/pacing-limitations/introduction ↩ ↩2 ↩3 ↩4
-
Interactive Brokers. "TWS API - Fundamental Data" (corporate events via reqWshMetaData and reqWshEventData; requires the Wall Street Horizon research subscription). interactivebrokers.github.io, verified 2026-10-18. https://interactivebrokers.github.io/tws-api/fundamentals.html ↩
Verified engine output
Show the recompute-verified inputs and outputs
| require_futures | 1 |
|---|---|
| max_auth_complexity | 5 |
| filters › require options | false |
|---|---|
| filters › require futures | true |
| filters › require crypto | false |
| filters › require mcp | false |
| filters › require free tier | false |
| filters › max auth complexity | 5 |
| results › row 1 › broker › id | ibkr |
| results › row 1 › broker › name | Interactive Brokers |
| results › row 1 › broker › url | https://www.interactivebrokers.com/ |
| results › row 1 › broker › docs url | https://www.interactivebrokers.com/en/trading/ib-api.php |
| results › row 1 › broker › auth | OAuth + TWS/IB Gateway |
| results › row 1 › broker › auth complexity | 5 |
| results › row 1 › broker › order types (10 items) | [...] |
| results › row 1 › broker › rate limits | Market-data lines / 2 requests per second (50 on the default 100 lines); small-bar history 60 requests per 10 min |
| results › row 1 › broker › market data › row 1 | Global equities via subscription bundles |
| results › row 1 › broker › market data › row 2 | Level-2 depth on most exchanges |
| results › row 1 › broker › market data › row 3 | Historical depth across asset classes |
| results › row 1 › broker › mcp | official |
| results › row 1 › broker › mcp note | Official IBKR Connector: remote MCP at api.ibkr.com, IBKR sign-in, one account; drafts trade instructions that you submit as orders yourself |
| results › row 1 › broker › assets › stocks | true |
| results › row 1 › broker › assets › options | true |
| results › row 1 › broker › assets › futures | true |
| results › row 1 › broker › assets › crypto | true |
| results › row 1 › broker › assets › forex | true |
| results › row 1 › broker › assets › bonds | true |
| results › row 1 › broker › account minimum | 0 |
| results › row 1 › broker › commission | Tiered per-share or fixed; ~$0.0035/sh tiered |
| results › row 1 › broker › good for | Multi-asset-class, international, scale |
| results › row 1 › broker › has free tier | false |
| results › row 1 › broker › notes › row 1 | Requires TWS or IB Gateway running locally |
| results › row 1 › broker › notes › row 2 | Idempotency via client-supplied orderId |
| results › row 1 › broker › notes › row 3 | Fully headless gateway is possible but under-documented |
| results › row 1 › score | 2 |
| results › row 1 › max score | 2 |
| results › row 1 › fits | true |
| results › row 2 › broker › id | alpaca |
| results › row 2 › broker › name | Alpaca |
| results › row 2 › broker › url | https://alpaca.markets/ |
| results › row 2 › broker › docs url | https://alpaca.markets/docs/ |
| results › row 2 › broker › auth | API Key + Secret |
| results › row 2 › broker › auth complexity | 1 |
| results › row 2 › broker › order types (10 items) | [...] |
| results › row 2 › broker › rate limits | Trading API 200 req/min; market data 200/min free, 10,000/min on Algo Trader Plus |
| results › row 2 › broker › market data › row 1 | IEX real-time (free) |
| results › row 2 › broker › market data › row 2 | Full SIP on Algo Trader Plus ($99/mo) |
| results › row 2 › broker › market data › row 3 | Historical bars + trades + quotes |
| results › row 2 › broker › mcp | official |
| results › row 2 › broker › mcp note | Official open-source MCP server (V2 rewrite on FastMCP/OpenAPI); data, paper and live trading |
| results › row 2 › broker › assets › stocks | true |
| results › row 2 › broker › assets › options | true |
| results › row 2 › broker › assets › futures | false |
| results › row 2 › broker › assets › crypto | true |
| results › row 2 › broker › assets › forex | false |
| results › row 2 › broker › assets › bonds | false |
| results › row 2 › broker › account minimum | 0 |
| results › row 2 › broker › commission | $0 (PFOF on equities) |
| results › row 2 › broker › good for | Solo AI operator, paper-to-live parity |
| results › row 2 › broker › has free tier | true |
| results › row 2 › broker › notes › row 1 | Free paper trading with same API surface as live |
| results › row 2 › broker › notes › row 2 | Real-time OPRA options data needs Algo Trader Plus; Basic gets the indicative feed |
| results › row 2 › broker › notes › row 3 | Python/Go SDKs mature; rate-limit backoff documented |
| results › row 2 › score | 1 |
| results › row 2 › max score | 2 |
| results › row 2 › fits | false |
| results › row 2 › fail reasons › row 1 | Futures |
| results › row 3 › broker › id | tradier |
| results › row 3 › broker › name | Tradier |
| results › row 3 › broker › url | https://tradier.com/ |
| results › row 3 › broker › docs url | https://developer.tradier.com/ |
| results › row 3 › broker › auth | OAuth 2.0 |
| results › row 3 › broker › auth complexity | 3 |
| results › row 3 › broker › order types (8 items) | [...] |
| results › row 3 › broker › rate limits | 120 req/min standard and market data, 60 req/min trading (production) |
| results › row 3 › broker › market data › row 1 | Real-time equities + options (streaming) |
| results › row 3 › broker › market data › row 2 | Historical OHLC back ~5 years |
| results › row 3 › broker › market data › row 3 | No Level-2 depth |
| results › row 3 › broker › mcp | official |
| results › row 3 › broker › mcp note | Official hosted MCP server (Streamable HTTP, personal API token); market data, accounts and order placement |
| results › row 3 › broker › assets › stocks | true |
| results › row 3 › broker › assets › options | true |
| results › row 3 › broker › assets › futures | false |
| results › row 3 › broker › assets › crypto | false |
| results › row 3 › broker › assets › forex | false |
| results › row 3 › broker › assets › bonds | false |
| results › row 3 › broker › account minimum | 0 |
| results › row 3 › broker › commission | $0 equities (PFOF), $0.35/contract options Pro |
| results › row 3 › broker › good for | Options-first retail, multi-leg strategies |
| results › row 3 › broker › has free tier | true |
| results › row 3 › broker › notes › row 1 | Free sandbox with delayed data |
| results › row 3 › broker › notes › row 2 | Strong options chain + multi-leg order API |
| results › row 3 › broker › notes › row 3 | US-only account eligibility |
| results › row 3 › score | 1 |
| results › row 3 › max score | 2 |
| results › row 3 › fits | false |
| results › row 3 › fail reasons › row 1 | Futures |
| results › row 4 › broker › id | robinhood |
| results › row 4 › broker › name | Robinhood |
| results › row 4 › broker › url | https://robinhood.com/ |
| results › row 4 › broker › docs url | https://docs.robinhood.com/ |
| results › row 4 › broker › auth | API key (Crypto Trading API); Robinhood sign-in (Trading MCP) |
| results › row 4 › broker › auth complexity | 3 |
| results › row 4 › broker › order types › row 1 | market |
| results › row 4 › broker › order types › row 2 | limit |
| results › row 4 › broker › order types › row 3 | stop |
| results › row 4 › broker › order types › row 4 | stop-limit |
| results › row 4 › broker › rate limits | Not publicly documented |
| results › row 4 › broker › market data › row 1 | Delayed quotes in public tier |
| results › row 4 › broker › market data › row 2 | Limited historical depth |
| results › row 4 › broker › market data › row 3 | No public Level-2 |
| results › row 4 › broker › mcp | official |
| results › row 4 › broker › mcp note | Official Robinhood Trading MCP (Agentic Trading): long equities, options and crypto, only in a dedicated agentic account; no multi-leg options |
| results › row 4 › broker › assets › stocks | true |
| results › row 4 › broker › assets › options | true |
| results › row 4 › broker › assets › futures | false |
| results › row 4 › broker › assets › crypto | true |
| results › row 4 › broker › assets › forex | false |
| results › row 4 › broker › assets › bonds | false |
| results › row 4 › broker › account minimum | 0 |
| results › row 4 › broker › commission | $0 (PFOF), $5/mo Gold for margin + extras |
| results › row 4 › broker › good for | Agent-driven trading from an existing Robinhood account; no REST API for stocks or options |
| results › row 4 › broker › has free tier | true |
| results › row 4 › broker › notes › row 1 | Official REST API covers crypto only; stocks and options are reachable only through the Trading MCP |
| results › row 4 › broker › notes › row 2 | Trade approvals are off by default for external MCP agents |
| results › row 4 › broker › notes › row 3 | Paper trading unavailable |
| results › row 4 › score | 1 |
| results › row 4 › max score | 2 |
| results › row 4 › fits | false |
| results › row 4 › fail reasons › row 1 | Futures |
| results › row 5 › broker › id | schwab |
| results › row 5 › broker › name | Schwab |
| results › row 5 › broker › url | https://www.schwab.com/ |
| results › row 5 › broker › docs url | https://developer.schwab.com/ |
| results › row 5 › broker › auth | OAuth 2.0 (3-legged) |
| results › row 5 › broker › auth complexity | 4 |
| results › row 5 › broker › order types (9 items) | [...] |
| results › row 5 › broker › rate limits | 120 req/min for non-order calls per app; order writes 0-120/min per account, set at app registration |
| results › row 5 › broker › market data › row 1 | Real-time equities + options quotes |
| results › row 5 › broker › market data › row 2 | Historical bars (1m to daily) |
| results › row 5 › broker › market data › row 3 | No exchange depth via API |
| results › row 5 › broker › mcp | community |
| results › row 5 › broker › mcp note | No official MCP; community servers wrap the Trader API (self-hosted, re-authorize when the 7-day refresh token expires) |
| results › row 5 › broker › assets › stocks | true |
| results › row 5 › broker › assets › options | true |
| results › row 5 › broker › assets › futures | false |
| results › row 5 › broker › assets › crypto | false |
| results › row 5 › broker › assets › forex | false |
| results › row 5 › broker › assets › bonds | false |
| results › row 5 › broker › account minimum | 0 |
| results › row 5 › broker › commission | $0 equities, $0.65/contract options |
| results › row 5 › broker › good for | Established retail, post-TDA API migration |
| results › row 5 › broker › has free tier | true |
| results › row 5 › broker › notes › row 1 | API rebuilt after TD Ameritrade integration; still maturing |
| results › row 5 › broker › notes › row 2 | Orders cover stocks, ETFs and options; futures and forex trade on thinkorswim, not through the API |
| results › row 5 › broker › notes › row 3 | Requires individual developer registration and app review |
| results › row 5 › broker › notes › row 4 | Token refresh flow is finicky vs Alpaca/Tradier |
| results › row 5 › score | 1 |
| results › row 5 › max score | 2 |
| results › row 5 › fits | false |
| results › row 5 › fail reasons › row 1 | Futures |
| fitting brokers › row 1 › broker › id | ibkr |
| fitting brokers › row 1 › broker › name | Interactive Brokers |
| fitting brokers › row 1 › broker › url | https://www.interactivebrokers.com/ |
| fitting brokers › row 1 › broker › docs url | https://www.interactivebrokers.com/en/trading/ib-api.php |
| fitting brokers › row 1 › broker › auth | OAuth + TWS/IB Gateway |
| fitting brokers › row 1 › broker › auth complexity | 5 |
| fitting brokers › row 1 › broker › order types (10 items) | [...] |
| fitting brokers › row 1 › broker › rate limits | Market-data lines / 2 requests per second (50 on the default 100 lines); small-bar history 60 requests per 10 min |
| fitting brokers › row 1 › broker › market data › row 1 | Global equities via subscription bundles |
| fitting brokers › row 1 › broker › market data › row 2 | Level-2 depth on most exchanges |
| fitting brokers › row 1 › broker › market data › row 3 | Historical depth across asset classes |
| fitting brokers › row 1 › broker › mcp | official |
| fitting brokers › row 1 › broker › mcp note | Official IBKR Connector: remote MCP at api.ibkr.com, IBKR sign-in, one account; drafts trade instructions that you submit as orders yourself |
| fitting brokers › row 1 › broker › assets › stocks | true |
| fitting brokers › row 1 › broker › assets › options | true |
| fitting brokers › row 1 › broker › assets › futures | true |
| fitting brokers › row 1 › broker › assets › crypto | true |
| fitting brokers › row 1 › broker › assets › forex | true |
| fitting brokers › row 1 › broker › assets › bonds | true |
| fitting brokers › row 1 › broker › account minimum | 0 |
| fitting brokers › row 1 › broker › commission | Tiered per-share or fixed; ~$0.0035/sh tiered |
| fitting brokers › row 1 › broker › good for | Multi-asset-class, international, scale |
| fitting brokers › row 1 › broker › has free tier | false |
| fitting brokers › row 1 › broker › notes › row 1 | Requires TWS or IB Gateway running locally |
| fitting brokers › row 1 › broker › notes › row 2 | Idempotency via client-supplied orderId |
| fitting brokers › row 1 › broker › notes › row 3 | Fully headless gateway is possible but under-documented |
| fitting brokers › row 1 › score | 2 |
| fitting brokers › row 1 › max score | 2 |
| fitting brokers › row 1 › fits | true |
Computed live at build time.
Frequently asked questions
- What is the latest Interactive Brokers TWS API version in 2026?
- TWS API 10.51 (v1051.01), released Sep 29 2026, is the latest channel and includes the Python API. The stable channel is 10.50 (v1050.02), released Sep 9 2026 (verified 2026-10-18).
- What did TWS API 10.47 remove?
- It removed the legacy fundamentals path: reqFundamentalData, reqFundamentalsDataProtoBuf, cancelFundamentalData, cancelFundamentalsDataProtoBuf, their callbacks, and the FUNDAMENTAL_RATIOS = 47 tick type. Code calling these stops returning data on a 10.47-or-later client, which now includes both the stable and latest channels.
- What is the $LEDGER- prefix in TWS API 10.47?
- A new API setting that prepends $LEDGER- to per-currency account-value keys (e.g. $LEDGER-CashBalance) so they are distinct from account-level keys. It is off by default for upgrading users and on for new users, and it affects reqAccountUpdates and reqAccountUpdatesMulti.
- Is the TWS API open source?
- Yes, from 10.49. Interactive Brokers released the TWS API as open source under the GNU General Public License, and the download page now links to a contribution path. Check the licence terms if you distribute software that embeds the API client.
- Did the IBKR API rate limits change in the 2026 updates?
- No. The request ceiling of market-data lines divided by 2 per second (50 on the default 100 lines) and the historical-data pacing rules (60 per 10 minutes, 6 per 2 seconds for the same contract, no identical request within 15 seconds, BID_ASK counted double, 50 simultaneous open requests) carry over unchanged (verified 2026-10-18).