What SnapTrade Connects To
SnapTrade supports:- US Retirement Accounts: 401(k), 403(b), 457(b), IRA, Roth IRA, Roth 401(k), SEP IRA, SIMPLE IRA
- Canadian Retirement Accounts: TFSA, RRSP, RRIF, RESP, RDSP, LIRA, LRSP, LIF, RLSP, PRIF
- Taxable Brokerage Accounts: Individual, joint, margin, cash, non-registered accounts
- Cryptocurrency: Crypto exchange accounts
- 9,000+ Brokerages: Including major platforms like Fidelity, Schwab, Vanguard, Interactive Brokers, TD Ameritrade, Questrade, and more
Prerequisites
Create a SnapTrade Account
Sign up for a SnapTrade partner account:
- Visit https://snaptrade.com
- Request access to the Partner API
- Complete partner onboarding
Get API Credentials
From your SnapTrade partner dashboard:
- Navigate to API Settings
- Copy your Client ID
- Copy your Consumer Key (secret)
- Note: Each user will have their own
user_idanduser_secretgenerated at runtime
Configuration
Users provide their own SnapTrade credentials in the application:Unlike Plaid, SnapTrade credentials are stored per-user in Sure. Each family can configure their own SnapTrade connection with their own Client ID and Consumer Key.
Adding SnapTrade Credentials
Configure SnapTrade
- Find the SnapTrade section
- Click “Add SnapTrade Configuration”
- Enter your Client ID
- Enter your Consumer Key
- Optionally set a custom name
- Save
Credential Security
SnapTrade credentials are encrypted using ActiveRecord Encryption:Connecting a Brokerage Account
Open Connection Portal
- Navigate to Settings → Providers
- Find your SnapTrade connection
- Click “Connect Brokerage”
SnapTrade OAuth Flow
You’ll be redirected to SnapTrade’s connection portal:
- Search for your brokerage by name
- Enter your brokerage login credentials
- Complete any multi-factor authentication
- Grant read-only access to SnapTrade
Callback to Sure
After successful connection:
- You’re redirected back to Sure
- Automatic sync begins to fetch accounts
- You’ll see “Accounts need setup” notification
Account Type Mapping
SnapTrade automatically infers Sure account types based on brokerage account types:Data Syncing
What Gets Synced
Holdings & Positions:- Security symbols and names
- Quantity owned
- Current market value
- Cost basis (when available)
- Asset class and type
- Total account value
- Cash balance
- Buying power (for margin accounts)
- Multi-currency support
- Buy/sell transactions
- Dividends and interest
- Fees and commissions
- Corporate actions
- Historical activity
- Brokerage name and logo
- Account type and number
- Institution information
Sync Frequency
- Manual Sync: Click sync button on SnapTrade connection or individual accounts
- Automatic Sync: Configure scheduled syncs (daily, weekly, etc.)
- Post-Connection: Automatic sync triggers after linking new accounts
SnapTrade does not provide real-time webhooks like Plaid. Syncs are always initiated by Sure (manual or scheduled).
Activities Fetching
SnapTrade fetches investment activities (trades, dividends, etc.) asynchronously:Managing Connections
Viewing Connected Brokerages
To see all connected brokerages:- Go to Settings → Providers
- Click on your SnapTrade connection
- View the “Connections” tab
- All connected brokerages
- Accounts per brokerage
- Which accounts are linked to Sure
- Orphaned connections (not linked to any account)
Deleting a Brokerage Connection
To remove a specific brokerage without deleting the entire SnapTrade configuration:
Source: app/controllers/snaptrade_items_controller.rb:248
Orphaned Users
If you’ve registered multiple SnapTrade users with the same credentials, you may see “orphaned users” (users not currently active). To clean up:- View orphaned users in the Connections tab
- Click “Delete” on any orphaned user
- This removes the user and all their connections from SnapTrade API
Linking to Existing Accounts
If you already have manual investment accounts in Sure, you can link them to SnapTrade:From Account Page
- Navigate to the manual account you want to link
- Click “Link to Provider”
- Select “SnapTrade”
Choose SnapTrade Account
- You’ll see a list of unlinked SnapTrade accounts
- Select the matching brokerage account
- Confirm linking
Troubleshooting
”SnapTrade is not configured”
Cause: No SnapTrade credentials have been added. Solution: Go to Settings → Providers and add your Client ID and Consumer Key.”User not registered”
Cause: SnapTrade user registration failed. Solution:- Delete the existing SnapTrade configuration
- Re-add with correct credentials
- User will be automatically registered on save
Brokerage Connection Failed
Common causes:- Invalid brokerage credentials
- Multi-factor authentication not completed
- Brokerage temporarily down for maintenance
- Account locked or restricted
No Holdings Showing
Checklist:- Verify accounts are linked (not just connected)
- Trigger a manual sync
- Check if activities are still fetching (spinner indicator)
- Ensure brokerage supports holdings data
API Deletion Failed
Cause: Trying to delete a connection but credentials are missing or invalid. Solution:- Update SnapTrade credentials if they’ve changed
- Or manually delete via SnapTrade dashboard
Decryption Error
Cause: ActiveRecord Encryption keys have changed or are missing. Solution: Ensure these environment variables are set and match the original encryption keys:API Reference
Creating a SnapTrade Configuration
Importing Data
Connection Portal URL
Supported Account Types
Best Practices
- Per-User Credentials: Store SnapTrade credentials per family/user, not globally
- User Registration: Always ensure users are registered before attempting connections
- Account Mapping: Guide users through account setup; don’t auto-create accounts
- Sync Start Dates: Allow users to set historical sync dates to avoid importing years of data
- Activity Fetching: Show “syncing” state until all activities are imported
- Connection Management: Provide UI for users to view and manage all connections
- Orphan Cleanup: Periodically clean up orphaned users and connections
Comparison: SnapTrade vs Plaid Investments
| Feature | SnapTrade | Plaid Investments |
|---|---|---|
| Brokerages | 9,000+ | Limited |
| Retirement Accounts | ✅ Full support | ⚠️ Limited |
| Canadian Accounts | ✅ Extensive | ❌ None |
| Holdings | ✅ Detailed | ✅ Basic |
| Activities | ✅ Comprehensive | ⚠️ Limited |
| Real-time Updates | ❌ On-demand | ✅ Webhooks |
| Credential Storage | Per-user | Global API key |
| Cost | Per-user/connection | Per-item |
Additional Resources
SnapTrade Documentation
Official SnapTrade API documentation
SnapTrade Partner Portal
Sign up for partner access
Supported Brokerages
View all 9,000+ supported brokerages