The Charles Schwab Trader API is live and open to individual (non-institutional) developers in 2026: you register on developer.schwab.com, request the Trader API - Individual product, and approval typically takes 1-3 business days, with a documented rate limit of 120 requests/minute per endpoint — verified on 2026-05-2512. The TD Ameritrade-to-Schwab migration is complete; the legacy TD Ameritrade API was shut down after market close on May 10, 2024, and all programmatic trading now routes through the Schwab Trader API3. There is no separate thinkorswim trading API — thinkScript runs inside the platform but is not a programmatic order interface3. Compare Schwab against the other broker APIs in the Broker API Comparator.

TL;DR

  • Status: the Schwab Trader API is production-live and available to individual developers12.
  • Approval: register on developer.schwab.com, request the Trader API - Individual product; approval is typically 1-3 business days2.
  • Rate limit: 120 requests/minute per endpoint; exceeding it returns HTTP 4292.
  • Migration: the TD Ameritrade API was permanently shut down after May 10, 2024; everything now goes through Schwab3.
  • thinkorswim: no standalone trading API. thinkScript is platform-only; automation uses the Schwab Trader API3.
  • Auth: OAuth 2.0 three-legged flow with a token-refresh lifecycle.

Is the API available to individuals?

Yes. Schwab publishes a Trader API - Individual product on its developer portal, distinct from the institutional offerings1. The path is: create a developer account using your Schwab credentials, register an app, request the Trader API - Individual product, accept the terms, and submit for review. Approval is a manual step that typically completes in 1-3 business days2. After approval you receive a client ID and secret for the OAuth flow.

The friction points are real but manageable: a three-legged OAuth 2.0 flow, a redirect-URI requirement, and a token-refresh lifecycle that is fussier than a copy-paste API key. This is the same auth model used by Tradier and other OAuth-based brokers, just with Schwab's app-review gate in front.

The documented rate limit

Property Value
Rate limit 120 requests/minute per endpoint
Over-limit response HTTP 429 (e.g. 429-001 general, 429-005 burst)
Recommended backoff pause and retry after the window resets
Auth OAuth 2.0 (three-legged)

Verified against the Schwab developer portal and corroborating documentation on 2026-05-2512. The 120/minute ceiling is per endpoint, and order operations (PUT/POST/DELETE) are throttled while GET requests for order status are not2. Build a 429-aware backoff in from the start.

The TD Ameritrade migration is done

The single biggest source of confusion is legacy TD Ameritrade integrations. That migration is complete: the TD Ameritrade API was permanently shut down after market close on May 10, 20243. TD Ameritrade accounts, the thinkorswim platform, and all services moved under Schwab. Any code still pointed at TD Ameritrade endpoints stopped working over a year ago and must be rebuilt on the Schwab Trader API.

There is no thinkorswim API

The other recurring question: "where is the thinkorswim API?" There isn't one. The thinkorswim platform remains fully operational under Schwab, and thinkScript still runs for studies and alerts — but thinkScript is not a programmatic order-placement interface3. Every automated trader on Schwab/thinkorswim in 2026 uses the Schwab Trader API for order placement; the platform itself does not expose a public trading API. See Charles Schwab thinkorswim API for Automated Trading 2026 for the full thinkorswim-branding answer.

Where Schwab fits

  • Established Schwab account holders: the natural choice — the Trader API gives programmatic access to an account you already hold, with deep multi-asset coverage (equities, options, futures, forex).
  • Starting fresh in 2026: the OAuth flow and app-review gate make Alpaca or IBKR faster to onboard if you do not already bank with Schwab.
  • Former TD Ameritrade developers: you must migrate; the old API is gone.

Compare the auth complexity and rate limits side by side in the Broker API Comparator below.

Verified figures

API availability, the individual-developer product, the ~1-3 business-day approval window, the 120/minute rate limit, the TD Ameritrade shutdown date, and the absence of a thinkorswim trading API were all verified on 2026-05-25. Where exact internal sub-limits (for example, per-burst thresholds) were not fully published, they are described rather than quoted.

Connects to

References

Footnotes

  1. Charles Schwab. "Developer Portal - Trader API - Individual product." developer.schwab.com, verified 2026-05-25. https://developer.schwab.com/ 2 3 4

  2. Charles Schwab Trader API documentation (rate limit 120 req/min per endpoint, 429 over-limit responses, individual-developer approval process). verified 2026-05-25. https://developer.schwab.com/products 2 3 4 5 6 7

  3. Schwab / TD Ameritrade migration: TD Ameritrade API shut down after market close 2024-05-10; thinkorswim has no standalone trading API; automation routes through the Schwab Trader API. verified 2026-05-25. https://developer.schwab.com/ 2 3 4 5 6

Verified engine output

Show the recompute-verified inputs and outputs
Brokers covering both options and futures
Inputs
require_futures1
require_options1
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

Is the Charles Schwab Trader API available to individuals in 2026?
Yes. Schwab publishes a Trader API - Individual product on developer.schwab.com. You register, request the product, accept the terms, and submit for review; approval typically takes 1-3 business days.
What is the Schwab Trader API rate limit?
120 requests per minute per endpoint. Exceeding it returns HTTP 429. Order operations (PUT/POST/DELETE) are throttled while GET requests for order status are not.
Is the TD Ameritrade API still available?
No. The TD Ameritrade API was permanently shut down after market close on May 10, 2024. The migration to Schwab is complete and all programmatic trading now routes through the Schwab Trader API.
Is there a thinkorswim API in 2026?
There is no standalone thinkorswim trading API. The platform and thinkScript remain operational, but thinkScript is not a programmatic order interface. Automation uses the Schwab Trader API.