Plaid Investments
Read-only holdings, cost basis and investment transactions from 3,200 brokerages.
by Plaid
Last updated
What it is
Plaid Investments is three endpoints bolted onto the same Link flow everyone knows from bank
connections. /investments/holdings/get returns positions plus the securities they reference,
/investments/transactions/get up to 24 months of trades, dividends and fees, and
/investments/refresh — an add-on you have to request — forces an update out of cycle. You get
rows; the portfolio view is yours to build.
It is read-only. No endpoint in Plaid's API places an order, and the products enum contains nothing that would. The one adjacent product, Investments Move, returns the account number, DTC code and holdings a receiving broker needs to file an ACATS transfer — moving an account rather than trading inside one, and only at 66 institutions.
Pricing
Quote-only. The pricing page lists Pay as You Go, Growth and Custom and marks Investments "Included" on all three with no figure anywhere; the billing docs say plainly that a price list is not available and that rates appear on the last page of the Production access application.
The billing shape is published, and it matters more than the missing number. Investments is a
subscription — a monthly fee per Item for as long as a valid access_token exists. It is not
pro-rated, it is charged even when the Item is in an error state and no call succeeds, and the
only way to stop it is /item/remove. There are two subscriptions, Holdings and Transactions, and
calling /investments/transactions/get silently adds both. Sandbox is always free; Trial plans,
for new US and Canada teams created on or after 15 April 2026, allow 10 Production Items against
real data, and removing an Item does not give the slot back.
Data & coverage
Investments is not the headline coverage number. Plaid's own US/Canada coverage file, generated 12 August 2026, lists 10,199 institutions, of which 3,213 flag investments — 3,198 US and 15 Canadian.
Holdings carry quantity, institution_price, institution_value, a nullable total cost_basis,
vested_quantity for equity comp, and a tax_lots array with per-lot purchase price, date and
long/short position, empty when the institution supplies no lots. Securities carry name, ticker,
type and subtype across equity, ETF, mutual fund, fixed income, derivative, cryptocurrency and
cash, plus sector, industry, MIC, CFI and FIGI. Options arrive as an option_contract object with
contract type, strike, expiry and underlying ticker — but quantity on an option holding counts
options, typically contracts times 100.
Freshness is end-of-day in practice. Plaid checks at least once per market day, two to four times
depending on the institution, and most changes land overnight once prices settle; HOLDINGS: DEFAULT_UPDATE and INVESTMENTS_TRANSACTIONS: DEFAULT_UPDATE tell you which. Anything faster
needs /investments/refresh, billed per request and capped at 1 call a minute, 20 a day.
Integrations
Server libraries for Node, Python, Ruby, Java and Go; Link SDKs for web, iOS, Android, React, React Native and Flutter; processor endpoints that hand holdings to a partner platform without your server touching them. Plaid's two MCP servers cover dashboard diagnostics and sandbox tooling, not end-user holdings.
Limitations
- CUSIP and ISIN are null by default. Since 12 March 2024 both require a verified CUSIP Global
Services licence, and SEDOL is deprecated. You reconcile on ticker and Plaid's
security_id. - Prices are institution-reported, not market data, and
institution_price_as_ofis populated by only some institutions. cost_basisis nullable andtax_lotsis often empty — whether you can compute a real return depends on the brokerage, not on Plaid.- Going live is not self-serve. OAuth institutions need production access plus compliance-centre registration and a security questionnaire; most clear in hours, some take five business days. Fidelity is automatic only on Growth and Custom plans, roughly four weeks after approval, and Pay-as-you-go customers must request it by hand.
- Lose an access token and you keep paying for that Item until support finds it for you.
- The regulatory floor is gone. The CFPB's Section 1033 personal financial data rights rule, finalised in October 2024, was enjoined by a federal court in the Eastern District of Kentucky, and the Bureau is rewriting it — the replacement proposal went to OIRA in August 2026 and was still not public on 13 September 2026, with data-access fees the open question. JPMorgan began charging aggregators in 2025 and Plaid signed; Fidelity and Schwab want the same. None of that is in your contract and all of it sits upstream of your per-Item price.
Alternatives
SnapTrade is the comparison for anyone who wants connections and order placement in one API. Akoya, MX, Mastercard Open Finance — the old Finicity — and Yodlee compete on the same aggregation job with different institution lists. If you need one broker rather than all of them, that broker's own API is cheaper.
Specs
- Interfaces
- API, webhooks, Python
- Export
- JSON
- Asset classes
- Stocks, ETF, Options, Bonds, Mutual funds, Crypto
- Markets
- US, CA
- Platforms
- Web, Library
- AI features
- None
- Capabilities
- Broker import
- Pricing verified
- Capabilities verified
- Coverage verified
Also worth comparing
- Akoya — Bank-owned API network for consumer-permissioned account and holdings data. No scraping.
- MX — Bank-grade aggregation API with investment holdings billed as its own product.
- Wealthica Business — Canadian wealth aggregation — 125 published providers, positions, transactions, CUSIP.
- Yodlee — Long-running aggregation platform whose holdings carry CUSIP, ISIN and SEDOL.
- Mastercard Open Finance — The old Finicity API under Mastercard's name, with holdings on the account object.
- SnapTrade — One API for reading brokerage holdings and placing orders at supported brokers.
FAQ
Can Plaid Investments place trades?
No. The investments endpoints are read-only and nothing in Plaid's API places an order. The closest thing is Investments Move, a separate product that returns the account number, DTC code and holdings needed to submit an ACATS transfer — moving an account, not trading it.
How much does Plaid Investments cost?
Plaid does not publish a number. The pricing page marks Investments as included on all three plans without a figure, and the billing docs say outright that a price list is not available and that rates are shown on the last page of the Production access application. The shape is fixed, though — a monthly subscription per connected Item, billed for as long as a valid access token exists.
How far back does investment transaction history go?
Up to 24 months from /investments/transactions/get, with a securities-specific schema rather than the one the Transactions product uses. Sign convention is inverted from what most people expect — purchases are positive and sales are negative.
Does Plaid Investments cover non-US brokerages?
Only Canada, and barely. Plaid's own coverage file of 12 August 2026 lists 3,213 institutions supporting investments, of which 3,198 are US and 15 Canadian. There is no investments coverage on Plaid's European connections.