How it works
Sure uses your SnapTrade Client ID from an OAuth app to create a per-family SnapTrade user and sync the accounts you authorize. Personal API keys are not supported because they do not use SnapTrade’s Register User flow. Sure supports two ways to authorize a brokerage connection, and the setup steps differ slightly between them.Device code flow
The device code flow (RFC 8628) requires only a Client ID. When you connect a brokerage, Sure displays a short code that you confirm on the SnapTrade website. No redirect URI registration is needed, so this works on any deployment including those that cannot expose a public callback URL.Authorization code flow (browser redirect)
The browser redirect flow requires a Client ID and a Client Secret, plus the redirect URIhttps://<your-host>/snaptrade_items/oauth_callback registered on your OAuth app. When you connect a brokerage, you are sent to SnapTrade in the same browser tab and redirected back after approval.
Sure prefers the browser redirect when both flows are available, because it is the shorter path for the user.
Both flows produce the same access and refresh tokens and result in the same ongoing sync behavior — holdings, activity, and token rotation all work identically after authorization.
Setting up SnapTrade
To connect your brokerage accounts:- Create an account at dashboard.snaptrade.com
- Create or open a SnapTrade OAuth app and copy its Client ID
- In Sure, go to Settings > Bank sync > SnapTrade
- Paste the credentials and click Save Configuration
- Click Connect Brokerage and complete the authorization flow
- After authorization, open the account setup screen and choose which discovered brokerage accounts to link
- Copy the Client Secret from your SnapTrade OAuth app and paste it into the Sure settings alongside the Client ID
- Register
https://<your-host>/snaptrade_items/oauth_callbackas a redirect URI on the OAuth app
Environment variables
Setting only
SNAPTRADE_OAUTH_CLIENT_ID enables the device code flow. Setting both variables enables the browser redirect flow as the default, with the device code flow available as a fallback where shown.
Managing connections
SnapTrade connections are managed per family inside Sure. After your first successful connection, Sure lets you:- Add another brokerage connection
- Review connected brokerages
- Remove a brokerage connection
- Delete unused or stale brokerage connections before adding more
Supported account types
Sure currently uses SnapTrade for:- Investment accounts
- Crypto accounts
Features
Brokerage syncing
- Brokerage aggregation: Connect supported brokerages through a single provider
- Holdings sync: Import securities positions and cash balances
- Activity sync: Import brokerage activity and trade history
- Multiple brokerages: Connect more than one brokerage under the same SnapTrade configuration
- Link existing accounts: Attach a discovered SnapTrade account to an existing Sure investment or crypto account
Account setup flow
After authorization, Sure separates discovered SnapTrade accounts into:- Linked accounts: Already attached to a Sure account
- Unlinked accounts: Ready to be linked or created in Sure
Background activity import
Fresh brokerage connections may take a little longer to finish importing activity history. Sure continues fetching account activity in the background after the initial connection when needed.Limitations
- Investment-focused: SnapTrade is not the right provider for checking, savings, or credit card syncing
- Connection caps: Free-tier SnapTrade accounts have limited brokerage connection slots
- Provider coverage: Only brokerages supported by SnapTrade can be connected
- Beta maturity: SnapTrade support in Sure is still marked beta in the app
- Activity timing: Activity availability depends on SnapTrade’s data timing and the connected brokerage
- Derivatives not imported: Options and other derivative instruments are filtered out and will not appear in holdings
Troubleshooting
Credentials save, but brokerage connection does not start
- Verify the Client ID was copied from the correct SnapTrade OAuth app
- If using the browser redirect flow, confirm the Client Secret is also set and the redirect URI is registered
- Re-open Settings > Bank sync > SnapTrade and save the credentials again
- Try the Connect Brokerage button again so Sure can re-register the SnapTrade user if needed
Holdings show as empty after connecting a brokerage
SnapTrade deprecated the/positions endpoint for apps registered after their 2026 cutoff. Sure now uses the /positions/all replacement endpoint, so holdings should import correctly for all new and existing connections. If you connected a brokerage before this fix and see no holdings, run a manual sync from the account card to refresh.
No accounts appear after connecting a brokerage
- Wait for the initial sync to finish and refresh the setup page
- Check whether the brokerage was connected successfully in Manage Connections
- Try running another sync from the SnapTrade account card in Sure
Hit the free-tier connection limit
- Open Manage Connections in Sure and delete old brokerage connections you no longer use
- Delete unused or stale brokerage connections first; the limit applies to brokerage connections, not registrations alone
- Upgrade your SnapTrade plan if you need more simultaneous brokerage connections