Integration guides

Bank transactions API

Query your own bank transactions, balances and connected accounts from the command line. The SheetLink CLI returns them as JSON, and a Max API key lets your scripts run it unattended, with no Plaid production agreement and no $500/mo minimum.

Free to install. CLI automation, Postgres and SQLite come with Max.

The SheetLink CLI syncs your transactions into Postgres or SQLite with Max.

What the SheetLink CLI gives you

There’s no REST API to call. Two commands cover everything you need to build on your own bank data.

Connected banks

sheetlink items lists your connected banks (Plaid items), with each one’s item_id, its accounts and when it last synced.

Transaction history

sheetlink sync prints transactions as JSON, with optional --from, --to and --item filters. Includes merchant name, category, amount, pending status, payment channel and more.

Account balances

The same JSON includes every connected account, with its current and available balances, type (checking, savings, credit), mask (last 4) and institution.

Example commands

Run sheetlink auth once to sign in, or set a Max API key (SHEETLINK_API_KEY=sl_...) for scripts that run unattended.

List connected banks

sheetlink items

Fetch transactions with a date filter

sheetlink sync --from 2026-01-01 --to 2026-03-31 > transactions.json

Fetch balances for all accounts

sheetlink sync | jq '.items[].accounts[] | {name, current_balance, available_balance}'

Response schema

The JSON is grouped by bank: a top-level items array, each with accounts and transactions. A sample transaction object, shortened:

{
  "transaction_id": "txn_abc123def456",
  "account_id": "acc_9f8e7d6c5b4a",
  "account_name": "Checking",
  "account_mask": "4242",
  "date": "2026-03-14",
  "description_raw": "WHOLE FOODS MARKET",
  "merchant_name": "Whole Foods Market",
  "amount": 47.83,
  "iso_currency_code": "USD",
  "pending": false,
  "payment_channel": "in store",
  "personal_finance_category": {
    "primary": "FOOD_AND_DRINK",
    "detailed": "FOOD_AND_DRINK_GROCERIES"
  },
  "location": {
    "city": "Austin",
    "region": "TX",
    "country": "US"
  },
  "source_institution": "Chase"
}

amount follows Plaid’s sign: positive is money out, negative is money in. The CSV, Postgres and SQLite outputs flatten these fields into columns such as category_primary and location_city.

What developers build with it

Scheduled ETL pipelines

Pull transactions nightly into your data warehouse (BigQuery, Redshift, Snowflake) with a cron job and a Max API key. No Plaid webhook setup required: just run it on your schedule.

Custom financial dashboards

Build a spending dashboard in your preferred stack. Pipe sheetlink sync into it, aggregate by category or merchant, and render charts in React, Grafana or Retool. No spreadsheet required.

Webhook-style polling

Run a script after each scheduled sync. Compare the latest transaction IDs against your database and trigger downstream actions on new transactions.

Data warehouse feeds

Feed transaction data into dbt models or Metabase. The consistent schema keeps your SQL models stable, with no reformatting of each bank’s export format.

Why not build on Plaid directly?

Plaid production API

  • $500+/mo minimum for production access
  • Separate production agreement required
  • Per-transaction and per-item pricing
  • You implement the Plaid Link UI yourself
  • You handle token refresh and webhook setup
  • You build and maintain your own data storage
  • Compliance review for each use case

SheetLink CLI automation with Max

  • $10.99/mo flat, no per-call fees
  • No Plaid agreement needed
  • One API key, two commands
  • Plaid Link handled by SheetLink (extension, Excel add-in or dashboard)
  • Plaid tokens managed (and encrypted at rest) by SheetLink
  • Up to 2 years of history, fetched fresh on each sync
  • One install command: npm install -g sheetlink

Pricing

PlanPriceWhat you get
Free$01 bank, your last 7 days, Google Sheets
Pro$4.99/mo or $39.99/yrEvery bank you connect, up to 2 years of history, Google Sheets and Excel, priority support
Max$10.99/mo or $99/yrEverything in Pro, plus API keys and CLI automation, Postgres and SQLite output, investments, and Claude

API keys come with Max. Compare every plan ›

Questions

What is the SheetLink bank transactions API?

There’s no separate REST API to call. The SheetLink CLI is the programmatic way in: sheetlink sync returns your own transactions and account balances as JSON (or CSV, or Postgres and SQLite with Max), and sheetlink items lists your connected banks. Max adds API keys, so the CLI can run unattended from scripts, cron or CI, and so Claude can read your data through the SheetLink MCP server.

Why use SheetLink instead of building on Plaid directly?

Plaid’s production environment requires a separate production agreement and costs $500/mo or more. SheetLink handles the Plaid integration and gives you your data through the CLI, with no Plaid agreement and no per-call fees. SheetLink doesn’t keep your transactions: each sync fetches them through Plaid and passes them to you.

How do I authenticate with the SheetLink API?

Create an API key in your SheetLink dashboard (API keys are part of Max). Save it with sheetlink auth --api-key sl_..., or set the SHEETLINK_API_KEY environment variable to keep it out of your shell history. The CLI sends it as a bearer token over HTTPS.

What endpoints does the SheetLink API expose?

None that you call directly: there’s no public REST API. Use the CLI instead. sheetlink items lists your connected banks, and sheetlink sync returns transactions and account balances as JSON, with --from and --to for a date range and --item for a single bank.

Does the API work without running a manual sync first?

Yes. Once a bank is connected (in the Chrome extension, the Excel add-in or your dashboard), every sheetlink sync fetches its latest transactions through Plaid at that moment. You don’t need to sync in Google Sheets or Excel first, and SheetLink doesn’t keep a copy of your transactions to serve later.

Is the SheetLink API free?

API keys come with Max, at $10.99 a month or $99 a year. Free and Pro don’t include API keys.

See it work.

Schedule sheetlink sync and send transactions to Postgres or SQLite. CLI automation is part of Max. About the CLI ›

Keep reading.

Your bank data, one command away.

Free to install. CLI automation, Postgres and SQLite come with Max.