TWS API 10.47, released May 20 2026, breaks two common integrations: it removes reqFundamentalData (plus its protobuf siblings, callbacks, and the FUNDAMENTAL_RATIOS = 47 tick type), and it adds a setting that prepends a $LEDGER- prefix to per-currency account values, changing the keys returned by reqAccountUpdates and reqAccountUpdatesMulti. The stable channel sits one step back at 10.45 (Mar 30 2026); 10.47 is the latest and the first 2026 line with Python API binaries12. 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.45, released Mar 30 20261.
  • Latest: TWS API 10.47, released May 20 2026 — first 2026 line shipping Python API support1.
  • 10.47 removed fundamentals: reqFundamentalData, reqFundamentalsDataProtoBuf, cancelFundamentalData, cancelFundamentalsDataProtoBuf, their callbacks, and tick type FUNDAMENTAL_RATIOS = 4723.
  • 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; affects reqAccountUpdates / reqAccountUpdatesMulti24.
  • 10.46 added ticks: odd-lot tick types 105–108 and generic tick 7872.
  • Rate limits unchanged: 50 messages/second client cap and the historical-data pacing rules still hold5.

Version state in June 2026

IBKR runs two parallel channels on the TWS API download page1:

Channel Version Release date API languages
Stable 10.45 Mar 30 2026 Java, C++, C#/.NET, ActiveX, DDE
Latest 10.47 May 20 2026 Above plus Python

Verified 2026-06-161. The split matters for a production bot: the stable channel is the conservative default, but the Python API binaries ride the latest channel, so a Python integration on the current download is already on 10.47 and inherits its breaking changes. The 2026 production release notes also list 10.46 and 10.48 entries beyond what the download page surfaces as the headline pair2.

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 type23. Code calling any of these against a 10.47 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 conferences6. 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"24. 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 bare24. The default is what bites you: off for upgrading users, on for new users24. Two installs of the same bot can therefore parse different account-value keys depending on install age. Affected calls are reqAccountUpdates and reqAccountUpdatesMulti2.

What changed in 10.46

Between the 10.45 stable and 10.47 latest, 10.46 added market-data ticks rather than breaking anything2:

  • Odd-lot tick types: oddLotBid = 105, oddLotAsk = 106, oddLotBidSize = 107, oddLotAskSize = 1082.
  • Support for requesting generic tick 7872.

These are additive: existing tick handling keeps working, and the new ticks are available if you subscribe to them. The production notes also record a 10.48 entry — reqOpenOrders now includes de-activated orders — beyond the 10.47 latest-channel headline2.

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 client-to-TWS ceiling is still 50 messages per second, and a sustained breach still ends in TWS closing the connection5. Historical-data pacing is also unchanged: at most 60 requests per 10-minute window, no 6+ requests for the same contract/exchange/tick type within 2 seconds, no identical request repeated within 15 seconds, BID_ASK counted double, and 50 simultaneous open historical requests5. For the full pacing playbook see IBKR TWS API Rate Limits 2026; for the cost side see Interactive Brokers API Pricing 2026.

Upgrade checklist

  • Audit for reqFundamentalData and its cancel/protobuf variants and the FUNDAMENTAL_RATIOS tick; route those to an external fundamentals feed before moving to 10.4723.
  • Pin the $LEDGER- setting explicitly in your build runbook so every install parses the same keys, rather than relying on the upgrade-vs-new default24.
  • Stay on 10.45 stable for non-Python clients that read fundamentals until the migration is done; the Python download is already on 10.471.
  • Re-test account-value parsing against both prefixed and bare keys.
  • No throttle changes to re-tune — the 50/second and historical pacing rules carry over from the prior line5.

Verified figures

The 10.45 stable (Mar 30 2026) and 10.47 latest (May 20 2026) versions, the Python-on-latest channel split, the 10.47 fundamentals removal (reqFundamentalData and variants plus the FUNDAMENTAL_RATIOS = 47 tick), the $LEDGER- prefix setting and its upgrade-vs-new default, the 10.46 odd-lot ticks (105–108) and generic tick 787, and the unchanged 50/second and historical pacing limits were all verified against IBKR's own pages on 2026-06-17. The IBKR Campus changelog page returned 403 in-session; the version table is taken from the public TWS API download page and the public 2026 production release notes instead. Prices and per-exchange data subscriptions are not restated here; see the pricing article.

