Plaid financial data API for connecting bank accounts and retrieving balances, transactions, investment holdings, and liabilities. Users connect banks via Plaid Hosted Link — Plaid hosts the entire Link UI at secure.plaid.com, fires a SESSION_FINISHED webhook back to Lava, and each bank is stored as a distinct credential. Callers pick which bank to query on each request via the x-lava-plaid-item header. Best for personal finance, bookkeeping, and portfolio-tracking workflows that span multiple banks.
14 endpoints available through Lava’s AI Gateway. See the Plaid API docs for full documentation.
This provider requires your own credentials — connect your API key or OAuth account before use.
Endpoints
Fetch real-time account balances for a connected Item
POST https://production.plaid.com/accounts/balance/get — $0.10 / request
const data = await lava . gateway ( 'https://production.plaid.com/accounts/balance/get' , { body: {} });
curl -X POST "https://api.lava.so/v1/forward?u=https%3A%2F%2Fproduction.plaid.com%2Faccounts%2Fbalance%2Fget" \
-H "Authorization: Bearer $LAVA_SECRET_KEY " \
-H "Content-Type: application/json" \
-d '{}'
List accounts for a connected Item
POST https://production.plaid.com/accounts/get — Free
const data = await lava . gateway ( 'https://production.plaid.com/accounts/get' , { body: {} });
curl -X POST "https://api.lava.so/v1/forward?u=https%3A%2F%2Fproduction.plaid.com%2Faccounts%2Fget" \
-H "Authorization: Bearer $LAVA_SECRET_KEY " \
-H "Content-Type: application/json" \
-d '{}'
Search institutions by name
POST https://production.plaid.com/institutions/search — Free
const data = await lava . gateway ( 'https://production.plaid.com/institutions/search' , {
body: {
"query" : "chase" ,
"products" : [
"transactions"
],
"country_codes" : [
"US"
]
},
});
curl -X POST "https://api.lava.so/v1/forward?u=https%3A%2F%2Fproduction.plaid.com%2Finstitutions%2Fsearch" \
-H "Authorization: Bearer $LAVA_SECRET_KEY " \
-H "Content-Type: application/json" \
-d '{"query":"chase","products":["transactions"],"country_codes":["US"]}'
Look up a Plaid institution by its ID
POST https://production.plaid.com/institutions/get_by_id — Free
const data = await lava . gateway ( 'https://production.plaid.com/institutions/get_by_id' , { body: { "institution_id" : "ins_109508" , "country_codes" : [ "US" ]} });
curl -X POST "https://api.lava.so/v1/forward?u=https%3A%2F%2Fproduction.plaid.com%2Finstitutions%2Fget_by_id" \
-H "Authorization: Bearer $LAVA_SECRET_KEY " \
-H "Content-Type: application/json" \
-d '{"institution_id":"ins_109508","country_codes":["US"]}'
List institutions supported by Plaid
POST https://production.plaid.com/institutions/get — Free
const data = await lava . gateway ( 'https://production.plaid.com/institutions/get' , { body: { "count" : 10 , "offset" : 0 , "country_codes" : [ "US" ]} });
curl -X POST "https://api.lava.so/v1/forward?u=https%3A%2F%2Fproduction.plaid.com%2Finstitutions%2Fget" \
-H "Authorization: Bearer $LAVA_SECRET_KEY " \
-H "Content-Type: application/json" \
-d '{"count":10,"offset":0,"country_codes":["US"]}'
Incremental sync of transactions (cursor-based)
POST https://production.plaid.com/transactions/sync — Free
const data = await lava . gateway ( 'https://production.plaid.com/transactions/sync' , { body: {} });
curl -X POST "https://api.lava.so/v1/forward?u=https%3A%2F%2Fproduction.plaid.com%2Ftransactions%2Fsync" \
-H "Authorization: Bearer $LAVA_SECRET_KEY " \
-H "Content-Type: application/json" \
-d '{}'
Fetch transactions within a date range
POST https://production.plaid.com/transactions/get — Free
const data = await lava . gateway ( 'https://production.plaid.com/transactions/get' , { body: { "start_date" : "2025-01-01" , "end_date" : "2025-01-31" } });
curl -X POST "https://api.lava.so/v1/forward?u=https%3A%2F%2Fproduction.plaid.com%2Ftransactions%2Fget" \
-H "Authorization: Bearer $LAVA_SECRET_KEY " \
-H "Content-Type: application/json" \
-d '{"start_date":"2025-01-01","end_date":"2025-01-31"}'
Request an on-demand refresh of transactions
POST https://production.plaid.com/transactions/refresh — Free
const data = await lava . gateway ( 'https://production.plaid.com/transactions/refresh' , { body: {} });
curl -X POST "https://api.lava.so/v1/forward?u=https%3A%2F%2Fproduction.plaid.com%2Ftransactions%2Frefresh" \
-H "Authorization: Bearer $LAVA_SECRET_KEY " \
-H "Content-Type: application/json" \
-d '{}'
List recurring income/expense streams for an Item
POST https://production.plaid.com/transactions/recurring/get — Free
const data = await lava . gateway ( 'https://production.plaid.com/transactions/recurring/get' , { body: {} });
curl -X POST "https://api.lava.so/v1/forward?u=https%3A%2F%2Fproduction.plaid.com%2Ftransactions%2Frecurring%2Fget" \
-H "Authorization: Bearer $LAVA_SECRET_KEY " \
-H "Content-Type: application/json" \
-d '{}'
Fetch holdings for investment accounts
POST https://production.plaid.com/investments/holdings/get — Free
const data = await lava . gateway ( 'https://production.plaid.com/investments/holdings/get' , { body: {} });
curl -X POST "https://api.lava.so/v1/forward?u=https%3A%2F%2Fproduction.plaid.com%2Finvestments%2Fholdings%2Fget" \
-H "Authorization: Bearer $LAVA_SECRET_KEY " \
-H "Content-Type: application/json" \
-d '{}'
Fetch investment transactions within a date range
POST https://production.plaid.com/investments/transactions/get — Free
const data = await lava . gateway ( 'https://production.plaid.com/investments/transactions/get' , { body: { "start_date" : "2025-01-01" , "end_date" : "2025-01-31" } });
curl -X POST "https://api.lava.so/v1/forward?u=https%3A%2F%2Fproduction.plaid.com%2Finvestments%2Ftransactions%2Fget" \
-H "Authorization: Bearer $LAVA_SECRET_KEY " \
-H "Content-Type: application/json" \
-d '{"start_date":"2025-01-01","end_date":"2025-01-31"}'
Fetch liability details (credit, student loan, mortgage)
POST https://production.plaid.com/liabilities/get — Free
const data = await lava . gateway ( 'https://production.plaid.com/liabilities/get' , { body: {} });
curl -X POST "https://api.lava.so/v1/forward?u=https%3A%2F%2Fproduction.plaid.com%2Fliabilities%2Fget" \
-H "Authorization: Bearer $LAVA_SECRET_KEY " \
-H "Content-Type: application/json" \
-d '{}'
POST https://production.plaid.com/item/get — Free
const data = await lava . gateway ( 'https://production.plaid.com/item/get' , { body: {} });
curl -X POST "https://api.lava.so/v1/forward?u=https%3A%2F%2Fproduction.plaid.com%2Fitem%2Fget" \
-H "Authorization: Bearer $LAVA_SECRET_KEY " \
-H "Content-Type: application/json" \
-d '{}'
Disconnect an Item and invalidate its access_token
POST https://production.plaid.com/item/remove — Free
const data = await lava . gateway ( 'https://production.plaid.com/item/remove' , { body: {} });
curl -X POST "https://api.lava.so/v1/forward?u=https%3A%2F%2Fproduction.plaid.com%2Fitem%2Fremove" \
-H "Authorization: Bearer $LAVA_SECRET_KEY " \
-H "Content-Type: application/json" \
-d '{}'
Next Steps
All Providers Browse all supported AI providers
Forward Proxy Learn how to construct proxy URLs and authenticate requests