Try itExperimental
See what an agent can do with Plaid before you ever sign up. Pick a story: recorded sessions replay real probe-harness transcripts; sandboxed self-drive sessions are designed and gated (docs/TRY-IT.md).
$curl -si -X POST https://production.plaid.com/accounts/balance/get -H 'Content-Type: application/json' -d '{}' # keyless → 400 naming the missing client_idrecorded session — replayed, not liveVerified integrations
No integration evidence found in our corpus for this product yet — that means none was found, never that it doesn’t integrate.
By theme — the product's score on each story themeBy theme
Account linking — stories about account linking in this arenaAccount linkingevidence →
Stories about account linking in this arena
Agenticness — how well agents can access and operate the productAgenticnessevidence →
How well agents can access and operate the product
Automation depth — how much of the product can run unattendedAutomation depthevidence →
How much of the product can run unattended
Balance ownership — stories about balance ownership in this arenaBalance ownershipevidence →
Stories about balance ownership in this arena
Banking agent access — stories about banking agent access in this arenaBanking agent accessevidence →
Stories about banking agent access in this arena
Consent security — stories about consent security in this arenaConsent securityevidence →
Stories about consent security in this arena
Data freshness — stories about data freshness in this arenaData freshnessevidence →
Stories about data freshness in this arena
Institution coverage — stories about institution coverage in this arenaInstitution coverageevidence →
Stories about institution coverage in this arena
Integration dx — sandboxes, test modes, webhooks, and how fast a developer gets to a working integrationIntegration dxevidence →
Sandboxes, test modes, webhooks, and how fast a developer gets to a working integration
Openness — open source, data portability, and self-hosting storiesOpennessevidence →
Open source, data portability, and self-hosting stories
Payment initiation — stories about payment initiation in this arenaPayment initiationevidence →
Stories about payment initiation in this arena
Privacy posture — data-handling and privacy storiesPrivacy postureevidence →
Data-handling and privacy stories
Transactions enrichment — stories about transactions enrichment in this arenaTransactions enrichmentevidence →
Stories about transactions enrichment in this arena
Story verdicts — every judged story with its evidenceStory verdicts
Follow the green: where the map greys out is where Plaid stops today. ✓ full · ~ partial · ! disputed · — none · n/a not applicable.
Account linking — stories about account linking in this arenaAccount linking
Stories about account linking in this arena
Let a user connect their bank with a drop-in hosted flow — create a session server-side, open the widget, and get back a token for the connected account — without building institution UI myself
✓8/10
Connections to major institutions use bank-hosted OAuth rather than screen-scraped credentials — the platform documents its OAuth coverage and how legacy credential flows are being retired
—0/10
Broken connections are repairable — expired or revoked links surface as documented statuses, and users can re-authenticate in an update flow without starting over
~3/10
Agenticness — how well agents can access and operate the productAgenticness
How well agents can access and operate the product
API surface
Drive the product through a documented public API
~7/10
unlocks → Scoped API keys · Machine-readable spec · Versioning policy · Official CLI · Full data export
Subscribe to events via webhooks
✓7/10
Build against official SDKs
~6/10
Issue scoped/least-privilege API credentials for an agent
—0/10
Connect an agent via an official MCP server
~7/10
Download a machine-readable API spec (OpenAPI or equivalent)
—0/10
Rely on versioned APIs with a documented deprecation policy
—–
Test against a sandbox environment without touching production data
✓8/10
Explore an interactive API reference with runnable examples
—0/10
Docs for agents
Point an agent at llms.txt or agent-oriented docs
~6/10
Agentic features
Delegate tasks to a built-in AI assistant inside the product
n/an/a
Operate the product with natural-language commands
~4/10
Plug MCP servers into this product so it can use their tools
n/an/a
Get AI-generated insights and suggestions from my data inside the product
—0/10
Set up automations that run autonomously in the background
~3/10
Automation depth — how much of the product can run unattendedAutomation depth
How much of the product can run unattended
Balance ownership — stories about balance ownership in this arenaBalance ownership
Stories about balance ownership in this arena
Obtain verified account and routing numbers (or tokenized equivalents) from a linked account to fund ACH or bank-debit payments without micro-deposits
✓8/10
Fetch a real-time balance for a connected account before initiating a payment — a documented balance endpoint intended for NSF and risk checks
✓8/10
Retrieve account-holder details — names, addresses, contact data on file at the bank — to match the account owner against my customer
✓8/10
Linked accounts plug into my payment processor — documented integrations or token exchange that hand verified account credentials to third-party processors and platforms
✓8/10
Banking agent access — stories about banking agent access in this arenaBanking agent access
Stories about banking agent access in this arena
The data comes back agent-consumable — clean structured JSON, documented schemas, and enrichment an automated financial workflow can reason over without heuristic parsing
~5/10
An agent can operate the platform — create link sessions, retrieve balances and transactions, and manage connections through the API or an MCP surface with scoped credentials
~6/10
Consent security — stories about consent security in this arenaConsent security
Stories about consent security in this arena
End users can see and revoke what they've shared — a documented consent surface or portal where a user manages which apps hold access to their bank data
—0/10
Sever and clean up — a documented way to delete a connection or user and have the platform stop collecting and purge held data
—0/10
I request only the data scopes I need — product-scoped consents and documented data-minimization controls, not an all-or-nothing grant
!4/10
Data freshness — stories about data freshness in this arenaData freshness
Stories about data freshness in this arena
Trigger an on-demand refresh of a connected account's data through the API when my use case needs now-fresh data, with the refresh semantics documented
~4/10
Data changes arrive as signed webhooks — new transactions, balance updates, connection state changes — so my system stays current without polling
✓8/10
Institution coverage — stories about institution coverage in this arenaInstitution coverage
Stories about institution coverage in this arena
The platform documents how many institutions it reaches and where — published coverage numbers and geographies I can check against where my users actually bank
~3/10
Per-institution health is visible — documented institution statuses, outage or degradation signals, and error codes that distinguish a bank problem from my problem
~4/10
Integration dx — sandboxes, test modes, webhooks, and how fast a developer gets to a working integrationIntegration dx
Sandboxes, test modes, webhooks, and how fast a developer gets to a working integration
One link session can power multiple data products — auth, balances, transactions, identity — without forcing the user through separate connection flows per product
~5/10
Go from signup to my first linked sandbox account fast — self-serve API keys, a runnable quickstart, and client libraries in my language
~7/10
A sandbox with test institutions and documented test credentials lets me exercise linking, data retrieval, and error states end-to-end before touching a real bank account
✓9/10
Openness — open source, data portability, and self-hosting storiesOpenness
Open source, data portability, and self-hosting stories
Payment initiation — stories about payment initiation in this arenaPayment initiation
Stories about payment initiation in this arena
Initiate a bank payment from a connected account — a documented pay-by-bank or payment-initiation product with its live geographies stated honestly
~6/10
Recurring bank payments are supported — variable recurring payments, standing consents, or documented recurring debit flows built on the connection
—0/10
Privacy posture — data-handling and privacy storiesPrivacy posture
Data-handling and privacy stories
Transactions enrichment — stories about transactions enrichment in this arenaTransactions enrichment
Stories about transactions enrichment in this arena
The platform derives income and cash-flow signals from connected accounts — recurring streams, payroll detection, or documented income verification products built on the same data
—–
Raw bank transactions come back enriched — cleaned merchant names, categories, and logos — documented as a capability of the platform, not left as an exercise for me
—0/10
Pull transaction history for a connected account through the API — paginated, with documented history depth and a sync pattern for fetching only what changed
✓8/10
Sorted by importance (agentic first) (high → low) · 53/53 stories · click a row’s chevron for the rationale and evidence
Connect an agent via an official MCP server G Agent access | ai-native user | Agenticness — how well agents can access and operate the productAgenticness | 3 | partial | 7/10 | Tprobed | |
Drive the product through a documented public API G Agent access | ai-native user | Agenticness — how well agents can access and operate the productAgenticness | 3 | partial | 7/10 | Tprobed | |
Plug MCP servers into this product so it can use their tools G Agent access | ai-native user | Agenticness — how well agents can access and operate the productAgenticness | 3 | n/a | 0/10 | ||
Delegate tasks to a built-in AI assistant inside the product G Agentic features | ai-native user | Agenticness — how well agents can access and operate the productAgenticness | 3 | n/a | untested | none yet | |
Subscribe to events via webhooks G Agent access | ai-native user | Agenticness — how well agents can access and operate the productAgenticness | 2 | full | 7/10 | Cclaimed | |
Build against official SDKs G Agent access | ai-native user | Agenticness — how well agents can access and operate the productAgenticness | 2 | partial | 6/10 | Cclaimed | |
Point an agent at llms.txt or agent-oriented docs G Agent access | ai-native user | Agenticness — how well agents can access and operate the productAgenticness | 2 | partial | 6/10 | Tprobed | |
Run the product headlessly / in CI for automation G Agent access | ai-native user | Agenticness — how well agents can access and operate the productAgenticness | 2 | partial | 6/10 | Cclaimed | |
Operate the product with natural-language commands G Agentic features | ai-native user | Agenticness — how well agents can access and operate the productAgenticness | 2 | partial | 4/10 | Tprobed | |
Set up automations that run autonomously in the background G Agentic features | ai-native user | Agenticness — how well agents can access and operate the productAgenticness | 2 | partial | 3/10 | Cclaimed | |
Download a machine-readable API spec (OpenAPI or equivalent) G Api quality | ai-native user | Agenticness — how well agents can access and operate the productAgenticness | 2 | none | 0/10 | ||
Explore an interactive API reference with runnable examples G Api quality | ai-native user | Agenticness — how well agents can access and operate the productAgenticness | 2 | none | 0/10 | ||
Get AI-generated insights and suggestions from my data inside the product G Agentic features | ai-native user | Agenticness — how well agents can access and operate the productAgenticness | 2 | none | 0/10 | ||
Issue scoped/least-privilege API credentials for an agent G Agent access | ai-native user | Agenticness — how well agents can access and operate the productAgenticness | 2 | none | 0/10 | ||
Rely on versioned APIs with a documented deprecation policy G Api quality | ai-native user | Agenticness — how well agents can access and operate the productAgenticness | 2 | none | untested | none yet | |
Use an official CLI G Agent access | ai-native user | Agenticness — how well agents can access and operate the productAgenticness | 2 | none | untested | none yet | |
Test against a sandbox environment without touching production data G Api quality | ai-native user | Agenticness — how well agents can access and operate the productAgenticness | 1 | full | 8/10 | Cclaimed | |
A sandbox with test institutions and documented test credentials lets me exercise linking, data retrieval, and error states end-to-end before touching a real bank account C Sandbox | developer | Integration dx — sandboxes, test modes, webhooks, and how fast a developer gets to a working integrationIntegration dx | 3 | full | 9/10 | Cclaimed | |
Fetch a real-time balance for a connected account before initiating a payment — a documented balance endpoint intended for NSF and risk checks C Balances | developer | Balance ownership — stories about balance ownership in this arenaBalance ownership | 3 | full | 8/10 | Cclaimed | |
Let a user connect their bank with a drop-in hosted flow — create a session server-side, open the widget, and get back a token for the connected account — without building institution UI myself C Hosted flows | developer | Account linking — stories about account linking in this arenaAccount linking | 3 | full | 8/10 | Cclaimed | |
Obtain verified account and routing numbers (or tokenized equivalents) from a linked account to fund ACH or bank-debit payments without micro-deposits C Ach details | developer | Balance ownership — stories about balance ownership in this arenaBalance ownership | 3 | full | 8/10 | Cclaimed | |
Pull transaction history for a connected account through the API — paginated, with documented history depth and a sync pattern for fetching only what changed C Transactions | developer | Transactions enrichment — stories about transactions enrichment in this arenaTransactions enrichment | 3 | full | 8/10 | Cclaimed | |
An agent can operate the platform — create link sessions, retrieve balances and transactions, and manage connections through the API or an MCP surface with scoped credentials C Agent operations | ai-native user | Banking agent access — stories about banking agent access in this arenaBanking agent access | 3 | partial | 6/10 | Tprobed | |
Define rules that trigger actions automatically on events G | ai-native user | Automation depth — how much of the product can run unattendedAutomation depth | 3 | partial | 4/10 | Cclaimed | |
The platform documents how many institutions it reaches and where — published coverage numbers and geographies I can check against where my users actually bank C Coverage | founder | Institution coverage — stories about institution coverage in this arenaInstitution coverage | 3 | partial | 3/10 | Cclaimed | |
Export all of my data in open formats and leave G | ai-native user | Openness — open source, data portability, and self-hosting storiesOpenness | 3 | none | untested | none yet | |
Prevent my data from being used to train AI models G | ai-native user | Privacy posture — data-handling and privacy storiesPrivacy posture | 3 | n/a | untested | none yet | |
Self-host the core product G | ai-native user | Openness — open source, data portability, and self-hosting storiesOpenness | 3 | n/a | untested | none yet | |
Data changes arrive as signed webhooks — new transactions, balance updates, connection state changes — so my system stays current without polling C Webhooks | developer | Data freshness — stories about data freshness in this arenaData freshness | 2 | full | 8/10 | Cclaimed | |
Linked accounts plug into my payment processor — documented integrations or token exchange that hand verified account credentials to third-party processors and platforms C Processor tokens | developer | Balance ownership — stories about balance ownership in this arenaBalance ownership | 2 | full | 8/10 | Cclaimed | |
Retrieve account-holder details — names, addresses, contact data on file at the bank — to match the account owner against my customer C Ownership | ops lead | Balance ownership — stories about balance ownership in this arenaBalance ownership | 2 | full | 8/10 | Cclaimed | |
Go from signup to my first linked sandbox account fast — self-serve API keys, a runnable quickstart, and client libraries in my language C Quickstart | developer | Integration dx — sandboxes, test modes, webhooks, and how fast a developer gets to a working integrationIntegration dx | 2 | partial | 7/10 | Tprobed | |
Initiate a bank payment from a connected account — a documented pay-by-bank or payment-initiation product with its live geographies stated honestly C Pay by bank | developer | Payment initiation — stories about payment initiation in this arenaPayment initiation | 2 | partial | 6/10 | Cclaimed | |
Do everything through the API that I can do in the UI G | ai-native user | Openness — open source, data portability, and self-hosting storiesOpenness | 2 | partial | 5/10 | Tprobed | |
One link session can power multiple data products — auth, balances, transactions, identity — without forcing the user through separate connection flows per product C Multi product | developer | Integration dx — sandboxes, test modes, webhooks, and how fast a developer gets to a working integrationIntegration dx | 2 | partial | 5/10 | Cclaimed | |
The data comes back agent-consumable — clean structured JSON, documented schemas, and enrichment an automated financial workflow can reason over without heuristic parsing C Agent data | ai-native user | Banking agent access — stories about banking agent access in this arenaBanking agent access | 2 | partial | 5/10 | Tprobed | |
I request only the data scopes I need — product-scoped consents and documented data-minimization controls, not an all-or-nothing grant C Scopes | developer | Consent security — stories about consent security in this arenaConsent security | 2 | disputed | 4/10 | Dcontradicted | |
Per-institution health is visible — documented institution statuses, outage or degradation signals, and error codes that distinguish a bank problem from my problem C Status | ops lead | Institution coverage — stories about institution coverage in this arenaInstitution coverage | 2 | partial | 4/10 | Tprobed | |
Trigger an on-demand refresh of a connected account's data through the API when my use case needs now-fresh data, with the refresh semantics documented C Refresh | developer | Data freshness — stories about data freshness in this arenaData freshness | 2 | partial | 4/10 | Cclaimed | |
Broken connections are repairable — expired or revoked links surface as documented statuses, and users can re-authenticate in an update flow without starting over C Repair | ops lead | Account linking — stories about account linking in this arenaAccount linking | 2 | partial | 3/10 | Cclaimed | |
Connections to major institutions use bank-hosted OAuth rather than screen-scraped credentials — the platform documents its OAuth coverage and how legacy credential flows are being retired C Oauth | developer | Account linking — stories about account linking in this arenaAccount linking | 2 | none | 0/10 | ||
Control data retention and deletion G | ai-native user | Privacy posture — data-handling and privacy storiesPrivacy posture | 2 | none | 0/10 | ||
End users can see and revoke what they've shared — a documented consent surface or portal where a user manages which apps hold access to their bank data C Consent | ops lead | Consent security — stories about consent security in this arenaConsent security | 2 | none | 0/10 | ||
Raw bank transactions come back enriched — cleaned merchant names, categories, and logos — documented as a capability of the platform, not left as an exercise for me C Enrichment | developer | Transactions enrichment — stories about transactions enrichment in this arenaTransactions enrichment | 2 | none | 0/10 | ||
Recurring bank payments are supported — variable recurring payments, standing consents, or documented recurring debit flows built on the connection C Recurring | developer | Payment initiation — stories about payment initiation in this arenaPayment initiation | 2 | none | 0/10 | ||
Sever and clean up — a documented way to delete a connection or user and have the platform stop collecting and purge held data C Deletion | ops lead | Consent security — stories about consent security in this arenaConsent security | 2 | none | 0/10 | ||
Choose where my data is stored (region/residency) G | ai-native user | Privacy posture — data-handling and privacy storiesPrivacy posture | 2 | none | untested | none yet | |
Opt out of telemetry and usage tracking G | ai-native user | Privacy posture — data-handling and privacy storiesPrivacy posture | 2 | none | untested | none yet | |
Perform bulk operations across many items at once G | ai-native user | Automation depth — how much of the product can run unattendedAutomation depth | 2 | none | untested | none yet | |
Read the product's source under an open license G | ai-native user | Openness — open source, data portability, and self-hosting storiesOpenness | 2 | none | untested | none yet | |
Schedule recurring jobs or workflows G | ai-native user | Automation depth — how much of the product can run unattendedAutomation depth | 2 | none | untested | none yet | |
The platform derives income and cash-flow signals from connected accounts — recurring streams, payroll detection, or documented income verification products built on the same data C Cashflow | finance lead | Transactions enrichment — stories about transactions enrichment in this arenaTransactions enrichment | 2 | none | untested | none yet | |
Version, review, and roll back my automations G | ai-native user | Automation depth — how much of the product can run unattendedAutomation depth | 1 | n/a | untested | none yet |
Opportunities — the stories that would move this product's scores, from its own judged verdictsOpportunitiestop 8 of 37 stories with headroom
What would move Plaid’s scores — derived from its own judged verdicts, biggest headroom first. Each line quotes what the judge found missing; shipping it (or evidencing it publicly) is the fix.
Openness — open source, data portability, and self-hosting storiesExport all of my data in open formats and leave
nonemoves PA Scoreimpact 30
The axis applies to this product kind (peer products hold positive or none verdicts on this story), so lack of evidence for an applicable capability is "none", never "na".
Agenticness — how well agents can access and operate the productGet AI-generated insights and suggestions from my data inside the product
nonemoves Built-in AIimpact 30
Missing: any AI/ML insight-generation feature, natural-language summarization of transactions/balances, or user-facing recommendation engine.
Agenticness — how well agents can access and operate the productUse an official CLI
nonemoves agent-readyimpact 30
Evidence shows Plaid SDKs (e.g., plaid-node), Quickstart apps, and a hosted MCP server, but no mention anywhere of an official CLI tool for interacting with Plaid's API or dashboard.
Agenticness — how well agents can access and operate the productIssue scoped/least-privilege API credentials for an agent
nonemoves agent-readyimpact 30
Missing: any documentation of scoped API keys, credential minimization, or agent-specific access tokens.
Agenticness — how well agents can access and operate the productExplore an interactive API reference with runnable examples
nonemoves API qualityimpact 30
Evidence shows only static docs pages, a Quickstart sample app to clone locally, and a Sandbox test environment, but no interactive API reference (e.g., try-it console, embedded runnable code snippets) — probes for an OpenAPI spec and docs-as-markdown interactive surface both returned 404s, suggesting no such interactive reference exists.
Agenticness — how well agents can access and operate the productDownload a machine-readable API spec (OpenAPI or equivalent)
nonemoves API qualityimpact 30
Direct probes for OpenAPI/swagger spec files at standard paths all returned 404, and no documentation references a downloadable machine-readable API spec; only an llms.txt marketing page was found, not an OpenAPI/equivalent spec.
Agenticness — how well agents can access and operate the productRely on versioned APIs with a documented deprecation policy
nonemoves API qualityimpact 30
The evidence pack contains no documentation of API versioning scheme or a deprecation policy — no changelog, version headers, or sunset timeline are mentioned anywhere, only product feature docs (Auth, Balance, Identity, Transactions) and SDK error-handling snippets.
Institution coverage — stories about institution coverage in this arenaThe platform documents how many institutions it reaches and where — published coverage numbers and geographies I can check against where my users actually bank
partialq3/10moves PA Scoreimpact 21
Missing: published total institution count, per-country/region coverage breakdown, and any independent verification of coverage claims.
Showing the top 8 of 37 — every none/partial verdict in the story verdicts table is headroom.
Think a verdict is wrong? Every verdicts-table row has a Flag link — see the methodology.
Coverage map — which docs area, API section, or community source covers which judged storiesCoverage map5 surfaces · 29 covered stories
Where the cited evidence behind each covered verdict came from — the same citations the verdicts table shows, no extra judging.
docs29 stories
- Let a user connect their bank with a drop-in hosted flow — create a session server-side, open the widget, and get back a token for the connected account — without building institution UI myself
- Broken connections are repairable — expired or revoked links surface as documented statuses, and users can re-authenticate in an update flow without starting over
- Point an agent at llms.txt or agent-oriented docs
- Run the product headlessly / in CI for automation
- Connect an agent via an official MCP server
- Drive the product through a documented public API
- Build against official SDKs
- Subscribe to events via webhooks
- Set up automations that run autonomously in the background
- Operate the product with natural-language commands
- Test against a sandbox environment without touching production data
- Define rules that trigger actions automatically on events
- Obtain verified account and routing numbers (or tokenized equivalents) from a linked account to fund ACH or bank-debit payments without micro-deposits
- Fetch a real-time balance for a connected account before initiating a payment — a documented balance endpoint intended for NSF and risk checks
- Retrieve account-holder details — names, addresses, contact data on file at the bank — to match the account owner against my customer
- Linked accounts plug into my payment processor — documented integrations or token exchange that hand verified account credentials to third-party processors and platforms
- The data comes back agent-consumable — clean structured JSON, documented schemas, and enrichment an automated financial workflow can reason over without heuristic parsing
- An agent can operate the platform — create link sessions, retrieve balances and transactions, and manage connections through the API or an MCP surface with scoped credentials
- I request only the data scopes I need — product-scoped consents and documented data-minimization controls, not an all-or-nothing grant
- Trigger an on-demand refresh of a connected account's data through the API when my use case needs now-fresh data, with the refresh semantics documented
- Data changes arrive as signed webhooks — new transactions, balance updates, connection state changes — so my system stays current without polling
- The platform documents how many institutions it reaches and where — published coverage numbers and geographies I can check against where my users actually bank
- Per-institution health is visible — documented institution statuses, outage or degradation signals, and error codes that distinguish a bank problem from my problem
- One link session can power multiple data products — auth, balances, transactions, identity — without forcing the user through separate connection flows per product
- Go from signup to my first linked sandbox account fast — self-serve API keys, a runnable quickstart, and client libraries in my language
- A sandbox with test institutions and documented test credentials lets me exercise linking, data retrieval, and error states end-to-end before touching a real bank account
- Do everything through the API that I can do in the UI
- Initiate a bank payment from a connected account — a documented pay-by-bank or payment-initiation product with its live geographies stated honestly
- Pull transaction history for a connected account through the API — paginated, with documented history depth and a sync pattern for fetching only what changed
GitHub README14 stories
- Let a user connect their bank with a drop-in hosted flow — create a session server-side, open the widget, and get back a token for the connected account — without building institution UI myself
- Run the product headlessly / in CI for automation
- Drive the product through a documented public API
- Build against official SDKs
- Set up automations that run autonomously in the background
- Define rules that trigger actions automatically on events
- The data comes back agent-consumable — clean structured JSON, documented schemas, and enrichment an automated financial workflow can reason over without heuristic parsing
- An agent can operate the platform — create link sessions, retrieve balances and transactions, and manage connections through the API or an MCP surface with scoped credentials
- Trigger an on-demand refresh of a connected account's data through the API when my use case needs now-fresh data, with the refresh semantics documented
- Data changes arrive as signed webhooks — new transactions, balance updates, connection state changes — so my system stays current without polling
- Per-institution health is visible — documented institution statuses, outage or degradation signals, and error codes that distinguish a bank problem from my problem
- Go from signup to my first linked sandbox account fast — self-serve API keys, a runnable quickstart, and client libraries in my language
- A sandbox with test institutions and documented test credentials lets me exercise linking, data retrieval, and error states end-to-end before touching a real bank account
- Pull transaction history for a connected account through the API — paginated, with documented history depth and a sync pattern for fetching only what changed
OpenAPI spec5 stories
- Point an agent at llms.txt or agent-oriented docs
- Drive the product through a documented public API
- The data comes back agent-consumable — clean structured JSON, documented schemas, and enrichment an automated financial workflow can reason over without heuristic parsing
- Go from signup to my first linked sandbox account fast — self-serve API keys, a runnable quickstart, and client libraries in my language
- Do everything through the API that I can do in the UI
Probe proofs — replayable recordings from the probe harnessProbe proofs
Replayable recordings from our probe harness — see the Prove-It protocol to submit one.
$curl -si -X POST https://production.plaid.com/accounts/balance/get -H 'Content-Type: application/json' -d '{}' # keyless → 400 naming the missing client_idreproduced$ curl -si -X POST https://production.plaid.com/accounts/balance/get -H 'Content-Type: application/json' -d '{}' # [redacted]less → 400 naming the missing client_id
HTTP/1.1 400 Bad Request
Server: nginx
$curl -sL https://plaid.com/docs/llms.txt | head -3reproduced$ curl -sL https://plaid.com/docs/llms.txt | head -3 # Plaid Technical Documentation # Full version: https://plaid.com/docs/llms-full.txt
$curl -s -X POST https://api.dashboard.plaid.com/mcp/sse -H 'Content-Type: application/json' -d '<jsonrpc initialize>' # the Dashboard MCP Plaid documents (OAuth mcp:dashboard scope)reproduced$ curl -s -X POST https://api.dashboard.plaid.com/mcp/sse -H 'Content-Type: application/json' -d '<jsonrpc initialize>' # the Dashboard MCP Plaid documents (OAuth mcp:dashboard scope)
{"error":"Unauthorized"}
Claims vs evidence — vendor claims reconciled against independent verdictsClaims vs evidence
2 of 13 testable claims verified · 0 contradicted → integrity 15/100
15 distinct capability claims found in Plaid’s own claimed-docs/GitHub materials, reconciled against our judge’s independent verdicts.
2
Verified
11
Unverified
0
Contradicted
15
Undersold
Verified (2)
“Dashboard MCP server gives production diagnostics, Item debugging, Link conversion data, and usage metrics via remote MCP”
“Quickstart app plus self-serve Dashboard API keys let developers spin up a local integration quickly”
Go from signup to my first linked sandbox account fast — self-serve API keys, a runnable quickstart, and client libraries in my languagepartialproof ↗
Unverified (13)
“Auth product returns verified checking/savings account and routing numbers to initiate ACH, wire, or equivalent payments”
Obtain verified account and routing numbers (or tokenized equivalents) from a linked account to fund ACH or bank-debit payments without micro-depositsfullproof ↗
“Balance product provides real-time account balance data, commonly used for sufficient-funds checks before payment”
Fetch a real-time balance for a connected account before initiating a payment — a documented balance endpoint intended for NSF and risk checksfullproof ↗
“Identity product verifies a user's phone, email, mailing address, and name using data on file at their bank”
Retrieve account-holder details — names, addresses, contact data on file at the bank — to match the account owner against my customerfullproof ↗
“Transactions product retrieves up to 24 months of transaction history and can be kept current via webhooks”
Pull transaction history for a connected account through the API — paginated, with documented history depth and a sync pattern for fetching only what changedfullproof ↗
“Plaid Link is a client-side widget users interact with to connect their bank accounts to your app via the API”
Let a user connect their bank with a drop-in hosted flow — create a session server-side, open the widget, and get back a token for the connected account — without building institution UI myselffullproof ↗
“European Payments suite lets users make real-time bank payments without manually entering account details”
Initiate a bank payment from a connected account — a documented pay-by-bank or payment-initiation product with its live geographies stated honestlypartialproof ↗
“European Payments covers verification, risk management, and money movement across 18 European markets via one integration”
The platform documents how many institutions it reaches and where — published coverage numbers and geographies I can check against where my users actually bankpartialproof ↗
“Sandbox is a free, fully-featured environment supporting all API and Link functionality, with unlimited test Items”
A sandbox with test institutions and documented test credentials lets me exercise linking, data retrieval, and error states end-to-end before touching a real bank accountfullproof ↗
“Sandbox is a free, fully-featured environment supporting all API and Link functionality, with unlimited test Items”
Test against a sandbox environment without touching production datafullproof ↗
“Sandbox-only API endpoint lets developers programmatically create test Items for any institution with test credentials”
A sandbox with test institutions and documented test credentials lets me exercise linking, data retrieval, and error states end-to-end before touching a real bank accountfullproof ↗
“Plaid sends webhooks to notify apps of changes to linked Items or the status of asynchronous processes”
Data changes arrive as signed webhooks — new transactions, balance updates, connection state changes — so my system stays current without pollingfullproof ↗
“transactionsSync endpoint lets developers fetch only changed transactions via an async SDK call”
Pull transaction history for a connected account through the API — paginated, with documented history depth and a sync pattern for fetching only what changedfullproof ↗
“Official SDKs support catching all API errors via try/catch with async/await or promise chaining”
Undersold (15)
Broken connections are repairable — expired or revoked links surface as documented statuses, and users can re-authenticate in an update flow without starting overpartialproof ↗
Point an agent at llms.txt or agent-oriented docspartialproof ↗
Run the product headlessly / in CI for automationpartialproof ↗
Drive the product through a documented public APIpartialproof ↗
Set up automations that run autonomously in the backgroundpartialproof ↗
Operate the product with natural-language commandspartialproof ↗
Define rules that trigger actions automatically on eventspartialproof ↗
Linked accounts plug into my payment processor — documented integrations or token exchange that hand verified account credentials to third-party processors and platformsfullproof ↗
The data comes back agent-consumable — clean structured JSON, documented schemas, and enrichment an automated financial workflow can reason over without heuristic parsingpartialproof ↗
An agent can operate the platform — create link sessions, retrieve balances and transactions, and manage connections through the API or an MCP surface with scoped credentialspartialproof ↗
Trigger an on-demand refresh of a connected account's data through the API when my use case needs now-fresh data, with the refresh semantics documentedpartialproof ↗
Per-institution health is visible — documented institution statuses, outage or degradation signals, and error codes that distinguish a bank problem from my problempartialproof ↗
One link session can power multiple data products — auth, balances, transactions, identity — without forcing the user through separate connection flows per productpartialproof ↗
Do everything through the API that I can do in the UIpartialproof ↗
Claims outside our story set (1)
Real capability claims found in Plaid’s own materials, but no story in this arena’s taxonomy covers them yet — that’s feedback on the taxonomy, not a mark against the product.
“Dashboard lets you customize parts of the Link flow with real-time preview and instant publish to production”
source ↗
Business model
Tiers named, numbers not published: a free limited-production tier (200 API calls per product on live data), Pay as You Go, Growth, and Custom — real prices arrive with the sales conversation.
pricing ↗Score trend
How this product’s scores have moved as evidence and verdicts are re-derived — a point per change, not per day.
Try Experimental
Run it in the microterminal →Recorded agent sessions — and a live MCP handshake where the vendor ships one.
Flag
⚑ Flag a verdictThink a verdict is wrong? Opens a prefilled GitHub issue — or use the ⚑ next to any verdict above.
For agents
