一键导入
plaid-api-reference
Search and retrieve Plaid API endpoint documentation including parameters, authentication requirements, response shapes, and rate limits. Use when the user needs to call a Plaid API or wants to know available endpoints.
菜单
Search and retrieve Plaid API endpoint documentation including parameters, authentication requirements, response shapes, and rate limits. Use when the user needs to call a Plaid API or wants to know available endpoints.
| name | plaid-api-reference |
| description | Search and retrieve Plaid API endpoint documentation including parameters, authentication requirements, response shapes, and rate limits. Use when the user needs to call a Plaid API or wants to know available endpoints. |
| standards-version | 1.10.0 |
Use this skill when the user:
Identify the relevant endpoint from the user's query. Plaid organizes endpoints by product:
| Product | Key endpoints |
|---|---|
| Link | /link/token/create, /item/public_token/exchange |
| Transactions | /transactions/sync, /transactions/get, /transactions/refresh, /transactions/recurring/get |
| Auth | /auth/get |
| Balance | /accounts/balance/get |
| Identity | /identity/get |
| Investments | /investments/holdings/get, /investments/transactions/get |
| Liabilities | /liabilities/get |
| Items | /item/get, /item/remove, /item/webhook/update |
| Institutions | /institutions/search, /institutions/get_by_id |
| Sandbox | /sandbox/public_token/create, /sandbox/item/fire_webhook, /sandbox/item/reset_login |
Present the endpoint details. Every Plaid endpoint uses POST. Structure the response with:
https://{environment}.plaid.com{path}client_id + secret (in headers) or access_token (in request body)Provide a code example in TypeScript using the plaid Node SDK:
import { PlaidApi, Configuration, PlaidEnvironments } from "plaid";
const config = new Configuration({
basePath: PlaidEnvironments.sandbox,
baseOptions: {
headers: {
"PLAID-CLIENT-ID": process.env.PLAID_CLIENT_ID,
"PLAID-SECRET": process.env.PLAID_SECRET,
},
},
});
const plaidClient = new PlaidApi(config);
// Example: /transactions/sync
const response = await plaidClient.transactionsSync({
access_token: accessToken,
cursor: lastCursor ?? undefined,
count: 100,
});
const { added, modified, removed, next_cursor, has_more } = response.data;
Note the authentication tiers. Different endpoints require different credentials:
| Auth level | What you need | Example endpoints |
|---|---|---|
| Client credentials | PLAID-CLIENT-ID + PLAID-SECRET headers | /link/token/create, /institutions/search, /sandbox/* |
| Access token | access_token in request body | /transactions/sync, /accounts/get, /item/remove |
| Webhook verification | JWK from /webhook_verification_key/get | Incoming webhook POST validation |
State rate limits where relevant:
| Endpoint | Limit |
|---|---|
/transactions/sync | 15 requests/min per item |
/transactions/get | 15 requests/min per item |
/transactions/refresh | 2 requests/day per item |
/accounts/balance/get | Institution-dependent (live query) |
| Most other endpoints | No published limit |
Base URLs by environment:
| Environment | Base URL |
|---|---|
| Sandbox | https://sandbox.plaid.com |
| Development | https://development.plaid.com |
| Production | https://production.plaid.com |
User: "What parameters does /transactions/sync accept?"
Agent:
Looks up the /transactions/sync endpoint
Shows that it requires access_token (string) in the request body
Lists optional parameters:
cursor (string) - pagination cursor from a previous responsecount (integer, default 100, max 500) - number of transactions per pageoptions.include_personal_finance_category (boolean) - include detailed categoriesoptions.include_logo_and_counterparty_beta (boolean) - include merchant logosDescribes the response shape:
interface TransactionsSyncResponse {
added: Transaction[];
modified: Transaction[];
removed: RemovedTransaction[];
next_cursor: string;
has_more: boolean;
request_id: string;
}
Notes: rate limited to 15 requests/min per item. Loop while has_more === true, persisting next_cursor between calls.
User: "How do I look up an institution by routing number?"
Agent:
Points to /institutions/search with options.routing_numbers
Shows the code:
const response = await plaidClient.institutionsSearch({
query: "",
products: null,
country_codes: [CountryCode.Us],
options: {
routing_numbers: ["021000021"],
include_optional_metadata: true,
},
});
Notes: the query field can be empty when filtering by routing number
| Step | MCP Tool | Description |
|---|---|---|
| Look up endpoint | plaid_getApiEndpoint | Get full documentation for any Plaid API endpoint by path or keyword |
| List products | plaid_listProducts | List all Plaid products with descriptions and pricing tiers |
| List webhooks | plaid_listWebhookTypes | Browse all webhook types and codes with payload descriptions |
| Search institutions | plaid_searchInstitutions | Search institutions by name, products, and country |
| Browse categories | plaid_listCategories | Browse the personal_finance_category taxonomy |
/transactions/get is deprecated in favor of /transactions/sync. The sync endpoint is cursor-based and handles added, modified, and removed transactions in one call.PLAID-CLIENT-ID and PLAID-SECRET in headers (or client_id and secret in the request body). The Node SDK handles this automatically.PLAID_ENV and build the client config from it.has_more - /transactions/sync paginates. If has_more is true, you must call again with the returned next_cursor to get all data./link/token/create use client credentials, while others like /transactions/sync need an access_token. Mixing them up returns auth errors.Verify bank accounts using Plaid Auth, micro-deposits, same-day micro-deposits, and database match. Use when the user needs account and routing numbers or ACH payment verification.
Map Plaid personal finance categories to your application's taxonomy. Covers the primary/detailed hierarchy, building custom mapping layers, and common category use cases. Use when the user needs to categorize or display transaction categories.
Detect, classify, and recover from Plaid API errors including ITEM_LOGIN_REQUIRED, INVALID_CREDENTIALS, INSTITUTION_NOT_RESPONDING, rate limits, and network failures. Use when the user needs to handle Plaid errors gracefully.
Implement Plaid Identity and Identity Verification products for KYC flows, document verification, and match scores. Use when the user needs to verify account holder identity.
Search Plaid institutions by name, routing number, products supported, and country. Use when the user needs to find bank coverage, check institution availability, or look up institution details.
Track investment holdings, securities, and transactions using the Plaid Investments product. Covers holdings retrieval, security details, cost basis, and supported brokerages.