Connects to

References

Footnotes

  1. Interactive Brokers. "TWS API" download page (Stable: API 10.45, Release Date Mar 30 2026; Latest: API 10.47, Release Date May 20 2026; Python included on the latest channel). interactivebrokers.github.io, verified 2026-06-16. https://interactivebrokers.github.io/ 2 3 4 5 6

  2. Interactive Brokers. "Trader Workstation (TWS) 2026 API Production Release Notes" (10.47 removes reqFundamentalData/reqFundamentalsDataProtoBuf/cancelFundamentalData/cancelFundamentalsDataProtoBuf and the related callbacks/tick types; adds the "$LEDGER-" per-currency prefix setting affecting reqAccountUpdates/reqAccountUpdatesMulti, disabled by default for upgrading users and enabled for new users; 10.46 adds odd-lot ticks 105–108 and generic tick 787; 10.48 reqOpenOrders includes de-activated orders). ibkrguides.com, verified 2026-06-16. https://www.ibkrguides.com/releasenotes/prod-2026.htm 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

  3. Interactive Brokers / industry coverage. "TWS API 10.47" (removed reqFundamentalData, reqFundamentalsDataProtoBuf, cancelFundamentalData, cancelFundamentalsDataProtoBuf, the fundamentalData callbacks, and tick type FUNDAMENTAL_RATIOS = 47). reelfinancial.com, verified 2026-06-16. https://www.reelfinancial.com/archives/98837 2 3

  4. 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-06-16. https://fxnewsgroup.com/forex-news/retail-forex/interactive-brokers-updates-tws-api-2/ 2 3 4 5

  5. Interactive Brokers. "TWS API - Historical Data Limitations" (60 requests / 10 minutes, 6 same-contract requests / 2 seconds, identical request within 15 seconds, BID_ASK counts double, 50 max simultaneous open requests; the 50 messages/second client cap is documented in the TWS API introduction). interactivebrokers.github.io, verified 2026-06-16. https://interactivebrokers.github.io/tws-api/historical_limitations.html 2 3 4

  6. Interactive Brokers. "TWS API - Fundamental Data" (current corporate-event path uses reqWshMetaData and reqWshEventData for earnings, dividends, splits, spinoffs, and conferences). interactivebrokers.github.io, verified 2026-06-16. https://interactivebrokers.github.io/tws-api/fundamentals.html

Verified engine output

