Plaid logo
Docs
ALL DOCS

API

  • Overview
  • Libraries
  • API versioning
  • Postman Collection
  • Webhooks
Product API reference
  • Transactions
  • Auth
  • Balance
  • Identity
  • Assets
  • Investments
  • Liabilities
  • Payment Initiation
  • Virtual Accounts
  • Transfer (beta)
  • Income
  • Identity Verification
  • Monitor
  • Signal
  • Enrich
Other API reference
  • Item endpoints and webhooks
  • Account endpoints and schemas
  • Institution endpoints
  • Token flow and endpoints
  • Processor endpoints
  • Sandbox endpoints
  • Reseller partner endpoints
Plaid logo
Docs
Plaid.com
Get API keys
Open nav

API Reference

Comprehensive reference for integrating with Plaid API endpoints

Endpoint and schema overview

Plaid's API endpoints and schemas are listed below. If you are looking for reference information about client-side integrations on web or mobile, see the Link docs.

Item
Retrieving and deleting Items
/item/get
/item/remove
/item/webhook/update
Institutions
Fetching data about supported institutions
/institutions/get
/institutions/get_by_id
/institutions/search
Account
Retrieving account information and seeing all possible account types and subtypes
/accounts/get
Account type schemas
Account type/product support matrix
Currency code schema
Investment transaction types schema
Token
Obtaining and managing tokens from Link
/link/token/create
/link/token/get
/item/public_token/exchange
/item/access_token/invalidate
/item/public_token/create
Processor
Endpoints for use with or by Plaid partners
/processor/token/create
/processor/stripe/bank_account_token/create
/processor/auth/get
/processor/balance/get
/processor/identity/get
Reseller Partner
Endpoints for use by Plaid reseller partners
/partner/customer/create
/partner/customer/get
/partner/customer/oauth_institutions/get
/partner/customer/enable
/partner/customer/remove
Sandbox
Sandbox-specific endpoints for testing
/sandbox/public_token/create
/sandbox/item/reset_login
/sandbox/item/set_verification_status
/sandbox/item/fire_webhook
/sandbox/processor_token/create
/sandbox/transfer/fire_webhook
/sandbox/transfer/simulate
/sandbox/transfer/sweep/simulate
/sandbox/transfer/test_clock/create
/sandbox/transfer/test_clock/advance
/sandbox/transfer/test_clock/get
/sandbox/transfer/test_clock/list
/sandbox/income/fire_webhook
Webhook verification
Optionally verify webhook signatures
/webhook_verification_key/get
Transactions
Retrieve up to 24 months of transaction data and stay up-to-date with webhooks
/transactions/sync
/transactions/get
/transactions/recurring/get
/transactions/refresh
/categories/get
Auth
Retrieve and verify bank account information
/auth/get
/bank_transfer/event/list
/bank_transfer/event/sync
Balance
Retrieve real-time balance information
/accounts/balance/get
Identity
Verify users' identities and reduce fraud with the Identity product
/identity/get
Assets
Access users' financial information for loan underwriting
/asset_report/create
/asset_report/get
/asset_report/pdf/get
/asset_report/refresh
/asset_report/filter
/asset_report/remove
/asset_report/audit_copy/create
/asset_report/audit_copy/remove
/credit/relay/create
/credit/relay/get
/credit/relay/refresh
/credit/relay/remove
Investments
View holdings and transactions from investment accounts
/investments/holdings/get
/investments/transactions/get
Liabilities
Access data for student loans, mortgages, and credit cards
/liabilities/get
Payment Initiation (UK and Europe)
Initiate payments within your app
/payment_initiation/recipient/create
/payment_initiation/recipient/get
/payment_initiation/recipient/list
/payment_initiation/payment/create
/payment_initiation/payment/get
/payment_initiation/payment/list
/payment_initiation/payment/reverse
/payment_initiation/consent/create
/payment_initiation/consent/get
/payment_initiation/consent/revoke
/payment_initiation/consent/payment/execute
Virtual Accounts (UK and Europe)
Manage the entire lifecycle of a payment
/wallet/create
/wallet/get
/wallet/list
/wallet/transaction/execute
/wallet/transaction/get
/wallet/transaction/list
Transfer (beta)
Transfer funds between bank accounts
/transfer/authorization/create
/transfer/capabilities/get
/transfer/create
/transfer/cancel
/transfer/get
/transfer/list/
/transfer/event/list
/transfer/event/sync
/transfer/sweep/get
/transfer/sweep/list
/transfer/intent/create
/transfer/intent/get
/transfer/recurring/create
/transfer/recurring/cancel
/transfer/recurring/get
/transfer/recurring/list
/transfer/refund/create
/transfer/refund/cancel
/transfer/refund/get
/transfer/migrate_account
/payment_profile/create
/payment_profile/remove
/payment_profile/get
/transfer/originator/create
/transfer/originator/get
/transfer/originator/list
/transfer/questionnaire/create
Income
Verify a user's income via payroll data.
/credit/bank_income/get
/credit/payroll_income/get
/credit/payroll_income/precheck
/credit/employment/get
/credit/sessions/get
/user/create
/income/verification/precheck
/income/verification/paystubs/get
/income/verification/documents/download
/income/verification/taxforms/get
/employment/verification/get
Identity Verification
Verify a user's identity.
/identity_verification/create
/identity_verification/get
/identity_verification/list
/identity_verification/retry
Monitor
Screen a user or entity.
/watchlist_screening/individual/create
/watchlist_screening/individual/get
/watchlist_screening/individual/list
/watchlist_screening/individual/update
/watchlist_screening/individual/history/list
/watchlist_screening/individual/review/create
/watchlist_screening/individual/review/list
/watchlist_screening/individual/hit/list
/watchlist_screening/individual/program/get
/watchlist_screening/individual/program/list
/watchlist_screening/entity/create
/watchlist_screening/entity/get
/watchlist_screening/entity/list
/watchlist_screening/entity/update
/watchlist_screening/entity/history/list
/watchlist_screening/entity/review/create
/watchlist_screening/entity/review/list
/watchlist_screening/entity/hit/list
/watchlist_screening/entity/program/get
/watchlist_screening/entity/program/list
/dashboard_user/get
/dashboard_user/list
Signal
Assess the return risk of an ACH debit transaction.
/signal/evaluate
/signal/decision/report
/signal/return/report
/signal/prepare
Enrich
Send transaction data and retrieve enrichments.
/transactions/enrich

