Skip to main content
← All brokers
OAuth-directUS

Charles Schwab trading journal

Full Schwab support post-TDA migration — equities, options, futures.

About this integration

Schwab's API is the post-TD-Ameritrade consolidation of the old thinkorswim/TDA developer ecosystem. The OAuth flow is more involved than Alpaca's (one extra screen for institutional disclosure), but the data quality is excellent. Includes thinkorswim-platform trades.

Supported instruments

equitiesoptionsfutures

Access scope (read-only)

Read-only access to account balances, positions, transactions, and orders. The grant we request is `AccountAccess`, which does not authorize order placement, fund transfers, or account changes — Schwab refuses those regardless of what our code asks for.

We cannot place orders, transfer funds, or change account settings on this connection: the grant itself excludes them, so Charles Schwab refuses those calls regardless of what our code asks for.

Setup

  1. 1System → Brokers → Connect Schwab
  2. 2You're redirected to schwab.com to authorize the connection
  3. 3Sign in with your Schwab credentials (TFQ never sees your password)
  4. 4Approve the data-access disclosure on Schwab's page
  5. 5Last 90 days of trades sync within 90 seconds

Known limitations

  • !Schwab tokens expire every 7 days and require re-auth. We email you 24 hours before expiry; one-click re-authorization restores the connection.
  • !Institutional accounts (Schwab Advisor Services) use a different API not supported today — retail accounts only.

How to export your trades from Charles Schwab

Charles Schwab writes its trade history at Schwab.com → Accounts → History → Export. In TradeFlow Quantum that file imports with the Schwab (CSV export) preset.

  1. 1On Schwab.com go to Accounts → History → Export and save the CSV.
  2. 2In TradeFlow Quantum open System → Brokers → Upload CSV.
  3. 3Choose "Schwab (CSV export)" from the preset dropdown, then upload the file.

Columns we read from the Charles Schwab export

Ticker
Symbol
Direction
Action
Entry price
Price
Size
Quantity
Trade date
Date

Header matching is case-insensitive and ignores punctuation and spacing, so a renamed-but-recognisable header still resolves. A file needs a ticker, an entry price, a size and a date to import at all; direction and P&L are filled in when present.

  • The importer reads Action for the direction and pairs the fills FIFO into round trips; realized P&L is computed from the paired entry and exit.
  • Amount is NOT imported as P&L. It is a signed cash flow — positive on a buy, negative on a sell — so storing it as a result recorded a five-figure loss on every purchase. That mapping was removed on 2026-08-22.

How the Charles Schwab connection syncs

Token endpoint auth
HTTP Basic — the client id and secret go in the Authorization header, not the form body. This is the main per-broker difference from Alpaca and Tradier.
Access token lifetime
30 minutes.
Refresh token lifetime
7 days, rolling — a new one is issued on each refresh. A connection that goes a full 7 days without syncing needs a fresh authorization.
Account addressing
GET /trader/v1/accounts/accountNumbers first. Transactions are addressed by a privacy-preserving hashValue, never the raw account number.
Data endpoint
GET /trader/v1/accounts/{hashValue}/transactions with types=TRADE.
History window
Date-range based. Schwab caps a single request at 1 year; a first sync asks for the last 90 days.
Sign convention
Schwab signs the amount: positive is a buy, negative is a sell.

Charles Schwab import caveats

  • The live API sync currently normalizes only transferItems whose assetType is EQUITY. Option legs are not mapped by the API path yet — they need the option-symbol fields handled separately.
  • Multi-account Schwab customers sync the first account the API returns. Picking which account to sync is not in Settings yet.

Why use TradeFlow Quantum instead of Charles Schwab's built-in tools?

  • Cross-broker view. If you trade Charles Schwab plus any other broker, TFQ unifies the equity curve, P&L attribution, and mistake-checker across all of them.
  • Mistake-checker on YOUR data — surfaces patterns in your Charles Schwab history (time-of-day, setup type, emotional state) the broker won’t show you.
  • Long-term data ownership. Charles Schwab’s built-in analytics typically limit history to 90 days or 1 year. TFQ keeps every trade forever, exportable to CSV any time.

Connect Charles Schwab in 60 seconds

7-day free trial. Card required at signup. Connect Charles Schwab as your first broker on the dashboard.

Charles Schwab is a registered trademark of its respective owner. We’re not affiliated with Charles Schwab. Their site: www.schwab.com. Last verified: 2026-06.