API Reference
Comprehensive reference for integrating with Plaid API endpoints
API endpoints and webhooks
For documentation on specific API endpoints and webhooks, use the navigation menu or search.
API access
To gain access to the Plaid API, create an account on the Plaid 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 is JSON over HTTP. Requests are POST requests, and responses are JSON, with errors indicated in response bodies as error_code
and error_type
(use these in preference to HTTP status codes for identifying application-level errors). All responses come as standard JSON, with a small subset returning binary data where appropriate. 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. Clients must use an up to date root certificate bundle as the only TLS verification path; certificate pinning should never be used. 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
, either in the body or (in the case of endpoints that return binary data, such as /asset_report/pdf/get
) in the response headers. For faster support, include the request_id
when contacting support regarding a specific API call.
API host
1https://sandbox.plaid.com (Sandbox)2https://production.plaid.com (Production)
Plaid has two environments: Sandbox and Production. Items cannot be moved between environments. The Sandbox environment supports only test Items. You can 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.
For information on institution-specific status, see Troubleshooting institution status.
Storing API data
Any token returned by the API is sensitive and should be stored securely. Except for the public_token
and link_token
, all Plaid tokens are long-lasting and should never be exposed on the client side. Consumer data obtained from the Plaid API is sensitive information and should be managed accordingly. For guidance and best practices on how to store and handle sensitive data, see the Open Finance Security Data Standard.
Identifiers used by the Plaid API that do not contain consumer data and are not keys or tokens are designed for usage in less sensitive contexts. The most common of these identifiers are the account_id
, item_id
, link_session_id
, and request_id
. These identifiers are commonly used for logging and debugging purposes.
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.