# ib_async

The community continuation of ib_insync — same API, new maintainers, TWS still required.

*https://stockmarketstack.com/tools/ib-async · Backtesting Frameworks & Algo Trading Libraries*

## Facts

### At a glance

| Field | Value |
| --- | --- |
| Vendor | ib-api-reloaded |
| Category | Backtesting Frameworks & Algo Trading Libraries |
| Job | live_trading |
| Website | https://github.com/ib-api-reloaded/ib_async |
| Pricing model | open-source |
| Free tier | true |
| Open source | true |
| Licence | BSD-2-Clause |
| Self-hosted | true |
| Tested hands-on | false |
| Last updated | 2026-09-14 |

### Coverage

| Field | Value |
| --- | --- |
| Asset classes | stocks, etf, options, futures, forex, crypto, bonds, indices, mutual_funds, commodities |
| Markets | global |
| Works outside the US | true |
| Data latency | none |
| Platforms | library |
| AI features | none |

### Interfaces

| Field | Value |
| --- | --- |
| API | false |
| Webhooks | false |
| Scripting | Python |
| Python | true |
| Spreadsheet add-in | false |
| MCP server | false |
| Export | none |

### Capabilities

Yes: scanning, automation, live_trading, paper_trading, portfolio_tracking, broker_import, news, options_analysis

No: charting, screening, backtesting, tax_reporting, alerts

*Verified: pricing 2026-09-14; capabilities 2026-09-14; coverage 2026-09-14.*

## What it is

ib_async is a Python library that speaks Interactive Brokers' TWS API protocol directly and hands
back typed objects — `Stock('AAPL', 'SMART', 'USD')`, `ib.reqHistoricalData(...)`,
`ib.placeOrder(...)`. The design is ib_insync's, unchanged: a linear synchronous style that works
in scripts and Jupyter, the same calls available as `...Async` coroutines for asyncio
applications, and an `IB` object that keeps positions, orders and account values in sync as events
arrive from the gateway.

It is a continuation, and the dates are worth stating precisely. ib_insync's author, Ewald de Wit,
died on Monday 11 March 2024. The notice is in that repository's own README, signed by Maritza and
Philippe de Wit, added by a commit titled "In memoriam" on 14 March 2024 — the last commit it ever
received, and the repository is now a public archive. Five days after it, on 19 March 2024,
ib_async 1.0.0 was published to PyPI under a new GitHub organisation, `ib-api-reloaded`, which
describes itself as an "Alternative Interactive Brokers API Client (unaffiliated)". The LICENSE
file carries both copyright lines — Ewald de Wit for 2019–2023, Matt Stancliff for 2024 — under
unchanged BSD 2-Clause terms.

Its current state, also by date: version 2.1.0 went to PyPI on 8 December 2025, and the default
branch `main` last moved two days before that. Work did not stop — the `next` branch carries
commits through 14 July 2026 — but none of it is released, and there is no `v2.1.0` tag or GitHub
release at all. The newest release on the repo is v2.0.1 from 22 June 2025. Install from PyPI
today and you get December's code.

## Pricing

Nothing is for sale — no pro build, no hosted tier, no commercial licence. The bills belong to
Interactive Brokers: an IBKR account with API access, plus a market-data subscription for any
real-time quote the library streams. Delayed quotes need no subscription and are one call away
with `ib.reqMarketDataType(3)`.

## Data & coverage

Whatever the account behind the gateway can see. The contract classes are `Stock`, `Option`,
`Future`, `ContFuture`, `Forex`, `Index`, `CFD`, `Commodity`, `Bond`, `FuturesOption`,
`MutualFund`, `Warrant`, `Crypto` and `Bag` combos — IB's instrument range rather than a curated
one. Past quotes and historical bars, the client exposes IB's scanner (`reqScannerData`), market
depth, historical ticks, fundamental data, news providers and historical news, Wall Street Horizon
event data, `calculateImpliedVolatility` and `calculateOptionPrice`, account summary, positions
and PnL streams. None of it is ib_async's data, and entitlements stay IB's question.

## Integrations

`pip install ib_async`, and the name is the project's own: PyPI lists the repository as
`ib-api-reloaded/ib_async` with Matt Stancliff as maintainer, and the README prints that same
line. The trap is next door — `ib_insync` is still installable, resolving to 0.9.86 from July
2023 and pointing at the archived repo. Nothing warns you.

