Plaid logo
Docs
ALL DOCS

Resources

  • Resources
  • Plaid CLI
  • MCP Server
  • Vibe coding tips
Plaid logo
Docs
Plaid.com
Log in
Get API Keys
Open nav
Close search modal
Ask Bill!
Ask Bill!
Hi! I'm Bill! You can ask me all about the Plaid API. Try asking questions like:
    Note: Bill isn't perfect. He's just a robot platypus that reads our docs for fun. You should treat his answers with the same healthy skepticism you might treat any other answer on the internet. This chat may be logged for quality and training purposes. Please don't send Bill any PII -- he's scared of intimacy. All chats with Bill are subject to Plaid's Privacy Policy.

    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.

    Install via Homebrew
    brew install plaid/plaid-cli/plaid
    Update to the latest version
    brew update && brew upgrade plaid
    Verify the installation
    plaid version

    Getting started

    Creating an account

    If you don't have a Plaid account yet, sign up directly from the CLI:

    Sign up for a Plaid account
    plaid register

    This opens the Dashboard signup page in your browser. After creating and verifying your account, log in:

    Log in to the Dashboard
    plaid login

    This 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:

    Link a bank account
    plaid link create

    This 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:

    Check account balances
    plaid accounts balance
    Sample output
    ┌──────────────────┬──────────────────┬───────────┬─────────┬──────────┐
    │ ACCOUNT ID       │ NAME             │ AVAILABLE │ CURRENT │ CURRENCY │
    ├──────────────────┼──────────────────┼───────────┼─────────┼──────────┤
    │ V5pgAQedjxFM...  │ Plaid Checking   │    100.00 │  110.00 │ USD      │
    │ wj35Vp7dGNIl...  │ Plaid Saving     │    200.00 │  210.00 │ USD      │
    └──────────────────┴──────────────────┴───────────┴─────────┴──────────┘
    List recent transactions
    plaid transactions list --count 5
    Sample output
    ┌────────────┬──────────────┬────────┬──────────────────────────────┬────────────────┐
    │ 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.

    Sandbox testing workflow
    # 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 list

    Get 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.

    Get balances as JSON
    plaid accounts balance --json
    Sample output
    {
      "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": "..."
    }
    Pipe JSON output to other tools
    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.

    CommandDescription
    plaid registerOpen the Dashboard signup page
    plaid loginAuthenticate with the Dashboard
    plaid config setStore API credentials
    plaid config showShow current configuration
    plaid link createLink a bank account via Plaid Link in the browser
    plaid link exchange <token>Exchange a public token for an access token
    plaid accounts listList linked accounts
    plaid accounts balanceGet real-time balances
    plaid transactions listList transactions for a date range
    plaid transactions syncSync transactions incrementally (cursor-based)
    plaid investments holdings getGet investment holdings
    plaid investments transactions getGet investment transactions for a date range
    plaid liabilities getGet liabilities for linked accounts
    plaid item getGet Item details
    plaid item removeRemove an Item
    plaid institutions search <query>Search financial institutions by name
    plaid institutions get <id>Get financial institution details
    plaid webhooks listList webhooks for the active team
    plaid webhooks createCreate a webhook
    plaid sandbox public-token createCreate a Sandbox test token
    plaid feedbackSubmit 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.

    Managing credentials
    # 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 show
    Environment variables

    For scripted and automated usage, credentials can be set via environment variables:

    VariableDescription
    PLAID_CLIENT_IDPlaid client ID
    PLAID_SECRETPlaid secret
    PLAID_ENVEnvironment (sandbox or production)
    PLAID_ACCESS_TOKENAccess token

    Feedback

    Submit feedback, bug reports, or feature requests
    plaid feedback "The transactions list command is great!"

    You can also run plaid feedback without a message to enter feedback interactively.

    Developer community
    GitHub
    GitHub
    Stack Overflow
    Stack Overflow
    YouTube
    YouTube
    Discord
    Discord