Every API here is available over the APIs.io API and to AI agents over MCP.
openapi: 3.2.0
info:
title: Plaid API
version: 2020-09-14_1.517.0
contact:
name: Plaid Developer Team
url: https://plaid.com
termsOfService: https://plaid.com/legal/
description: 'Operations tagged Plaid across 68 of this provider''s published API definitions: plaid-accounts--openapi-original.yml, plaid-accounts--openapi.yml, plaid-application--openapi-original.yml, plaid-asset-report--openapi-original.yml, plaid-asset-report--openapi.yml, plaid-auth--openapi-original.yml, plaid-auth--openapi.yml, plaid-bank-transfer--openapi-original.yml, plaid-bank-transfer--openapi.yml, plaid-beacon--openapi-original.yml, plaid-beacon--openapi.yml, plaid-beta--openapi-original.yml, plaid-categories--openapi-original.yml, plaid-categories--openapi.yml, plaid-cra--openapi-original.yml, plaid-cra--openapi.yml, plaid-credit--openapi-original.yml, plaid-credit--openapi.yml, plaid-dashboard-user--openapi-original.yml, plaid-deposit-switch--openapi-original.yml, plaid-deposit-switch--openapi.yml, plaid-employers--openapi-original.yml, plaid-employers--openapi.yml, plaid-fdx--openapi-original.yml, plaid-fdx--openapi.yml, plaid-identity--openapi-original.yml, plaid-identity--openapi.yml, plaid-identity-verification--openapi-original.yml, plaid-identity-verification--openapi.yml, plaid-income--openapi-original.yml, plaid-income--openapi.yml, plaid-institutions--openapi-original.yml, plaid-institutions--openapi.yml, plaid-investments--openapi-original.yml, plaid-investments--openapi.yml, plaid-item--openapi-original.yml, plaid-item--openapi.yml, plaid-liabilities--openapi-original.yml, plaid-liabilities--openapi.yml, plaid-link--openapi-original.yml, plaid-link--openapi.yml, plaid-link-delivery--openapi-original.yml, plaid-link-delivery--openapi.yml, plaid-openapi-original.yml, plaid-partner--openapi-original.yml, plaid-partner--openapi.yml, plaid-payment-initiation--openapi-original.yml, plaid-payment-initiation--openapi.yml, plaid-payment-profile--openapi-original.yml, plaid-payment-profile--openapi.yml, plaid-processor--openapi-original.yml, plaid-processor--openapi.yml, plaid-profile--openapi-original.yml, plaid-sandbox--openapi-original.yml, plaid-sandbox--openapi.yml, plaid-signal--openapi-original.yml, plaid-signal--openapi.yml, plaid-statements--openapi-original.yml, plaid-statements--openapi.yml, plaid-transactions--openapi-original.yml, plaid-transactions--openapi.yml, plaid-transfer--openapi-original.yml, plaid-transfer--openapi.yml, plaid-user--openapi-original.yml, plaid-wallet--openapi-original.yml, plaid-wallet--openapi.yml, plaid-watchlist-screening--openapi-original.yml, plaid-watchlist-screening--openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- description: Production
url: https://production.plaid.com
- description: Development
url: https://development.plaid.com
- description: Sandbox
url: https://sandbox.plaid.com
security:
- clientId: []
secret: []
plaidVersion: []
tags:
- name: Plaid
paths:
/accounts/get:
x-plaid-business-unit-context: BUSINESS_UNIT_PLAID
post:
tags:
- Plaid
summary: Plaid Retrieve accounts
externalDocs:
url: /api/accounts/#accountsget
operationId: accountsGet
description: 'The `/accounts/get` endpoint can be used to retrieve a list of accounts associated with any linked Item. Plaid will only return active bank accounts — that is, accounts that are not closed and are capable of carrying a balance.
For items that went through the updated account selection pane, this endpoint only returns accounts that were permissioned by the user when they initially created the Item. If a user creates a new account after the initial link, you can capture this event through the [`NEW_ACCOUNTS_AVAILABLE`](https://plaid.com/docs/api/items/#new_accounts_available) webhook and then use Link''s [update mode](https://plaid.com/docs/link/update-mode/) to request that the user share this new account with you.
`/accounts/get` is free to use and retrieves cached information, rather than extracting fresh information from the institution. The balance returned will reflect the balance at the time of the last successful Item update. If the Item is enabled for a regularly updating product, such as Transactions, Investments, or Liabilities, the balance will typically update about once a day, as long as the Item is healthy. If the Item is enabled only for products that do not frequently update, such as Auth or Identity, balance data may be much older.
For realtime balance information, use the paid endpoint `/accounts/balance/get` instead.'
responses:
'200':
description: success
content:
application/json:
schema:
$ref: '#/components/schemas/AccountsGetResponse'
examples:
example-1:
value:
accounts:
- account_id: blgvvBlXw3cq5GMPwqB6s6q4dLKB9WcVqGDGo
balances:
available: 100
current: 110
iso_currency_code: USD
limit: null
unofficial_currency_code: null
mask: '0000'
name: Plaid Checking
official_name: Plaid Gold Standard 0% Interest Checking
persistent_account_id: 8cfb8beb89b774ee43b090625f0d61d0814322b43bff984eaf60386e
subtype: checking
type: depository
- account_id: 6PdjjRP6LmugpBy5NgQvUqpRXMWxzktg3rwrk
balances:
available: null
current: 23631.9805
iso_currency_code: USD
limit: null
unofficial_currency_code: null
mask: '6666'
name: Plaid 401k
official_name: null
subtype: 401k
type: investment
- account_id: XMBvvyMGQ1UoLbKByoMqH3nXMj84ALSdE5B58
balances:
available: null
current: 65262
iso_currency_code: USD
limit: null
unofficial_currency_code: null
mask: '7777'
name: Plaid Student Loan
official_name: null
subtype: student
type: loan
item:
available_products:
- balance
- identity
- payment_initiation
- transactions
billed_products:
- assets
- auth
consent_expiration_time: null
error: null
institution_id: ins_117650
item_id: DWVAAPWq4RHGlEaNyGKRTAnPLaEmo8Cvq7na6
update_type: background
webhook: https://www.genericwebhookurl.com/webhook
request_id: bkVE1BHWMAZ9Rnr
default:
description: Error response.
content:
application/json:
schema:
$ref: '#/components/schemas/PlaidError'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AccountsGetRequest'
examples:
example-1:
value:
client_id: string
secret: string
access_token: string
options:
account_ids:
- string
servers:
- description: Production
url: https://production.plaid.com
- description: Development
url: https://development.plaid.com
- description: Sandbox
url: https://sandbox.plaid.com
/accounts/balance/get:
x-plaid-business-unit-context: BUSINESS_UNIT_PLAID
post:
tags:
- Plaid
summary: Plaid Retrieve real-time balance data
externalDocs:
url: /api/products/balance/#accountsbalanceget
operationId: accountsBalanceGet
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/AccountsGetResponse'
examples:
example-1:
value:
accounts:
- account_id: BxBXxLj1m4HMXBm9WZZmCWVbPjX16EHwv99vp
balances:
available: 100
current: 110
iso_currency_code: USD
limit: null
unofficial_currency_code: null
mask: '0000'
name: Plaid Checking
official_name: Plaid Gold Standard 0% Interest Checking
persistent_account_id: 8cfb8beb89b774ee43b090625f0d61d0814322b43bff984eaf60386e
subtype: checking
type: depository
- account_id: dVzbVMLjrxTnLjX4G66XUp5GLklm4oiZy88yK
balances:
available: null
current: 410
iso_currency_code: USD
limit: 2000
unofficial_currency_code: null
mask: '3333'
name: Plaid Credit Card
official_name: Plaid Diamond 12.5% APR Interest Credit Card
subtype: credit card
type: credit
- account_id: Pp1Vpkl9w8sajvK6oEEKtr7vZxBnGpf7LxxLE
balances:
available: null
current: 65262
iso_currency_code: USD
limit: null
unofficial_currency_code: null
mask: '7777'
name: Plaid Student Loan
official_name: null
subtype: student
type: loan
item:
available_products:
- balance
- identity
- investments
billed_products:
- assets
- auth
- liabilities
- transactions
consent_expiration_time: null
error: null
institution_id: ins_3
item_id: eVBnVMp7zdTJLkRNr33Rs6zr7KNJqBFL9DrE6
update_type: background
webhook: https://www.genericwebhookurl.com/webhook
request_id: qk5Bxes3gDfv4F2
description: The `/accounts/balance/get` endpoint returns the real-time balance for each of an Item's accounts. While other endpoints, such as `/accounts/get`, return a balance object, only `/accounts/balance/get` forces the available and current balance fields to be refreshed rather than cached. This endpoint can be used for existing Items that were added via any of Plaid’s other products. This endpoint can be used as long as Link has been initialized with any other product, `balance` itself is not a product that can be used to initialize Link. As this endpoint triggers a synchronous request for fresh data, latency may be higher than for other Plaid endpoints (typically less than 10 seconds, but occasionally up to 30 seconds or more); if you encounter errors, you may find it necessary to adjust your timeout period when making requests.
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AccountsBalanceGetRequest'
examples:
example-1:
value:
access_token: string
secret: string
client_id: string
options:
account_ids:
- string
servers:
- description: Production
url: https://production.plaid.com
- description: Development
url: https://development.plaid.com
- description: Sandbox
url: https://sandbox.plaid.com
/item/application/list:
x-plaid-business-unit-context: BUSINESS_UNIT_PLAID
post:
tags:
- Plaid
summary: Plaid List a user’s connected applications
operationId: itemApplicationList
description: List a user’s connected applications
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ItemApplicationListResponse'
default:
description: Error response.
content:
application/json:
schema:
$ref: '#/components/schemas/PlaidError'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ItemApplicationListRequest'
servers:
- description: Production
url: https://production.plaid.com
- description: Development
url: https://development.plaid.com
- description: Sandbox
url: https://sandbox.plaid.com
/item/application/unlink:
x-plaid-business-unit-context: BUSINESS_UNIT_PLAID
post:
tags:
- Plaid
summary: Plaid Unlink a user’s connected application
externalDocs:
url: none
operationId: itemApplicationUnlink
description: 'Unlink a user’s connected application. On an unlink request, Plaid will immediately revoke the Application’s access to the User’s data. The User will have to redo the OAuth authentication process in order to restore functionality.
This endpoint only removes ongoing data access permissions, therefore the User will need to reach out to the Application itself in order to disable and delete their account and delete any data that the Application already received (if the Application does not do so by default).
This endpoint should be called in real time as the User is unlinking an Application, and should not be batched in order to ensure that the change is reflected as soon as possible.'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ItemApplicationUnlinkResponse'
examples:
example-1:
value:
request_id: m8MDnv9okwxFNBV
default:
description: Error response.
content:
application/json:
schema:
$ref: '#/components/schemas/PlaidError'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ItemApplicationUnlinkRequest'
servers:
- description: Production
url: https://production.plaid.com
- description: Development
url: https://development.plaid.com
- description: Sandbox
url: https://sandbox.plaid.com
/item/application/scopes/update:
x-plaid-business-unit-context: BUSINESS_UNIT_PLAID
post:
tags:
- Plaid
summary: Plaid Update the scopes of access for a particular application
operationId: itemApplicationScopesUpdate
description: Enable consumers to update product access on selected accounts for an application.
responses:
'200':
description: success
content:
application/json:
schema:
$ref: '#/components/schemas/ItemApplicationScopesUpdateResponse'
default:
description: Error response.
content:
application/json:
schema:
$ref: '#/components/schemas/PlaidError'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ItemApplicationScopesUpdateRequest'
servers:
- description: Production
url: https://production.plaid.com
- description: Development
url: https://development.plaid.com
- description: Sandbox
url: https://sandbox.plaid.com
/application/get:
x-plaid-business-unit-context: BUSINESS_UNIT_PLAID
post:
tags:
- Plaid
summary: Retrieve information about a Plaid application
operationId: applicationGet
description: Allows financial institutions to retrieve information about Plaid clients for the purpose of building control-tower experiences
responses:
'200':
description: success
content:
application/json:
schema:
$ref: '#/components/schemas/ApplicationGetResponse'
default:
description: Error response.
content:
application/json:
schema:
$ref: '#/components/schemas/PlaidError'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ApplicationGetRequest'
description: ''
servers:
- description: Production
url: https://production.plaid.com
- description: Development
url: https://development.plaid.com
- description: Sandbox
url: https://sandbox.plaid.com
/asset_report/create:
x-plaid-business-unit-context: BUSINESS_UNIT_PLAID
post:
tags:
- Plaid
summary: Plaid Create an Asset Report
externalDocs:
url: /api/products/assets/#asset_reportcreate
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/AssetReportCreateResponse'
examples:
example-1:
value:
asset_report_token: assets-sandbox-6f12f5bb-22dd-4855-b918-f47ec439198a
asset_report_id: 1f414183-220c-44f5-b0c8-bc0e6d4053bb
request_id: Iam3b
operationId: assetReportCreate
description: 'The `/asset_report/create` endpoint initiates the process of creating an Asset Report, which can then be retrieved by passing the `asset_report_token` return value to the `/asset_report/get` or `/asset_report/pdf/get` endpoints.
The Asset Report takes some time to be created and is not available immediately after calling `/asset_report/create`. The exact amount of time to create the report will vary depending on how many days of history are requested and will typically range from a few seconds to about one minute. When the Asset Report is ready to be retrieved using `/asset_report/get` or `/asset_report/pdf/get`, Plaid will fire a `PRODUCT_READY` webhook. For full details of the webhook schema, see [Asset Report webhooks](https://plaid.com/docs/api/products/assets/#webhooks).
The `/asset_report/create` endpoint creates an Asset Report at a moment in time. Asset Reports are immutable. To get an updated Asset Report, use the `/asset_report/refresh` endpoint.'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AssetReportCreateRequest'
servers:
- description: Production
url: https://production.plaid.com
- description: Development
url: https://development.plaid.com
- description: Sandbox
url: https://sandbox.plaid.com
/asset_report/get:
x-plaid-business-unit-context: BUSINESS_UNIT_PLAID
post:
tags:
- Plaid
summary: Plaid Retrieve an Asset Report
externalDocs:
url: /api/products/assets/#asset_reportget
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/AssetReportGetResponse'
examples:
example-1:
value:
report:
asset_report_id: 028e8404-a013-4a45-ac9e-002482f9cafc
client_report_id: client_report_id_1221
date_generated: '2023-03-30T18:27:37Z'
days_requested: 5
items:
- accounts:
- account_id: 1qKRXQjk8xUWDJojNwPXTj8gEmR48piqRNye8
balances:
available: 43200
current: 43200
limit: null
margin_loan_amount: null
iso_currency_code: USD
unofficial_currency_code: null
days_available: 5
historical_balances:
- current: 49050
date: '2023-03-29'
iso_currency_code: USD
unofficial_currency_code: null
- current: 49050
date: '2023-03-28'
iso_currency_code: USD
unofficial_currency_code: null
- current: 49050
date: '2023-03-27'
iso_currency_code: USD
unofficial_currency_code: null
- current: 49050
date: '2023-03-26'
iso_currency_code: USD
unofficial_currency_code: null
- current: 49050
date: '2023-03-25'
iso_currency_code: USD
unofficial_currency_code: null
mask: '4444'
name: Plaid Money Market
official_name: Plaid Platinum Standard 1.85% Interest Money Market
owners:
- addresses:
- data:
city: Malakoff
country: US
region: NY
street: 2992 Cameron Road
postal_code: '14236'
primary: true
- data:
city: San Matias
country: US
region: CA
street: 2493 Leisure Lane
postal_code: 93405-2255
primary: false
emails:
- data: accountholder0@example.com
primary: true
type: primary
- data: accountholder1@example.com
primary: false
type: secondary
- data: extraordinarily.long.email.username.123456@reallylonghostname.com
primary: false
type: other
names:
- Alberta Bobbeth Charleson
phone_numbers:
- data: '1112223333'
primary: false
type: home
- data: '1112224444'
primary: false
type: work
- data: '1112225555'
primary: false
type: mobile
ownership_type: null
subtype: money market
transactions:
- account_id: 1qKRXQjk8xUWDJojNwPXTj8gEmR48piqRNye8
amount: 5850
date: '2023-03-30'
iso_currency_code: USD
original_description: ACH Electronic CreditGUSTO PAY 123456
pending: false
transaction_id: gGQgjoeyqBF89PND6K14Sow1wddZBmtLomJ78
unofficial_currency_code: null
type: depository
- account_id: eG7pNLjknrFpWvP7Dkbdf3Pq6GVBPKTaQJK5v
balances:
available: 100
current: 110
limit: null
margin_loan_amount: null
iso_currency_code: USD
unofficial_currency_code: null
days_available: 5
historical_balances:
- current: 110
date: '2023-03-29'
iso_currency_code: USD
unofficial_currency_code: null
- current: -390
date: '2023-03-28'
iso_currency_code: USD
unofficial_currency_code: null
- current: -373.67
date: '2023-03-27'
iso_currency_code: USD
unofficial_currency_code: null
- current: -284.27
date: '2023-03-26'
iso_currency_code: USD
unofficial_currency_code: null
- current: -284.27
date: '2023-03-25'
iso_currency_code: USD
unofficial_currency_code: null
mask: '0000'
name: Plaid Checking
official_name: Plaid Gold Standard 0% Interest Checking
owners:
- addresses:
- data:
city: Malakoff
country: US
region: NY
street: 2992 Cameron Road
postal_code: '14236'
primary: true
- data:
city: San Matias
country: US
region: CA
street: 2493 Leisure Lane
postal_code: 93405-2255
primary: false
emails:
- data: accountholder0@example.com
primary: true
type: primary
- data: accountholder1@example.com
primary: false
type: secondary
- data: extraordinarily.long.email.username.123456@reallylonghostname.com
primary: false
type: other
names:
- Alberta Bobbeth Charleson
phone_numbers:
- data: '1112223333'
primary: false
type: home
- data: '1112224444'
primary: false
type: work
- data: '1112225555'
primary: false
type: mobile
ownership_type: null
subtype: checking
transactions:
- account_id: eG7pNLjknrFpWvP7Dkbdf3Pq6GVBPKTaQJK5v
amount: 89.4
date: '2023-03-27'
iso_currency_code: USD
original_description: SparkFun
pending: false
transaction_id: 4zBRq1Qem4uAPnoyKjJNTRQpQddM4ztlo1PLD
unofficial_currency_code: null
- account_id: eG7pNLjknrFpWvP7Dkbdf3Pq6GVBPKTaQJK5v
amount: 12
date: '2023-03-28'
iso_currency_code: USD
original_description: 'McDonalds #3322'
pending: false
transaction_id: dkjL41PnbKsPral79jpxhMWdW55gkPfBkWpRL
unofficial_currency_code: null
- account_id: eG7pNLjknrFpWvP7Dkbdf3Pq6GVBPKTaQJK5v
amount: 4.33
date: '2023-03-28'
iso_currency_code: USD
original_description: Starbucks
pending: false
transaction_id: a84ZxQaWDAtDL3dRgmazT57K7jjN3WFkNWMDy
unofficial_currency_code: null
- account_id: eG7pNLjknrFpWvP7Dkbdf3Pq6GVBPKTaQJK5v
amount: -500
date: '2023-03-29'
iso_currency_code: USD
original_description: United Airlines **** REFUND ****
pending: false
transaction_id: xG9jbv3eMoFWepzB7wQLT3LoLggX5Duy1Gbe5
unofficial_currency_code: null
type: depository
date_last_updated: '2023-03-30T18:25:26Z'
institution_id: ins_109508
institution_name: First Platypus Bank
item_id: AZMP7JrGXgtPd3AQMeg7hwMKgk5E8qU1V5ME7
user:
client_user_id: uid_40332
email: abcharleston@example.com
first_name: Anna
last_name: Charleston
middle_name: B
phone_number: 1-415-867-5309
ssn: 111-22-1234
request_id: GVzMdiDd8DDAQK4
warnings: []
operationId: assetReportGet
description: 'The `/asset_report/get` endpoint retrieves the Asset Report in JSON format. Before calling `/asset_report/get`, you must first create the Asset Report using `/asset_report/create` (or filter an Asset Report using `/asset_report/filter`) and then wait for the [`PRODUCT_READY`](https://plaid.com/docs/api/products/assets/#product_ready) webhook to fire, indicating that the Report is ready to be retrieved.
By default, an Asset Report includes transaction descriptions as returned by the bank, as opposed to parsed and categorized by Plaid. You can also receive cleaned and categorized transactions, as well as additional insights like merchant name or location information. We call this an Asset Report with Insights. An Asset Report with Insights provides transaction category, location, and merchant information in addition to the transaction strings provided in a standard Asset Report. To retrieve an Asset Report with Insights, call `/asset_report/get` endpoint with `include_insights` set to `true`.
For latency-sensitive applications, you can optionally call `/asset_report/create` with `options.add_ons` set to `["fast_assets"]`. This will cause Plaid to create two versions of the Asset Report: one with only current and available balance and identity information, and then later on the complete Asset Report. You will receive separate webhooks for each version of the Asset R
# --- truncated at 32 KB (1947 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/plaid/refs/heads/main/openapi/plaid-plaid-api-openapi.yml