Python 3.10 or newer and three dependencies: `aeventkit` (the organisation's fork of de Wit's
eventkit, renamed on PyPI, still imported as `eventkit`), `nest_asyncio` and `tzdata`. What it
connects to is a desktop application — TWS with API mode enabled, default port 7497, or IB
Gateway on 4001, with "Download open orders on connection" checked. `ib_async.ibcontroller` ships
`IBC` and `Watchdog` to launch that app with `tradingMode` set to `live` or `paper` and restart it
when it dies — the part everyone needs by week two. `FlexReport` pulls IB Flex statements by token
and query id for the account history the live API will not give you.

## Limitations

- **Useless without an IB account.** Not a licensing restriction — the code is free to read, fork
  and run — but it connects to nothing unless TWS or Gateway is running and logged in.
- **Not a REST client.** IB's Web API is a different product; this speaks the socket protocol to a
  Java desktop app that has to stay up through IB's daily restarts.
- **The protocol range is pinned in the source.** `MinClientVersion` is 157 and `MaxClientVersion`
  178, so the handshake advertises `v157..178` and anything older is dropped with "TWS/gateway
  version must be >= 972". Fields IB adds above 178 arrive when a maintainer raises the ceiling.
- **The client throttles itself** to `MaxRequests = 45` per second, and IB's own pacing rules sit
  behind that — historical-data requests in particular.
- **Nine months since the last release**, with the active work sitting unreleased on `next`.
- **Effectively one maintainer.** The organisation shows no public members, and commits on both
  branches are overwhelmingly from one account.
- **No backtester.** This is a connection, not a research stack.
- **Unaffiliated with Interactive Brokers.** When the API changes, you have an issue tracker.

## Alternatives

If what you want is the engine rather than the connection,
[NautilusTrader](https://stockmarketstack.com/tools/nautilus-trader) reaches IB through its own adapter and gives you a
backtester that runs the same strategy live, and [QuantRocket](https://stockmarketstack.com/tools/quantrocket) wires Zipline
and Moonshot to IB inside Docker. [backtrader](https://stockmarketstack.com/tools/backtrader) has an IB store too, but it
rests on IbPy, archived since January 2017. The rest of the shelf is in
[backtesting frameworks](https://stockmarketstack.com/categories/backtesting-frameworks).

## FAQ

### Is ib_async the same project as ib_insync?

It is its continuation, not a rename. ib_insync's author, Ewald de Wit, died in March 2024; the archived repository's last commit added a notice from his family. ib_async 1.0.0 was published five days later by a new GitHub organisation, keeping the code, the BSD 2-Clause licence and his copyright line.

### Can I still use ib_insync?

It still installs — 0.9.86, uploaded in July 2023 — and it still works against TWS. Nothing will be fixed in it, because the repository is a public archive. Anything new, including support for newer protocol fields, happens in ib_async.

### Do I need an Interactive Brokers account to use ib_async?

Yes. The library is free to read and run, but it connects to a locally running TWS or IB Gateway logged into an IBKR account. Without those credentials it has nothing to talk to, and real-time quotes additionally need market-data subscriptions bought from IB.

### Does ib_async need IB's own ibapi package?

No. It implements the TWS API binary protocol itself, and its only runtime dependencies are aeventkit, nest_asyncio and tzdata. pandas is optional and is imported only by the util.df and util.barplot helpers.

## Also worth comparing

- [Lumibot](https://stockmarketstack.com/tools/lumibot.md) — One strategy class for backtest and live, plus a built-in LLM agent runtime.
- [NautilusTrader](https://stockmarketstack.com/tools/nautilus-trader.md) — Rust core, Python API, one strategy that backtests and trades live unchanged.
- [StockSharp](https://stockmarketstack.com/tools/stocksharp.md) — C#/.NET algo stack with 384 connectors; source is published but no longer open source.
- [Backtesting.py](https://stockmarketstack.com/tools/backtesting-py.md) — A single-instrument Python backtester — one OHLC series, one strategy, no live trading.
- [Backtrader](https://stockmarketstack.com/tools/backtrader.md) — An event-driven Python backtester with 122 indicators, frozen since April 2023.
- [bt](https://stockmarketstack.com/tools/bt.md) — Python backtesting for allocation and rebalancing rules, not entries and exits.
