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
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
- 1System → Brokers → Connect Schwab
- 2You're redirected to schwab.com to authorize the connection
- 3Sign in with your Schwab credentials (TFQ never sees your password)
- 4Approve the data-access disclosure on Schwab's page
- 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.
- 1On Schwab.com go to Accounts → History → Export and save the CSV.
- 2In TradeFlow Quantum open System → Brokers → Upload CSV.
- 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.
Other brokers
Browse all supported brokers →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.