Investment account connectivity
The single API to place investments across brokerages
Embed one script. Your users link their brokerage accounts in a secure connect flow. You read accounts and holdings through a REST API, and place trades when trading launches.
Free sandbox. No card required. Live institutions are in beta.
How it works
- 1
Embed the script
Add one script tag and open the connect flow with a link token your backend created. The flow runs in an iframe served by PLACD, so credentials never touch your page.
<script src="https://<your placd host>/embed/placd.js"></script> <script> // 1. Your backend calls POST /api/v1/link/token with your API key, // the end user's id, and origin: window.location.origin of this page // (one of your allowed origins), and returns the linkToken here. const handler = window.Placd.create({ token: linkToken, onSuccess({ connectionId, institutionId }) { // 2. Store connectionId; read accounts and holdings from /api/v1. }, onExit({ reason, error }) { // reason is 'user', 'expired', or 'error' (with error.code/message). }, onEvent({ name, connectionId }) { // Optional step-by-step progress for analytics. }, }) handler.open() </script> - 2
Your user links an account
They pick an institution, sign in, answer the MFA challenge we relay, and choose which accounts to share. A closed tab resumes where it left off; you get one success message with a connection id.
- Institution picker with your preselected choice honored
- MFA relayed live from the institution
- Account selection persisted before you see anything
- 3
Read holdings via the API
Use the connection id against
/api/v1with your API key. Every response is JSON described by the OpenAPI reference.curl https://<your placd host>/api/v1/connections/$CONNECTION_ID/accounts \ -H "Authorization: Bearer $PLACD_API_KEY"{ "accounts": [ { "id": "3f1c…", "name": "Brokerage", "type": "brokerage", "mask": "4821", "currency": "USD", "balance": 18420.55, "asOf": "2026-09-24T14:02:11Z" } ] }
Supported institutions
One connector contract for every institution, whether it has an API or needs a browser, and a local simulator for each so your integration tests never touch a real bank.
Vanguard
BetaA browser connector signs in on behalf of the user and relays their MFA challenge through the connect flow.
Sandbox brokerage
SandboxScripted accounts, holdings, MFA, and failure modes for integration tests. Available on every plan.
More on the way
ComingEvery institution gets the same connector contract and the same local simulator. Tell us which ones you need first.
Built for other people’s credentials
Envelope encryption at rest
Every credential and session is sealed with its own AES-256-GCM data key, wrapped by a master key held in a KMS. Rotating the master key never touches a payload.
Never logged
Passwords, MFA codes, cookies, and tokens are redacted before a log line is written, and the test suite fails if a seeded secret ever appears in the logs.
Isolated browser sessions
Institutions without an API are driven by a browser that runs in our worker, one session per connection, far from your page and your users’ devices.
Structured audit events
Every state change on a connection is recorded as a typed event, so the full timeline is visible in your dashboard and reconstructable from the record.
Start in the sandbox today
Create an account, mint a sandbox key, and link the sandbox brokerage from the demo app in a few minutes.