Import trades from Charles Schwab and thinkorswim
Schwab's automatic sync is not switched on yet. Export from thinkorswim desktop or from schwab.com instead, and VEXA reads all three formats.
Same on every platform
Updated
What this does
Brings your Schwab and thinkorswim trades into VEXA from a file. VEXA recognises three Schwab exports and works out which one you gave it.
Before you start
- Automatic sync shows a Coming soon banner. The connection is built but not switched on. File import is the route today, and it reaches further back than the API will when it does arrive.
- Even once the sync is live it will only reach 60 days, and its refresh token lasts a week. Schwab’s own limits, not VEXA’s. History older than that will always come from a file.
- Former TD Ameritrade customers: use your migrated Schwab credentials. The old TD exports are not a supported format.
- Schwab keeps roughly two years of history online.
Steps
Same on every platform
From thinkorswim desktop
- Open thinkorswim and log in.
- Go to the Monitor tab.
- Open Account Statement in the left sidebar.
- Filter to trade or order history rather than deposits and withdrawals.
- Set the date range. Last 12 months is a good default.
- Check that Symbol, Date/Time, Side, Quantity, Price and Net Amount are visible. Right-click the header row to add any that are missing.
- Export to file as CSV. The file is named like
AccountStatement_MMDDYYYY.csv. - Upload it to VEXA.
From schwab.com
- Sign in and go to Accounts > History & Statements > History.
- Select the brokerage account.
- Set the type filter to trades.
- Set the date range.
- Apply, then Export > Export to CSV.
- Upload it to VEXA.
Limits and gotchas
- Exporting only the cash activity section gives you zero trades. Exporting the whole account statement is fine, because VEXA takes what it needs and ignores the rest.
- Option symbols on very old exports may not map correctly. If an options trade looks wrong, re-export it from thinkorswim rather than schwab.com.
- The two sources are interchangeable for VEXA. Use whichever you find faster.
What you should see
A result panel naming a Schwab or thinkorswim format, with a count of imported trades. A statement export shows a large gap between rows processed and executions kept, because statements carry cash movements and summaries too. That is normal.
If it doesn’t work
- “No trades were found in this file.” You exported the cash activity only, or a date range with no trades in it.
- The API Sync tab shows a banner. That is the current state of the integration rather than an error. Use Manual Upload.
- Half your trades are missing. Check the date range on the export. thinkorswim defaults to a short window.
Related
Still stuck? Email support@vexatrade.ai.