API access

To gain access to the Plaid API, create an account on the Plaid developer dashboard. Once you’ve completed the signup process and acknowledged our terms, we’ll provide a live client_id and secret via the Dashboard.

API protocols and headers

The Plaid API uses POST requests to communicate and HTTP response codes to indicate status and errors. All responses come in standard JSON. The Plaid API is served over HTTPS TLS v1.2+ to ensure data privacy; HTTP and HTTPS with TLS versions below 1.2 are not supported. All requests must include a Content-Type of application/json and the body must be valid JSON.

Almost all Plaid API endpoints require a client_id and secret. These may be sent either in the request body or in the headers PLAID-CLIENT-ID and PLAID-SECRET.

Every Plaid API response includes a request_id as the 'X-Request-Id' header. The request_id is included whether the API request succeeded or failed. For faster support, include the request_id when contacting support regarding a specific API call.

API host

Select Language
Copy
1https://sandbox.plaid.com (Sandbox)
2https://development.plaid.com (Development)
3https://production.plaid.com (Production)

Plaid has three environments: Sandbox, Development, and Production. Items, once created, cannot be moved to another environment. The Sandbox environment supports only test Items. The Development environment supports up to 100 live Items using real data. All testing should be done in the Sandbox and Development environments. All activity in the Production environment will be billed. When you’re getting ready to launch into Production, request Production API access via the dashboard.

API status and incidents

API status is available at status.plaid.com.

API status and incidents are also available programmatically via the following endpoints:

  • https://status.plaid.com/api/v2/status.json for current status
  • https://status.plaid.com/api/v2/incidents.json for current and historical incidents

For a complete list of all API status information available programmatically, as well as more information on using these endpoints, see the Atlassian Status API documentation.

API field formats

Strings

Many string fields returned by Plaid APIs are reported exactly as returned by the financial institution. For this reason, Plaid does not have maximum length limits or standardized formats for strings returned by the API. In practice, field lengths of 280 characters will generally be adequate for storing returned strings, although Plaid does not guarantee this as a maximum string length.

Numbers and money

Plaid returns all currency values as decimal values in dollars (or the equivalent for the currency being used), rather than as integers. In some cases, it may be possible for a money value returned by the Plaid API to have more than two digits of precision -- this is common, for example, when reporting crypto balances.

OpenAPI definition file

OpenAPI is a standard format for describing RESTful APIs that allows those APIs to be integrated with tools for a wide variety of applications, including testing, client library generation, IDE integration, and more. The Plaid API is specified in our Plaid OpenAPI GitHub repo.

Postman collection

The Postman collection is a convenient tool for exploring Plaid API endpoints without writing code. The Postman collection provides pre-formatted requests for almost all of Plaid's API endpoints. All you have to do is fill in your API keys and any arguments. To get started, check out the Plaid Postman Collection Quickstart on GitHub.

Client libraries

See the client libraries page for more information on Plaid's client libraries.

Was this helpful?
Developer community
GitHub
GitHub
Stack Overflow
Stack Overflow
YouTube
YouTube
Twitter
Twitter
Discord
Discord