Show the recompute-verified inputs and outputs
Multi-asset brokers including futures coverage
Inputs
require_futures1
max_auth_complexity5
Result
filters › require optionsfalse
filters › require futurestrue
filters › require cryptofalse
filters › require mcpfalse
filters › require free tierfalse
filters › max auth complexity5
results › row 1 › broker › idschwab
results › row 1 › broker › nameSchwab
results › row 1 › broker › urlhttps://www.schwab.com/
results › row 1 › broker › docs urlhttps://developer.schwab.com/
results › row 1 › broker › authOAuth 2.0 (3-legged)
results › row 1 › broker › auth complexity4
results › row 1 › broker › order types (9 items)[...]
results › row 1 › broker › rate limits120 req/min per endpoint (published tier)
results › row 1 › broker › market data › row 1Real-time equities + options quotes
results › row 1 › broker › market data › row 2Historical bars (1m to daily)
results › row 1 › broker › market data › row 3No exchange depth via API
results › row 1 › broker › mcpnone
results › row 1 › broker › mcp noteNo official or listed community MCP server
results › row 1 › broker › assets › stockstrue
results › row 1 › broker › assets › optionstrue
results › row 1 › broker › assets › futurestrue
results › row 1 › broker › assets › cryptofalse
results › row 1 › broker › assets › forextrue
results › row 1 › broker › assets › bondstrue
results › row 1 › broker › account minimum0
results › row 1 › broker › commission$0 equities, $0.65/contract options
results › row 1 › broker › good forEstablished retail, post-TDA API migration
results › row 1 › broker › has free tiertrue
results › row 1 › broker › notes › row 1API rebuilt after TD Ameritrade integration; still maturing
results › row 1 › broker › notes › row 2Requires individual developer registration and app review
results › row 1 › broker › notes › row 3Token refresh flow is finicky vs Alpaca/Tradier
results › row 1 › score2
results › row 1 › max score2
results › row 1 › fitstrue
results › row 2 › broker › idibkr
results › row 2 › broker › nameInteractive Brokers
results › row 2 › broker › urlhttps://www.interactivebrokers.com/
results › row 2 › broker › docs urlhttps://www.interactivebrokers.com/en/trading/ib-api.php
results › row 2 › broker › authOAuth + TWS/IB Gateway
results › row 2 › broker › auth complexity5
results › row 2 › broker › order types (10 items)[...]
results › row 2 › broker › rate limits~50 msg/sec per connection; 50 orders/sec burst
results › row 2 › broker › market data › row 1Global equities via subscription bundles
results › row 2 › broker › market data › row 2Level-2 depth on most exchanges
results › row 2 › broker › market data › row 3Historical depth across asset classes
results › row 2 › broker › mcpcommunity
results › row 2 › broker › mcp noteCommunity CLI MCP; audit before production
results › row 2 › broker › assets › stockstrue
results › row 2 › broker › assets › optionstrue
results › row 2 › broker › assets › futurestrue
results › row 2 › broker › assets › cryptotrue
results › row 2 › broker › assets › forextrue
results › row 2 › broker › assets › bondstrue
results › row 2 › broker › account minimum0
results › row 2 › broker › commissionTiered per-share or fixed; ~$0.0035/sh tiered
results › row 2 › broker › good forMulti-asset-class, international, scale
results › row 2 › broker › has free tierfalse
results › row 2 › broker › notes › row 1Requires TWS or IB Gateway running locally
results › row 2 › broker › notes › row 2Idempotency via client-supplied orderId
results › row 2 › broker › notes › row 3Fully headless gateway is possible but under-documented
results › row 2 › score2
results › row 2 › max score2
results › row 2 › fitstrue
results › row 3 › broker › idalpaca
results › row 3 › broker › nameAlpaca
results › row 3 › broker › urlhttps://alpaca.markets/
results › row 3 › broker › docs urlhttps://alpaca.markets/docs/
results › row 3 › broker › authAPI Key + Secret
results › row 3 › broker › auth complexity1
results › row 3 › broker › order types (10 items)[...]
results › row 3 › broker › rate limits200 req/min (free), higher on paid tiers
results › row 3 › broker › market data › row 1IEX real-time (free)
results › row 3 › broker › market data › row 2Full SIP on Algo Trader Plus ($99/mo)
results › row 3 › broker › market data › row 3Historical bars + trades + quotes
results › row 3 › broker › mcpofficial
results › row 3 › broker › mcp noteOfficial MCP V2, 61 actions, idempotent order submission
results › row 3 › broker › assets › stockstrue
results › row 3 › broker › assets › optionstrue
results › row 3 › broker › assets › futuresfalse
results › row 3 › broker › assets › cryptotrue
results › row 3 › broker › assets › forexfalse
results › row 3 › broker › assets › bondsfalse
results › row 3 › broker › account minimum0
results › row 3 › broker › commission$0 (PFOF on equities)
results › row 3 › broker › good forSolo AI operator, paper-to-live parity
results › row 3 › broker › has free tiertrue
results › row 3 › broker › notes › row 1Free paper trading with same API surface as live
results › row 3 › broker › notes › row 2Options require Algo Trader Plus tier
results › row 3 › broker › notes › row 3Python/Go SDKs mature; rate-limit backoff documented
results › row 3 › score1
results › row 3 › max score2
results › row 3 › fitsfalse
results › row 3 › fail reasons › row 1Futures
results › row 4 › broker › idtradier
results › row 4 › broker › nameTradier
results › row 4 › broker › urlhttps://tradier.com/
results › row 4 › broker › docs urlhttps://developer.tradier.com/
results › row 4 › broker › authOAuth 2.0
results › row 4 › broker › auth complexity3
results › row 4 › broker › order types (8 items)[...]
results › row 4 › broker › rate limits120 req/min market data, 60 req/min trading
results › row 4 › broker › market data › row 1Real-time equities + options (streaming)
results › row 4 › broker › market data › row 2Historical OHLC back ~5 years
results › row 4 › broker › market data › row 3No Level-2 depth
results › row 4 › broker › mcpcommunity
results › row 4 › broker › mcp noteCommunity MCP; idempotency is a manual patch
results › row 4 › broker › assets › stockstrue
results › row 4 › broker › assets › optionstrue
results › row 4 › broker › assets › futuresfalse
results › row 4 › broker › assets › cryptofalse
results › row 4 › broker › assets › forexfalse
results › row 4 › broker › assets › bondsfalse
results › row 4 › broker › account minimum0
results › row 4 › broker › commission$0 equities (PFOF), $0.35/contract options Pro
results › row 4 › broker › good forOptions-first retail, multi-leg strategies
results › row 4 › broker › has free tiertrue
results › row 4 › broker › notes › row 1Free sandbox with delayed data
results › row 4 › broker › notes › row 2Strong options chain + multi-leg order API
results › row 4 › broker › notes › row 3US-only account eligibility
results › row 4 › score1
results › row 4 › max score2
results › row 4 › fitsfalse
results › row 4 › fail reasons › row 1Futures
results › row 5 › broker › idrobinhood
results › row 5 › broker › nameRobinhood
results › row 5 › broker › urlhttps://robinhood.com/
results › row 5 › broker › docs urlhttps://docs.robinhood.com/
results › row 5 › broker › authOAuth 2.0 (unofficial endpoints)
results › row 5 › broker › auth complexity4
results › row 5 › broker › order types › row 1market
results › row 5 › broker › order types › row 2limit
results › row 5 › broker › order types › row 3stop
results › row 5 › broker › order types › row 4stop-limit
results › row 5 › broker › order types › row 5gtc
results › row 5 › broker › order types › row 6ioc
results › row 5 › broker › rate limitsNot publicly documented; low throughput
results › row 5 › broker › market data › row 1Delayed quotes in public tier
results › row 5 › broker › market data › row 2Limited historical depth
results › row 5 › broker › market data › row 3No public Level-2
results › row 5 › broker › mcpnone
results › row 5 › broker › mcp noteNo MCP; unofficial SDKs only
results › row 5 › broker › assets › stockstrue
results › row 5 › broker › assets › optionstrue
results › row 5 › broker › assets › futuresfalse
results › row 5 › broker › assets › cryptotrue
results › row 5 › broker › assets › forexfalse
results › row 5 › broker › assets › bondsfalse
results › row 5 › broker › account minimum0
results › row 5 › broker › commission$0 (PFOF), $5/mo Gold for margin + extras
results › row 5 › broker › good forCasual retail; not recommended for agents
results › row 5 › broker › has free tiertrue
results › row 5 › broker › notes › row 1No officially supported public API in 2026
results › row 5 › broker › notes › row 2Community SDKs break on auth changes without notice
results › row 5 › broker › notes › row 3Paper trading unavailable
results › row 5 › score1
results › row 5 › max score2
results › row 5 › fitsfalse
results › row 5 › fail reasons › row 1Futures
fitting brokers › row 1 › broker › idschwab
fitting brokers › row 1 › broker › nameSchwab
fitting brokers › row 1 › broker › urlhttps://www.schwab.com/
fitting brokers › row 1 › broker › docs urlhttps://developer.schwab.com/
fitting brokers › row 1 › broker › authOAuth 2.0 (3-legged)
fitting brokers › row 1 › broker › auth complexity4
fitting brokers › row 1 › broker › order types (9 items)[...]
fitting brokers › row 1 › broker › rate limits120 req/min per endpoint (published tier)
fitting brokers › row 1 › broker › market data › row 1Real-time equities + options quotes
fitting brokers › row 1 › broker › market data › row 2Historical bars (1m to daily)
fitting brokers › row 1 › broker › market data › row 3No exchange depth via API
fitting brokers › row 1 › broker › mcpnone
fitting brokers › row 1 › broker › mcp noteNo official or listed community MCP server
fitting brokers › row 1 › broker › assets › stockstrue
fitting brokers › row 1 › broker › assets › optionstrue
fitting brokers › row 1 › broker › assets › futurestrue
fitting brokers › row 1 › broker › assets › cryptofalse
fitting brokers › row 1 › broker › assets › forextrue
fitting brokers › row 1 › broker › assets › bondstrue
fitting brokers › row 1 › broker › account minimum0
fitting brokers › row 1 › broker › commission$0 equities, $0.65/contract options
fitting brokers › row 1 › broker › good forEstablished retail, post-TDA API migration
fitting brokers › row 1 › broker › has free tiertrue
fitting brokers › row 1 › broker › notes › row 1API rebuilt after TD Ameritrade integration; still maturing
fitting brokers › row 1 › broker › notes › row 2Requires individual developer registration and app review
fitting brokers › row 1 › broker › notes › row 3Token refresh flow is finicky vs Alpaca/Tradier
fitting brokers › row 1 › score2
fitting brokers › row 1 › max score2
fitting brokers › row 1 › fitstrue
fitting brokers › row 2 › broker › idibkr
fitting brokers › row 2 › broker › nameInteractive Brokers
fitting brokers › row 2 › broker › urlhttps://www.interactivebrokers.com/
fitting brokers › row 2 › broker › docs urlhttps://www.interactivebrokers.com/en/trading/ib-api.php
fitting brokers › row 2 › broker › authOAuth + TWS/IB Gateway
fitting brokers › row 2 › broker › auth complexity5
fitting brokers › row 2 › broker › order types (10 items)[...]
fitting brokers › row 2 › broker › rate limits~50 msg/sec per connection; 50 orders/sec burst
fitting brokers › row 2 › broker › market data › row 1Global equities via subscription bundles
fitting brokers › row 2 › broker › market data › row 2Level-2 depth on most exchanges
fitting brokers › row 2 › broker › market data › row 3Historical depth across asset classes
fitting brokers › row 2 › broker › mcpcommunity
fitting brokers › row 2 › broker › mcp noteCommunity CLI MCP; audit before production
fitting brokers › row 2 › broker › assets › stockstrue
fitting brokers › row 2 › broker › assets › optionstrue
fitting brokers › row 2 › broker › assets › futurestrue
fitting brokers › row 2 › broker › assets › cryptotrue
fitting brokers › row 2 › broker › assets › forextrue
fitting brokers › row 2 › broker › assets › bondstrue
fitting brokers › row 2 › broker › account minimum0
fitting brokers › row 2 › broker › commissionTiered per-share or fixed; ~$0.0035/sh tiered
fitting brokers › row 2 › broker › good forMulti-asset-class, international, scale
fitting brokers › row 2 › broker › has free tierfalse
fitting brokers › row 2 › broker › notes › row 1Requires TWS or IB Gateway running locally
fitting brokers › row 2 › broker › notes › row 2Idempotency via client-supplied orderId
fitting brokers › row 2 › broker › notes › row 3Fully headless gateway is possible but under-documented
fitting brokers › row 2 › score2
fitting brokers › row 2 › max score2
fitting brokers › row 2 › fitstrue

Computed live at build time.

Frequently asked questions

What is the latest Interactive Brokers TWS API version in 2026?
TWS API 10.47, released May 20 2026, is the latest channel and the first 2026 line with Python API binaries. The stable channel is 10.45, released Mar 30 2026 (verified 2026-06-16).
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 client.
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.
Did the IBKR API rate limits change in the 2026 updates?
No. The 50 messages/second client cap 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-06-16).