Article
Schwab Trader API for Technical Traders: Workflow Fit Checklist
Evaluate whether the Schwab Trader API fits your technical trading workflow using instrument coverage, authentication requirements, data access, and a pre-build checklist.
The Schwab Trader API is the successor to the TD Ameritrade Developer API. It gives developers programmatic access to Schwab account data, market data, and order submission for US markets via a REST interface with OAuth 2.0 authentication. This guide covers what it supports, who it fits, and what to resolve before you build. Planning support only — no trading advice; no broker or data guarantee.
What is the Schwab Trader API?
The Schwab Trader API is Schwab's REST API for programmatic access to market data, account data, and order routing. It replaced the TD Ameritrade Developer API after Schwab's acquisition of TD Ameritrade — the TDA API is now fully retired.
If you built on the TDA API, Schwab Trader API is the migration target. The underlying patterns are similar — REST endpoints, JSON responses, OAuth 2.0 — but endpoint paths and some behaviors changed. The current specification lives at developer.schwab.com.
For a broader comparison of broker APIs for technical trading workflows, see IBKR vs Alpaca vs Tradier for Technical Traders: API Stack Fit Checklist. For a detailed breakdown of what Schwab Trader API costs relative to IBKR data subscriptions and Alpaca's data tiers, see Schwab Trader API Cost vs IBKR and Alpaca: What Retail Technical Traders Actually Pay.
What instruments and order types does the Schwab API support?
The Schwab Trader API supports trading US equities, ETFs, options (including multi-leg strategies: vertical spreads, straddles, butterflies), and index options. Futures, forex, crypto, bonds, and non-US equities cannot be traded via the API — a futures order returns HTTP 400. Limited, undocumented streaming quote data exists for some futures instruments, but there is no futures order routing and no futures historical bar data.
Supported order types: market, limit, stop, stop-limit, trailing stop, OCO (one-cancels-other), OTO (one-triggers-other), and composite (one-triggers-OCO). Multi-leg options combinations with OCO/OTO are flagged as experimental in the developer community — validate with a live broker connection before building production logic around them.
Options symbols use the OSI 21-character format, for example: AAPL 240419C00150000. Confirm your symbol format handling before writing data pipeline code.
| Instrument | Trading via API | Streaming Quotes | Historical Bars |
|---|---|---|---|
| US equities | Yes | Yes (L1 + L2) | Yes |
| ETFs | Yes | Yes (L1 + L2) | Yes |
| Options (incl. multi-leg) | Yes | Yes | No |
| Index options | Yes | Yes | No |
| Futures | No — HTTP 400 | Limited/undocumented | No |
| Forex / Crypto | No | No | No |
| Non-US equities | No | No | No |
How does Schwab Trader API authentication work?
Authentication uses a three-legged OAuth 2.0 flow. Your app redirects the user to a Schwab authorization page, the user grants access, and your app exchanges the authorization code for tokens.
Access tokens last approximately 30 minutes. Refresh tokens last approximately 7 days. An unused refresh token will expire and require a new user-facing authorization step. Any workflow that runs unattended across a weekend needs active token refresh logic built in.
Register your application and retrieve your client ID, client secret, and redirect URI at developer.schwab.com. Keep credentials out of version control.
Does the Schwab API have a sandbox?
Yes. A sandbox environment with synthetic accounts and data is available. It uses the same credentials as production but connects to a different base URL.
The sandbox is a synthetic-data testing environment, not a paper trading account. There is no paper trading mode in the Schwab Trader API — the API connects to live accounts only. Use the sandbox to validate authentication, token refresh logic, and data shapes before connecting to a live account.
What does WebSocket streaming cover?
The API supports WebSocket streaming for real-time data. Streaming covers Level 1 and Level 2 (NYSE/NASDAQ) quotes for equities and ETFs, options quotes, and time-of-sale. Some undocumented futures quote streaming exists but is not part of the official API surface.
For rate limits and extended-hours quote coverage, check the current Schwab developer documentation at developer.schwab.com.
Who fits the Schwab Trader API?
The Schwab Trader API fits technical traders and developers who trade US equities, ETFs, and options on Schwab accounts. It is a natural migration path from the TD Ameritrade Developer API.
| Good fit | Not a fit |
|---|---|
| US equities, ETFs, options on Schwab | Multi-asset traders needing futures, forex, or non-US markets |
| TD Ameritrade API migrators | Workflows requiring paper trading mode |
| Standard REST/OAuth with sandbox | Futures order routing required |
| Retail account, US market focus | Institutional or global-exchange requirements |
Before you build: checklist
Run this before writing integration code.
- Register your application at developer.schwab.com. Collect client ID, client secret, and redirect URI.
- Confirm your account type is API-eligible — check the current Schwab developer documentation for eligible account types.
- Test authentication end-to-end in the sandbox. Confirm token refresh works at the 30-minute boundary before connecting to a live account.
- Map every instrument to Schwab's symbol format. Options use the OSI 21-character format — confirm your parser handles it correctly.
- Verify which instruments you need against the trading scope above. Futures order routing is not available.
- Scope historical bar needs: equities and ETFs only, at daily, 1-minute, 5-minute, 10-minute, 15-minute, and 30-minute intervals. One-minute history is approximately 30 to 35 days deep.
- For transaction history depth and split/dividend adjustment details, check the current Schwab developer documentation before building dependent logic.
- For IBKR alternatives or a broader API stack comparison, see IBKR vs Alpaca vs Tradier for Technical Traders: API Stack Fit Checklist.
- For consulting support scoping a Schwab workflow build, see workflow consulting.
FAQ
Is the Schwab Trader API the same as the TD Ameritrade Developer API?
No. The Schwab Trader API is the successor. The TDA API is now fully retired. Authentication and endpoint paths differ; existing TDA integrations need migration. The current specification is at developer.schwab.com.
Does the Schwab API support paper trading?
No. The Schwab Trader API connects to live accounts only. The sandbox is a synthetic-data testing environment for validating authentication, token logic, and data shapes — it is not a paper trading account.
What instruments can I trade via the Schwab Trader API?
US equities, ETFs, options including multi-leg strategies, and index options. Futures, forex, crypto, bonds, and non-US equities cannot be traded. A futures order returns HTTP 400. Some undocumented futures streaming quote data exists but there is no order routing or historical bar access for futures.
How does the Schwab API compare to IBKR for technical trading?
Schwab covers US equities, ETFs, and options with a simpler OAuth 2.0 setup and sandbox. IBKR covers a broader instrument universe globally including futures. For a detailed comparison, see IBKR vs Schwab Trader API for Technical Traders.
Sample Structured Chart-Data Exports
Review how chart drawings, annotations, OHLC, volume, and execution context become reusable structured data.
- Download XLSX Sample
Spreadsheet-ready chart data for review, journaling, and process refinement.
- Download JSON Sample
Machine-readable chart context for Claude Code, ChatGPT Codex, automation-ready workflows, and technical review.
Related Articles
- TradingView vs TrendSpider vs MyLinedChart: Structured Chart Exports for Real Trading Processes
A systems-first comparison of TradingView, TrendSpider, and MyLinedChart for traders building executable feedback loops.
- IBKR vs Schwab Trader API for Technical Traders
Compare IBKR and Schwab Trader API across instrument coverage, API design, data access, order types, and workflow fit for discretionary and systematic technical traders.
- Schwab Trader API Cost vs IBKR and Alpaca: What Retail Technical Traders Actually Pay
Schwab Trader API is free to use with a Schwab account. IBKR's API is also free but market data subscriptions add monthly cost. Alpaca has a free data tier and a paid SIP tier. Here is what each broker's API actually costs for retail technical traders.
- Use IBKR for Execution, Not Always for Historical Research Data
IBKR can be a strong execution broker, but traders should decide separately whether it should also be the source for historical research data.
- The Challenge Pass Loop: A 30-Day System for First-Attempt Pass Probability
A 30-day operating loop for Topstep-style and SMB-style evaluations that improves rule compliance and first-attempt pass probability.
More Video Guides
- Export Chart Data With Notes for Real Trade Journals
Build review-ready journals by exporting annotated context, not only prices.
- How to Turn Chart Drawings Into Automation-Ready Data
A practical framework for moving from visual chart notes to machine-readable process inputs.
- TradingView to MyLinedChart Transition Guide
A practical migration approach for teams that want reusable drawing exports by default.

