Interactive Brokers charges no separate API subscription fee in 2026 — the API is free and you pay only commissions plus per-exchange market-data subscriptions ($1-15/month each, waived above commission thresholds) — verified on 2026-05-2512. The TWS API accepts a maximum of 50 messages per second from the client side; exceed it and TWS eventually closes the connection3. The trade-off for IBKR's unmatched multi-asset coverage is operational: the classic path runs through TWS or IB Gateway, and the rate model is pacing-based rather than a simple requests-per-minute number. Compare IBKR against the lighter-weight broker APIs in the Broker API Comparator.
TL;DR
- API cost: $0 — no API subscription fee. You pay commissions and market-data subscriptions only12.
- Market-data fees: $1-15/month per exchange subscription; waived when commissions hit set thresholds2.
- Default market-data lines: 100 concurrent lines (minimum 100)2.
- TWS API rate limit: 50 messages/second from client to TWS; over-limit eventually drops the connection3.
- Access paths: TWS API (socket via TWS/IB Gateway), Client Portal Web API (REST), and FIX.
- Funded account (~$500 minimum for most market-data subscriptions) required to subscribe to data2.
The cost model: commissions, not an API fee
IBKR does not bill for API access. The API is included with any account; what you pay for is:
| Cost item | Detail |
|---|---|
| API subscription fee | $0 — none1 |
| Commissions | Tiered per-share or fixed (IBKR Pro), or zero-commission US stocks (IBKR Lite) |
| Market-data subscriptions | $1-15/month per exchange; waived above commission thresholds2 |
| Market-data lines | 100 included (minimum 100 concurrent)2 |
Verified on 2026-05-2512. The defining feature is that real-time data is unbundled and per-exchange: to get real-time US equity NBBO you subscribe to the relevant US tapes; options, futures, and international each carry their own subscriptions. It is easy to accumulate $30-100+/month in data fees on a multi-asset stack, though IBKR waives those fees once monthly commissions cross the matching thresholds2. Forex and crypto require no separate market-data subscription2.
The rate limit is pacing, not requests-per-minute
IBKR's API throttling is fundamentally different from Alpaca's or Tradier's clean per-minute caps. The TWS API documentation states it plainly: the client may send up to 50 messages per second to TWS, and each ticker subscription or cancellation counts as one message3. Sustained breaches do not return a tidy 429 — TWS eventually closes the connection3. So a correct IBKR client paces outbound messages under 50/second rather than counting per minute.
Historical-data requests have their own additional pacing rules on top of the 50/second message ceiling; those are covered in detail in IBKR TWS API Rate Limits 2026.
Three ways to connect
IBKR exposes three distinct developer surfaces, and the choice shapes both effort and the rate model:
- TWS API (socket): the classic, most capable path. Requires TWS or IB Gateway running as a long-lived process, periodic re-authentication, and disconnect handling. The 50 messages/second limit applies here3.
- Client Portal Web API (REST): a more modern REST interface with OAuth and session management. No local gateway process, but its own session-keepalive complexity.
- FIX: for institutional-style order flow; overkill for most retail automation.
For most retail AI traders the practical choice is TWS API (via IB Gateway headless) for full capability or the Web API for a lighter REST footprint.
Where IBKR fits
- Multi-asset, international, or futures strategies: IBKR is the only retail broker with this coverage breadth, and the API is free. The TWS/Gateway operational tax is the price of that coverage.
- US-equities-only solo operator: Alpaca's stateless REST API and flat 200/min limit are simpler. See Alpaca vs Interactive Brokers API 2026.
- Cost-sensitive, occasional trader: the per-exchange data fees can be waived by commission volume, but a light trader may pay them; budget the data side explicitly.
Compare the auth complexity and rate models side by side in the Broker API Comparator below.
Verified figures
The zero API fee, the $1-15/month per-exchange data subscriptions with commission-threshold waivers, the 100 default market-data lines, the ~$500 funded-account requirement, and the 50 messages/second TWS API limit were verified on 2026-05-25. Exact commission schedules vary by account type and volume and are described rather than quoted as a single figure.
Connects to
- IBKR TWS API Rate Limits 2026: the deep pacing-rules guide.
- Alpaca vs Interactive Brokers API 2026: the head-to-head.
- Choosing a Broker API in 2026: the five-broker pillar.
- Broker API Comparator: side-by-side cost and rate models.
References
Footnotes
-
Interactive Brokers. "IBKR Trading API Solutions" (API included, no subscription fee). interactivebrokers.com, verified 2026-05-25. https://www.interactivebrokers.com/en/trading/ib-api.php ↩ ↩2 ↩3 ↩4
-
Interactive Brokers. "Market Data Subscriptions" (per-exchange $1-15/mo, commission-threshold waivers, 100 default lines, funded-account requirement). IBKR Campus, verified 2026-05-25. https://www.interactivebrokers.com/campus/ibkr-api-page/market-data-subscriptions/ ↩ ↩2 ↩3 ↩4 ↩5 ↩6 ↩7 ↩8 ↩9 ↩10
-
Interactive Brokers. "TWS API - Introduction" (TWS accepts up to fifty messages per second from the client side; over-limit closes the connection). interactivebrokers.github.io, verified 2026-05-25. https://interactivebrokers.github.io/tws-api/introduction.html ↩ ↩2 ↩3 ↩4 ↩5
Verified engine output
Show the recompute-verified inputs and outputs
| require_futures | 1 |
|---|---|
| require_options | 1 |
| require_crypto | 1 |
| filters › require options | true |
|---|---|
| filters › require futures | true |
| filters › require crypto | true |
| 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 | ~50 msg/sec per connection; 50 orders/sec burst |
| 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 | community |
| results › row 1 › broker › mcp note | Community CLI MCP; audit before production |
| 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 | 4 |
| results › row 1 › max score | 4 |
| 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 | 200 req/min (free), higher on paid tiers |
| 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 MCP V2, 61 actions, idempotent order submission |
| 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 | Options require Algo Trader Plus tier |
| results › row 2 › broker › notes › row 3 | Python/Go SDKs mature; rate-limit backoff documented |
| results › row 2 › score | 3 |
| results › row 2 › max score | 4 |
| results › row 2 › fits | false |
| results › row 2 › fail reasons › row 1 | Futures |
| results › row 3 › broker › id | schwab |
| results › row 3 › broker › name | Schwab |
| results › row 3 › broker › url | https://www.schwab.com/ |
| results › row 3 › broker › docs url | https://developer.schwab.com/ |
| results › row 3 › broker › auth | OAuth 2.0 (3-legged) |
| results › row 3 › broker › auth complexity | 4 |
| results › row 3 › broker › order types (9 items) | [...] |
| results › row 3 › broker › rate limits | 120 req/min per endpoint (published tier) |
| results › row 3 › broker › market data › row 1 | Real-time equities + options quotes |
| results › row 3 › broker › market data › row 2 | Historical bars (1m to daily) |
| results › row 3 › broker › market data › row 3 | No exchange depth via API |
| results › row 3 › broker › mcp | none |
| results › row 3 › broker › mcp note | No official or listed community MCP server |
| results › row 3 › broker › assets › stocks | true |
| results › row 3 › broker › assets › options | true |
| results › row 3 › broker › assets › futures | true |
| results › row 3 › broker › assets › crypto | false |
| results › row 3 › broker › assets › forex | true |
| results › row 3 › broker › assets › bonds | true |
| results › row 3 › broker › account minimum | 0 |
| results › row 3 › broker › commission | $0 equities, $0.65/contract options |
| results › row 3 › broker › good for | Established retail, post-TDA API migration |
| results › row 3 › broker › has free tier | true |
| results › row 3 › broker › notes › row 1 | API rebuilt after TD Ameritrade integration; still maturing |
| results › row 3 › broker › notes › row 2 | Requires individual developer registration and app review |
| results › row 3 › broker › notes › row 3 | Token refresh flow is finicky vs Alpaca/Tradier |
| results › row 3 › score | 3 |
| results › row 3 › max score | 4 |
| results › row 3 › fits | false |
| results › row 3 › fail reasons › row 1 | Crypto |
| 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 | OAuth 2.0 (unofficial endpoints) |
| results › row 4 › broker › auth complexity | 4 |
| 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 › order types › row 5 | gtc |
| results › row 4 › broker › order types › row 6 | ioc |
| results › row 4 › broker › rate limits | Not publicly documented; low throughput |
| 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 | none |
| results › row 4 › broker › mcp note | No MCP; unofficial SDKs only |
| 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 | Casual retail; not recommended for agents |
| results › row 4 › broker › has free tier | true |
| results › row 4 › broker › notes › row 1 | No officially supported public API in 2026 |
| results › row 4 › broker › notes › row 2 | Community SDKs break on auth changes without notice |
| results › row 4 › broker › notes › row 3 | Paper trading unavailable |
| results › row 4 › score | 3 |
| results › row 4 › max score | 4 |
| results › row 4 › fits | false |
| results › row 4 › fail reasons › row 1 | Futures |
| results › row 5 › broker › id | tradier |
| results › row 5 › broker › name | Tradier |
| results › row 5 › broker › url | https://tradier.com/ |
| results › row 5 › broker › docs url | https://developer.tradier.com/ |
| results › row 5 › broker › auth | OAuth 2.0 |
| results › row 5 › broker › auth complexity | 3 |
| results › row 5 › broker › order types (8 items) | [...] |
| results › row 5 › broker › rate limits | 120 req/min market data, 60 req/min trading |
| results › row 5 › broker › market data › row 1 | Real-time equities + options (streaming) |
| results › row 5 › broker › market data › row 2 | Historical OHLC back ~5 years |
| results › row 5 › broker › market data › row 3 | No Level-2 depth |
| results › row 5 › broker › mcp | community |
| results › row 5 › broker › mcp note | Community MCP; idempotency is a manual patch |
| 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 (PFOF), $0.35/contract options Pro |
| results › row 5 › broker › good for | Options-first retail, multi-leg strategies |
| results › row 5 › broker › has free tier | true |
| results › row 5 › broker › notes › row 1 | Free sandbox with delayed data |
| results › row 5 › broker › notes › row 2 | Strong options chain + multi-leg order API |
| results › row 5 › broker › notes › row 3 | US-only account eligibility |
| results › row 5 › score | 2 |
| results › row 5 › max score | 4 |
| results › row 5 › fits | false |
| results › row 5 › fail reasons › row 1 | Futures |
| results › row 5 › fail reasons › row 2 | Crypto |
| 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 | ~50 msg/sec per connection; 50 orders/sec burst |
| 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 | community |
| fitting brokers › row 1 › broker › mcp note | Community CLI MCP; audit before production |
| 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 | 4 |
| fitting brokers › row 1 › max score | 4 |
| fitting brokers › row 1 › fits | true |
Computed live at build time.
Frequently asked questions
- Does Interactive Brokers charge for API access?
- No. The IBKR API has no subscription fee. You pay only trading commissions and per-exchange market-data subscriptions ($1-15/month each), and those data fees are waived once monthly commissions cross set thresholds.
- What is the Interactive Brokers TWS API rate limit?
- The TWS API accepts a maximum of 50 messages per second from the client side. Each ticker subscription or cancellation counts as one message. Exceeding the limit eventually causes TWS to close the connection.
- How much do IBKR market-data subscriptions cost?
- Market-data subscriptions run $1-15/month per exchange. Clients receive 100 concurrent market-data lines by default. Forex and crypto require no separate market-data subscription.
- What are the ways to connect to the IBKR API?
- Three surfaces: the TWS API (socket, requires TWS or IB Gateway running), the Client Portal Web API (REST with OAuth), and FIX for institutional flow. The 50 messages/second limit applies to the TWS API path.