The Schwab Developer API and Interactive Brokers are the two multi-asset broker APIs a retail AI trader chooses between for options and futures, and they differ sharply on shape: Schwab is a self-serve OAuth-2.0 REST API with a documented 120 requests/minute per-endpoint limit and a 1-to-3-business-day app-review gate, while IBKR charges no API fee but runs a pacing-based model (50 messages/second from the client) through a long-lived TWS or IB Gateway process, both verified 2026-05-25. Schwab wins on REST simplicity and a clean per-minute limit; IBKR wins on unmatched multi-asset and international breadth at a zero API fee. Both clear the multi-asset bar in the Broker API Comparator.

TL;DR

Dimension Schwab Developer API Interactive Brokers
API style OAuth 2.0 REST TWS API (socket) + Client Portal Web API (REST) + FIX
Rate model 120 requests/minute per endpoint 50 messages/second (client to TWS), pacing-based
API fee free with brokerage account $0 (commissions + per-exchange data fees only)
Onboarding self-serve portal, 1-3 business-day review account + gateway setup
Auth complexity OAuth 2.0 three-legged TWS session / gateway lifecycle
Asset breadth equities, options, futures broadest retail multi-asset + international

Schwab and IBKR figures verified 2026-05-25 against each vendor's official documentation. The comparator-fit block at the foot is computed live from the shipped engine bundle.

Two rate models, two mental models

This is the defining difference. Schwab publishes a clean per-minute ceiling: 120 requests/minute per endpoint, with HTTP 429 on exceed (verified 2026-05-25). You design a per-minute budget and a 429-aware backoff, the same way you would for Alpaca or Tradier.

IBKR's TWS API is pacing-based: the client may send up to 50 messages/second to TWS, and each ticker subscription or cancellation counts as a message (verified 2026-05-25). A sustained breach does not return a tidy 429; TWS eventually closes the connection. So an IBKR client paces outbound messages under 50/second rather than counting per minute, and historical-data requests carry their own additional pacing rules on top.

For an LLM agent, Schwab's model is easier to reason about (a number per minute); IBKR's requires message-level pacing and disconnect handling.

Cost: free with an account, two different ways

Both are effectively free to use, but the cost surface differs. Schwab includes API access with a brokerage account at no separate fee; you register on the developer portal, request the Trader API - Individual product, and wait for approval (verified 2026-05-25).

IBKR charges no API subscription fee either, but real-time data is unbundled and per-exchange: $1-15/month per exchange subscription, waived once monthly commissions cross set thresholds (verified 2026-05-25). A multi-asset IBKR stack can accumulate $30-100+/month in data fees before waivers. Schwab's data comes with the account; IBKR's is à la carte unless your commission volume waives it.

Onboarding and access path

Schwab is self-serve with a review gate: create a developer account, register an app, request the Trader API - Individual product, accept terms, and submit, with approval typically taking 1 to 3 business days (verified 2026-05-25). After approval you get a client ID and secret for the OAuth flow.

IBKR has no app-review queue, but the operational setup is heavier: the classic TWS API path needs TWS or IB Gateway running as a long-lived process with periodic re-authentication and disconnect handling. The Client Portal Web API offers a more modern REST + OAuth surface without a local gateway, at the cost of its own session-keepalive complexity.

Asset coverage

Both clear options and futures, which is why both pass the multi-asset profile in the comparator below. IBKR's edge is breadth: it is the only retail broker with this depth of international and multi-asset coverage (verified 2026-05-25). If a strategy needs non-US instruments, futures across many venues, or bonds, IBKR is frequently the only retail option. For US equities, options, and US futures, Schwab covers the common ground with a far simpler REST surface.

How to choose

  • US equities/options/futures with a simple REST surface: Schwab Developer API (120/min, OAuth REST, data with the account).
  • International, broad multi-asset, or futures across many venues: IBKR (broadest coverage, $0 API fee).
  • Want a clean per-minute rate limit to design against: Schwab.
  • Cost-sensitive and high commission volume (data fees waived): IBKR.
  • Avoid running a long-lived gateway process: Schwab REST, or IBKR's Client Portal Web API.

The decision reduces to "do I need IBKR's breadth and accept its pacing-and-gateway tax, or is Schwab's REST simplicity and US-multi-asset coverage enough."

Connects to

References

  • Charles Schwab. "Developer Portal - Trader API - Individual product; rate limit 120 req/min per endpoint, OAuth 2.0, 1-3 business-day approval." verified 2026-05-25. https://developer.schwab.com/
  • Interactive Brokers. "TWS API documentation; 50 messages/second client-to-TWS pacing, no separate API fee, per-exchange market-data subscriptions $1-15/mo with commission-threshold waivers." verified 2026-05-25. https://www.interactivebrokers.com/en/trading/ib-api.php

Verified engine output

Show the recompute-verified inputs and outputs
Multi-asset agent: options + futures required, auth complexity <= 5
Inputs
require_optionstrue
require_futurestrue
require_cryptofalse
require_mcpfalse
require_free_tierfalse
max_auth_complexity5
Result
filters › require optionstrue
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 › score3
results › row 1 › max score3
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 › score3
results › row 2 › max score3
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 › score2
results › row 3 › max score3
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 › score2
results › row 4 › max score3
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 › score2
results › row 5 › max score3
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 › score3
fitting brokers › row 1 › max score3
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 › score3
fitting brokers › row 2 › max score3
fitting brokers › row 2 › fitstrue

Computed live at build time.

Frequently asked questions

Schwab Developer API vs IBKR: which has the simpler rate model?
Schwab. It publishes a clean 120 requests/minute per-endpoint limit with HTTP 429 on exceed. IBKR uses a pacing-based model (50 messages/second from client to TWS) where a sustained breach drops the connection rather than returning 429 (verified 2026-05-25).
Is the Schwab or IBKR API free?
Both charge no API subscription fee. Schwab includes API access with a brokerage account; IBKR charges only commissions plus per-exchange market-data subscriptions ($1-15/month each, waived above commission thresholds) (verified 2026-05-25).
Which has broader asset coverage, Schwab or IBKR?
IBKR. It is the only retail broker with this depth of international and multi-asset coverage. Schwab covers US equities, options, and futures with a simpler REST surface (verified 2026-05-25).
How long does Schwab API approval take?
Typically 1 to 3 business days after you register an app and request the Trader API - Individual product on the Schwab Developer Portal (verified 2026-05-25).