Thinkorswim API: What Is Available Today
There is no thinkorswim API. Here is what actually exists: the Schwab Trader API, what it covers, and the seven-day token problem that breaks unattended automation.
Marketing
Traders searching for a thinkorswim API are usually looking for one thing: a way to route orders programmatically out of thinkorswim and into an automated system. That path does not exist within the platform. Schwab's thinkorswim documentation describes no external API, no webhook output, and no mechanism for sending signals to a third-party service.
What does exist is the Schwab Trader API, a separate developer product that Schwab built after acquiring TD Ameritrade. It covers equities and options, requires its own registration process, and comes with a structural constraint that breaks fully unattended automation: the refresh token expires after seven days.
This article walks through what happened to the TD Ameritrade API, what thinkorswim actually offers internally, what the Schwab Trader API covers, and what the seven-day token problem means for anyone trying to build automation on top of it.
The TD Ameritrade API Is Gone
Registration closed permanently
The TD Ameritrade developer portal has permanently disabled new user registration.1 At the same time, the ability to create, modify, or delete applications from the TDA Developer Portal was also disabled.1 Existing legacy TDA API applications were not automatically migrated to the Schwab Trader API; developers had to re-register separately and integrate against entirely new endpoints.2
What the migration meant in practice
TD Ameritrade was acquired by Charles Schwab, and the API was brought into Schwab's ecosystem as a new product offering for retail self-directed traders.2 Legacy TDA API endpoints remained available only until all account transition groups completed migration.2 Any automation built on TDA endpoints required integration work against the new Schwab endpoints, not a simple token swap. The differences extended to authentication flows, resource URL changes, and a new account number encryption feature.2
Thinkorswim Has No External API
What thinkorswim actually offers
Schwab documents three internal tools that can respond to market conditions: an Alerts system, thinkScript, and conditional orders. The Alerts tab lets you monitor market conditions and receive notifications when those conditions are met, with delivery options including sound, email, SMS, and mobile push notification.3 thinkScript is a built-in programming language for creating studies, strategies, watchlist columns, and scan queries inside the platform.4 Conditional orders allow thinkScript-based conditions to trigger order placement or cancellation within thinkorswim itself.4
The closed loop problem
Every one of these tools operates entirely within thinkorswim. Alert notifications go to email, SMS, sound, or mobile push; there is no webhook or outbound HTTP delivery option documented in the platform.3 thinkScript strategies add simulated orders to charts for backtesting but have no mechanism to send signals to an external service.4 Conditional orders execute within thinkorswim's own order entry system and cannot route to a third-party automation platform.4 Nothing comes out.
The Schwab Trader API Explained
What the API actually is
The Schwab Trader API is a RESTful and streaming API product that allows developers to access Schwab products and services for self-directed brokerage accounts.2 It is a separate product from thinkorswim and requires a Schwab retail self-directed brokerage account for authentication.2 Supported capabilities include token-based authentication, snapshot and historical market data, real-time account and transaction data, and order placement for stocks, options, and ETFs.2
Individual versus Commercial access
Schwab offers two tiers. Individual use is for developers building applications to authenticate into their own accounts, for purposes such as backtesting. Commercial use is for developers distributing applications, free or paid, to other self-directed brokerage account holders.2 Both tiers share the same non-order throttle of 120 requests per minute at the application level; order throttles are configured per account during application registration.2
How to request access
The registration process has two distinct approval steps. First, a developer creates a Developer account through the Schwab Developer Portal, which enters a pending review status before approval. Once that account is approved, the developer selects either Trader API - Individual or Trader API - Commercial and submits a separate access request, which also goes through a pending review. After that second approval, the developer can register an application and begin integration.2
What the Schwab API Covers and What It Does Not
Supported asset classes
Order placement through the Schwab Trader API is limited to stocks, options, and ETFs. Futures, futures options, and forex order entry are explicitly excluded.2 If your strategy trades ES futures, NQ futures, or any forex pair, the Schwab Trader API cannot place those orders regardless of which access tier you hold.
Streaming and market data
The API includes a WebSocket-based streaming interface covering quote subscriptions and account activity subscriptions.2 Both snapshot and historical market data are available alongside real-time account and transaction monitoring.2 These capabilities carried over from the TDA offering and remain largely consistent.
What did not carry over from TDA
Saved Orders and Watchlist endpoints were not available at launch of the Schwab Trader API.2 No legacy TDA external applications were automatically migrated; new registration and integration work were required for every application.2 The endpoint URLs changed, the authentication flow was updated, and account numbers are now encrypted differently.2
The Seven-Day Token Problem
How the refresh token model works
The Schwab Trader API uses an updated token-based authentication flow designed for security.2 The Schwab Trader API documentation archived in 2024 describes a refresh token model that expires after seven days.5 Once that refresh token expires, the application cannot obtain new access tokens without a manual sign-in by the account holder.
What this means for unattended automation
Any fully automated system built on the Individual tier requires a manual authentication step roughly once a week to keep the token alive. A strategy running without human intervention will fail after seven days when the refresh token expires, unless the developer builds a re-authentication workflow that includes explicit user interaction. This is a structural constraint of the Individual tier authentication flow and not a misconfiguration. It is inherent to the token lifecycle as documented.5 Plan for it from day one, not after the first silent failure.
Third-Party Platforms and the Commercial Tier
When Commercial access is required
A third-party platform connecting on behalf of multiple users falls under the Commercial use definition: an application distributed for free or for a fee for other self-directed brokerage accounts to use.2 Commercial applications must register separately through the Schwab Developer Portal under the Trader API - Commercial product and go through the same two-step approval process. TradersPost does not currently connect to Schwab. Traders who want to automate TradingView alerts into a Schwab account do not have a supported path through TradersPost at this time.
Alternatives for Schwab account holders
Traders who hold a Schwab brokerage account and want automation today have a narrow path: build a custom application under the Individual tier and manage the seven-day token renewal themselves. That requires working knowledge of OAuth flows and REST APIs, and it caps order placement at equities and options only. Brokers that automation platforms already connect to, for stocks, options, futures, and crypto, include TradeStation, Alpaca, Tradier, Interactive Brokers, tastytrade, Webull, and Tradovate, among others. If Schwab is not a hard requirement, there are supported paths available without custom development.
What This Means for Automated Traders
Realistic automation with the Schwab API
Developers comfortable with OAuth flows and REST APIs can build working automation for equities and options using the Schwab Trader API under the Individual tier. The seven-day refresh token expiration is a hard operational constraint that must be designed around from the start. Futures and forex traders cannot use the Schwab Trader API for order entry regardless of tier.2 Understanding that before starting integration saves a significant amount of rework later.
Summary: expectation versus reality
Traders searching for a thinkorswim API are looking for a way to route orders programmatically out of thinkorswim. That path does not exist within the platform. The Schwab Trader API is the closest equivalent, but it is a standalone developer product with its own access requirements, asset class limits, and token management overhead. thinkorswim's internal tools, alerts, thinkScript, and conditional orders, all operate in a closed loop with no external output.34
Bottom Line
- Schwab documents no external API for thinkorswim. Its alerts, thinkScript strategies, and conditional orders operate entirely within the platform with no webhook or HTTP output.
- The TD Ameritrade API is closed to new users and was not automatically migrated; the Schwab Trader API is the replacement, requiring its own registration and integration work.
- The Schwab Trader API supports stocks, options, and ETFs only. Futures, futures options, and forex order entry are explicitly excluded.
- The refresh token expires after seven days, requiring a manual sign-in to restore access. Fully unattended automation must account for this from the start.
- Third-party platforms connecting on behalf of multiple Schwab users need the Commercial tier. No major automation platform currently supports Schwab as a connected broker.
Frequently Asked Questions
Does thinkorswim have an API?
No. Schwab's documentation describes no API that sends thinkorswim data or orders to external services. Its tools, including thinkScript, alerts, and conditional orders, operate entirely within the platform.34 The closest external option is the Schwab Trader API, which is a separate product requiring its own developer registration and is not accessible from within thinkorswim.
What happened to the TD Ameritrade API?
New user registration for the TD Ameritrade API was disabled as part of the Charles Schwab acquisition.1 Existing TDA applications were not migrated automatically; developers had to re-register through the Schwab Developer Portal and integrate against new endpoints.2 The legacy TD Ameritrade endpoints remained live only through the account transition period.2
Can the Schwab Trader API trade futures?
No. The Schwab Trader API explicitly excludes futures, futures options, and forex order entry.2 Order placement through the API is limited to stocks, options, and ETFs.
Why does the Schwab API require re-authentication every seven days?
The Schwab Trader API uses a refresh token model documented in 2024 that expires after seven days.5 After expiration, obtaining new access tokens requires a manual sign-in by the account holder. This is a design constraint of the Individual tier authentication flow, not a bug or misconfiguration.
Can I use TradingView alerts to automate trades in a Schwab account?
There is no direct webhook path from TradingView into a Schwab brokerage account through thinkorswim. A developer could build a custom application using the Schwab Trader API Individual tier to receive external signals and place orders, but this requires custom development and manual token renewal roughly every seven days. No major automation platform that connects TradingView alerts to live order routing currently includes Schwab as a supported broker.
References
1 TD Ameritrade Developer Portal (archived May 2024)
2 Trader API Schwab Integration Guide - June 2023 Update (archived June 2024)
3 thinkorswim Alerts - thinkManual
4 thinkScript Reference - thinkorswim Learning Center
5 Schwab Trader API Documentation (archived April 2024)