SheetLink

Three endpoints covering everything you need to build on your own bank data.

curl -X GET https://api.sheetlink.app/items \
  -H "Authorization: Bearer sl_live_xxxxxxxxxxxxxxxxxxxx"
curl -X GET "https://api.sheetlink.app/transactions?start_date=2026-01-01&end_date=2026-03-31" \
  -H "Authorization: Bearer sl_live_xxxxxxxxxxxxxxxxxxxx"
curl -X GET https://api.sheetlink.app/accounts \
  -H "Authorization: Bearer sl_live_xxxxxxxxxxxxxxxxxxxx"

Sample transaction object returned by GET /transactions:

{
  "transaction_id": "txn_abc123def456",
  "date": "2026-03-14",
  "name": "WHOLE FOODS MARKET",
  "merchant_name": "Whole Foods Market",
  "amount": 47.83,
  "iso_currency_code": "USD",
  "category": ["Food and Drink", "Groceries"],
  "payment_channel": "in store",
  "pending": false,
  "account_id": "acc_9f8e7d6c5b4a",
  "account_name": "Checking ••4242",
  "institution_name": "Chase",
  "location": {
    "city": "Austin",
    "region": "TX",
    "country": "US"
  }
}

Pull transactions nightly into your data warehouse (BigQuery, Redshift, Snowflake) using a simple cron job + API call. No Plaid webhook setup required — just poll on your schedule.

Build a spending dashboard in your preferred stack. Query /transactions, aggregate by category or merchant, and render charts in React, Grafana, or Retool — no spreadsheet required.

Run a polling script every few hours after a manual sync. Compare the latest transaction IDs against your database and trigger downstream actions on new transactions.

Feed transaction data into dbt models or Metabase. The consistent response schema means your SQL models stay stable — no reformatting each bank's export format.

Plaid Production API

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

No API access

  • 7 days of transaction history
  • Google Sheets sync
  • 1 bank connection
  • Manual sync on demand
Try Free

No API access

  • 24 months of history
  • Google Sheets + Excel add-in
  • Unlimited banks
  • Manual sync on demand
Get Pro

The SheetLink API is a REST interface that lets you query your own bank transactions, account balances, and connected institutions. It is included in the MAX tier ($10.99/mo) and accessed using an API key from your dashboard.

Plaid's production environment requires a separate production agreement and costs $500/mo or more. SheetLink handles the Plaid integration, stores your data after each manual sync, and exposes it via a simple REST API — no Plaid agreement, no per-call fees.

Generate an API key from your SheetLink dashboard. Pass it as a Bearer token in the Authorization header. For CLI headless use, run: sheetlink auth --api-key <key>.

Three endpoints: GET /items (connected banks), GET /transactions (transactions with optional date/account filters), and GET /accounts (balances for all connected accounts).

The API returns data from your most recent sync. SheetLink uses manual sync (not background access) as a privacy feature, so you need to trigger a sync via the Chrome extension, Excel add-in, or CLI before the API returns current data.

API access is included in the MAX tier at $10.99/mo or $99/year. Free and Pro tiers do not include API access.

Last updated: April 2026