Plaid Investments

Read-only holdings, cost basis and investment transactions from 3,200 brokerages.

by Plaid

Last updated

From
Free tier only
Latency
Eod
Non-US markets
Yes
Platforms
Web, Library

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_of is populated by only some institutions.
  • cost_basis is nullable and tax_lots is 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

  • AkoyaBank-owned API network for consumer-permissioned account and holdings data. No scraping.
  • MXBank-grade aggregation API with investment holdings billed as its own product.
  • Wealthica BusinessCanadian wealth aggregation — 125 published providers, positions, transactions, CUSIP.
  • YodleeLong-running aggregation platform whose holdings carry CUSIP, ISIN and SEDOL.
  • Mastercard Open FinanceThe old Finicity API under Mastercard's name, with holdings on the account object.
  • SnapTradeOne 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.