Plaid CLI
Install and use the Plaid CLI to access your financial data from the terminal
The Plaid CLI is a command-line interface for the Plaid API. Install once and start making API calls — no client libraries to import, no request objects to construct, no response types to parse.
The CLI works for both developers and AI agents:
- For developers: readable table output in the terminal, with commands that mirror the API structure
- For agents: structured JSON output via
--json, clean separation of data on stdout and diagnostics on stderr, and predictable exit codes
The CLI currently supports Balance, Transactions, Investments, and Liabilities. Use it to link a financial institution, check balances, pull transactions, view holdings, and more, all without writing any code.
The Plaid CLI is an experimental tool; you may encounter rough edges. Use plaid feedback to report issues or suggest improvements.
The interface to the Plaid CLI may change (including breaking changes) without advance notice.
Installing the CLI
The CLI is distributed via Homebrew.
brew install plaid/plaid-cli/plaidbrew update && brew upgrade plaidplaid --versionGetting started
Creating an account
If you don't have a Plaid account yet, sign up directly from the CLI:
plaid registerThis opens the Dashboard signup page in your browser. After creating and verifying your account, log in:
plaid loginThis opens a browser for you to authenticate with the Dashboard. Once complete, the CLI stores your tokens locally and fetches your API keys automatically. Tokens are refreshed automatically by subsequent commands.
Signing up for the Trial plan
By default, new accounts have access to the Sandbox environment. To connect to real financial institutions, apply for a Trial plan:
plaid trialThis opens the Trial plan application form in your browser. Once your application is approved, refresh your locally stored API keys to start using Production:
plaid keys fetchLinking an Item
The CLI is organized around Items, which represent logins at financial institutions. Product commands read data from one Item (--item) or all linked Items (--all).
To connect a real institution, use Hosted Link in your browser:
plaid linkThis opens Plaid Link in your browser. Search for your financial institution, log in with your credentials, and select the accounts you want to connect. When the flow completes, the CLI automatically saves the access token and Item ID to your config so you can query product data immediately.
plaid link accepts a --products flag to choose the product set for the
linked Item:
plaid link --products transactions,liabilitiesplaid item link is an equivalent namespace form when you want to stay inside
the item command tree.
To see which Items you have linked:
plaid item listCreating a Sandbox Item
The Sandbox environment allows you to test without connecting a real financial institution.
plaid config set --env sandbox
plaid sandbox linkYou can choose a Sandbox product scenario without opening Link:
plaid sandbox link --products balance
plaid sandbox link --products transactions,liabilities
plaid sandbox link --products investmentsQuerying PFM product data
With one linked Item stored locally, the product commands use it by default.
When you have multiple linked Items, pass --item <item-id-or-alias> for one Item or --all to view every linked Item.
Once you have linked an Item, the main product commands are:
plaid balanceACCOUNT AVAILABLE CURRENT CURRENCY
Plaid Checking (0000) 100.00 110.00 USDplaid transactions list --count 5DATE MERCHANT AMOUNT CATEGORY ACCOUNT
2026-04-24 Tectra Inc 500.00 Food and Drink > Restaurants Plaid Credit Card (3333)
2026-04-23 AUTOMATIC PAYMENT - THANK 2078.50 Payment Plaid Credit Card (3333)
2026-04-23 KFC 500.00 Food and Drink > Restaurants > Fast Food Plaid Credit Card (3333)
2026-04-23 Madison Bicycle Shop 500.00 Shops > Sporting Goods Plaid Credit Card (3333)
2026-04-14 Uber 5.40 Travel > Taxi Plaid Checking (0000)plaid transactions syncSynced: 4 added, 0 modified, 0 removed
New transactions:
DATE MERCHANT AMOUNT
2026-04-14 Uber 5.40
2026-04-12 United Airlines -500.00
2026-04-11 McDonald's 12.00
2026-04-11 Starbucks 4.33plaid investments holdingsACCOUNT SECURITY TICKER QUANTITY PRICE VALUE
Plaid 401k (6666) Achillion Pharmaceuticals Inc. ACHN 1 2.11 2.11
Plaid IRA (5555) Nflx Feb 01'18 $355 Call NFLX180201C00355000 10000 0.01 110.00plaid investments transactions --start-date 2026-04-23DATE NAME TICKER TYPE QUANTITY AMOUNT ACCOUNT
2026-04-24 BUY Achillion Pharmaceuticals Inc. ACHN buy 0.520877874205698 1.10 Plaid 401k (6666)
2026-04-23 BUY NFLX DERIVATIVE NFLX180201C00355000 buy 4211.152345617756 46.32 Plaid IRA (5555)plaid liabilitiesCredit
ACCOUNT CURRENT LIMIT MIN PAYMENT NEXT DUE LAST STATEMENT OVERDUE
Plaid Credit Card (3333) 410.00 2000.00 20.00 2020-05-28 1708.77 no
Student
ACCOUNT CURRENT MIN PAYMENT NEXT DUE RATE EXPECTED PAYOFF
Plaid Student Loan (7777) 65262.00 25.00 2019-05-28 5.25% 2032-07-28
Mortgage
ACCOUNT CURRENT NEXT PAYMENT NEXT DUE RATE TERM
Plaid Mortgage (8888) 56302.06 3141.54 2019-11-15 3.99% 30 yearJSON output for agents and scripts
All commands support the --json flag for structured, machine-readable output. This makes the CLI a natural fit for AI agents and shell scripts.
In --json mode:
stdoutcontains the primary JSON resultstderrcontains diagnostics- browser-based commands still open the browser when required
plaid balance --json{
"accounts": [
{
"account_id": "zNGwXw3...",
"name": "Plaid Checking",
"official_name": "Plaid Gold Standard 0% Interest Checking",
"type": "depository",
"subtype": "checking",
"mask": "0000",
"balances": {
"available": 100,
"current": 110,
"limit": null,
"iso_currency_code": "USD"
}
},
{
"account_id": "BpMKbK7...",
"name": "Plaid Saving",
"official_name": "Plaid Silver Standard 0.1% Interest Saving",
"type": "depository",
"subtype": "savings",
"mask": "1111",
"balances": {
"available": 200,
"current": 210,
"limit": null,
"iso_currency_code": "USD"
}
}
],
"item": {
"item_id": "...",
"institution_id": "ins_56"
}
}plaid balance --json | jq '.accounts[0].name'
"Plaid Checking"Command guide
Run plaid --help for the full command tree, or plaid <command> --help for
details on a specific command.
Access
| Command | Description |
|---|---|
plaid register | Register an account in the Dashboard |
plaid login | Log in to the Dashboard |
plaid trial | Start the Trial plan onboarding in the Dashboard |
plaid logout | Remove stored Dashboard credentials |
Products
| Command | Description |
|---|---|
plaid link | Open Link to create an Item |
plaid item list | List linked Items in the current environment |
plaid item get | Show an Item and the accounts it contains |
plaid item remove | Remove a linked Item |
plaid balance | Get balance data |
plaid transactions list | List transactions |
plaid transactions sync | Sync transactions incrementally |
plaid investments holdings | Get investments holdings |
plaid investments transactions | Get investments transactions |
plaid liabilities | Get liabilities |
plaid sandbox link | Create a Sandbox Item |
Configuration
| Command | Description |
|---|---|
plaid config | Show Plaid CLI config status |
plaid config set | Manually modify config |
plaid teams list | List available Dashboard teams |
plaid teams choose | Interactively choose the active team |
plaid keys fetch | Fetch API keys from the Dashboard |
Utilities
| Command | Description |
|---|---|
plaid feedback | Submit feedback about the CLI |
plaid help | Help about any command |
Configuration
Credentials are read with this precedence: flags > environment variables > config file.
Each environment (Sandbox, Production) stores its own credentials separately. Switching environments preserves all stored data.
# Set credentials (secret is prompted interactively)
plaid config set --client-id <your-client-id> --env sandbox
# Switch to production
plaid config set --env production
# View current config (secrets are masked)
plaid configEnvironment variables
For scripted and automated usage, credentials can be set via environment variables:
| Variable | Description |
|---|---|
PLAID_CLIENT_ID | Plaid client ID |
PLAID_SECRET | Plaid secret |
PLAID_ENV | Environment (sandbox or production) |
PLAID_ACCESS_TOKEN | Access token |
Feedback
plaid feedback "The transactions list command is great!"You can also run plaid feedback without a message to enter feedback interactively.
