Plaid CLI
Install and use the Plaid CLI to make API calls 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 the Financial Insights products — Transactions, Investments, and Liabilities. Use it to link a bank account, pull transactions, check balances, view holdings, and more, all without writing any code.
The CLI also provides commands for managing your Plaid integration directly from the terminal instead of the Plaid Dashboard — configuring API keys, searching institutions, creating webhooks, and working with Sandbox test data.
The Plaid CLI is a new tool under active development and breaking changes may occur. Use plaid feedback to report issues or suggest improvements.
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.
Linking a bank account
With the CLI configured:
plaid link createThis 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 you're done, the CLI automatically saves the access token and Item ID to your config.
Viewing your data
After linking, you can view account data immediately:
plaid accounts balance┌──────────────────┬──────────────────┬───────────┬─────────┬──────────┐
│ ACCOUNT ID │ NAME │ AVAILABLE │ CURRENT │ CURRENCY │
├──────────────────┼──────────────────┼───────────┼─────────┼──────────┤
│ V5pgAQedjxFM... │ Plaid Checking │ 100.00 │ 110.00 │ USD │
│ wj35Vp7dGNIl... │ Plaid Saving │ 200.00 │ 210.00 │ USD │
└──────────────────┴──────────────────┴───────────┴─────────┴──────────┘plaid transactions list --count 5┌────────────┬──────────────┬────────┬──────────────────────────────┬────────────────┐
│ DATE │ MERCHANT │ AMOUNT │ CATEGORY │ ACCOUNT │
├────────────┼──────────────┼────────┼──────────────────────────────┼────────────────┤
│ 2026-02-14 │ Whole Foods │ 72.15 │ Shops > Supermarkets and ... │ V5pgAQedjxFM...│
│ 2026-02-13 │ Starbucks │ 6.50 │ Food and Drink > Coffee Shop │ V5pgAQedjxFM...│
│ 2026-02-12 │ Lyft │ 18.42 │ Travel > Taxi │ V5pgAQedjxFM...│
│ 2026-02-11 │ Netflix │ 15.49 │ Recreation > Arts and ... │ V5pgAQedjxFM...│
│ 2026-02-10 │ Chevron │ 48.20 │ Travel > Gas Stations │ V5pgAQedjxFM...│
└────────────┴──────────────┴────────┴──────────────────────────────┴────────────────┘Example: Sandbox testing
The Sandbox environment allows you to test without connecting a real bank account.
# Configure sandbox credentials
plaid config set --client-id <your-client-id> --env sandbox
# You will be prompted for your sandbox secret
# Create a test Item
plaid sandbox public-token create --institution-id ins_56 --initial-products transactions
plaid link exchange <public-token>
# View test data
plaid accounts balance
plaid transactions listGet your client ID and secrets from the Keys page in the Dashboard.
JSON 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.
plaid accounts balance --json{
"accounts": [
{
"account_id": "V5pgAQedjxFMkq3bGNDlCmDR6vB8DRFa7pMkl",
"name": "Plaid Checking",
"balances": {
"available": 100.0,
"current": 110.0,
"iso_currency_code": "USD"
}
},
{
"account_id": "wj35Vp7dGNIlqK4aMWPRFxDR8rBEDRFa7dVpN",
"name": "Plaid Saving",
"balances": {
"available": 200.0,
"current": 210.0,
"iso_currency_code": "USD"
}
}
],
"item": { "item_id": "..." },
"request_id": "..."
}plaid accounts balance --json | jq '.accounts[0].name'
"Plaid Checking"Agents can discover the entire CLI by running plaid --help and plaid <command> --help. Every command, flag, and subcommand is self-documented.
Commands
Run plaid --help for the full list of commands, or plaid <command> --help for details on a specific command.
| Command | Description |
|---|---|
plaid register | Open the Dashboard signup page |
plaid login | Authenticate with the Dashboard |
plaid config set | Store API credentials |
plaid config show | Show current configuration |
plaid link create | Link a bank account via Plaid Link in the browser |
plaid link exchange <token> | Exchange a public token for an access token |
plaid accounts list | List linked accounts |
plaid accounts balance | Get real-time balances |
plaid transactions list | List transactions for a date range |
plaid transactions sync | Sync transactions incrementally (cursor-based) |
plaid investments holdings get | Get investment holdings |
plaid investments transactions get | Get investment transactions for a date range |
plaid liabilities get | Get liabilities for linked accounts |
plaid item get | Get Item details |
plaid item remove | Remove an Item |
plaid institutions search <query> | Search financial institutions by name |
plaid institutions get <id> | Get financial institution details |
plaid webhooks list | List webhooks for the active team |
plaid webhooks create | Create a webhook |
plaid sandbox public-token create | Create a Sandbox test token |
plaid feedback | Submit feedback about the CLI |
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 config showEnvironment 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.
