Bank Transactions API
Query your own bank transactions, balances, and connected accounts via a clean REST API. SheetLink wraps Plaid so you skip the production agreement and the $500/mo minimum. One API key — all your banks.
Chrome extension is free. API access requires MAX ($10.99/mo).
What the SheetLink API Gives You
Three endpoints covering everything you need to build on your own bank data.
Connected Banks
Returns a list of your connected Plaid items — one per bank. Includes institution name, institution ID, and the list of account IDs under each connection.
Transaction History
Returns paginated transactions with optional filters: start_date, end_date, account_id. Includes merchant name, category, amount, pending status, payment channel, and more.
Account Balances
Returns current and available balances for all connected accounts. Includes account type (checking, savings, credit), mask (last 4), and institution name.
Example API Calls
List connected banks
curl -X GET https://api.sheetlink.app/items \ -H "Authorization: Bearer sl_live_xxxxxxxxxxxxxxxxxxxx"
Fetch transactions with date filter
curl -X GET "https://api.sheetlink.app/transactions?start_date=2026-01-01&end_date=2026-03-31" \ -H "Authorization: Bearer sl_live_xxxxxxxxxxxxxxxxxxxx"
Fetch balances for all accounts
curl -X GET https://api.sheetlink.app/accounts \ -H "Authorization: Bearer sl_live_xxxxxxxxxxxxxxxxxxxx"
Response Schema
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"
}
}What Developers Build With It
Scheduled ETL Pipelines
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.
Custom Financial Dashboards
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.
Webhook-Style Polling
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.
Data Warehouse Feeds
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.
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
- ✗Must implement Plaid Link UI yourself
- ✗Handle token refresh, webhook setup
- ✗Build and maintain your own data storage
- ✗Compliance review for each use case
SheetLink REST API
- ✓$10.99/mo flat — no per-call fees
- ✓No Plaid agreement needed
- ✓One API key, three endpoints
- ✓Plaid Link handled by Chrome extension
- ✓Token management handled by SheetLink
- ✓Transaction history stored and queryable
- ✓Start querying in under 5 minutes
Pricing
Free
No API access
- ✓7 days of transaction history
- ✓Google Sheets sync
- ✓1 bank connection
- ✓Manual sync on demand
Pro
No API access
- ✓24 months of history
- ✓Google Sheets + Excel add-in
- ✓Unlimited banks
- ✓Manual sync on demand
MAX
Full API access included
- ✓Everything in Pro
- ✓REST API + API key
- ✓CLI tool (sheetlink-cli)
- ✓Postgres / SQLite / CSV / JSON output
Frequently Asked Questions
What is the SheetLink bank transactions API?
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.
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, stores your data after each manual sync, and exposes it via a simple REST API — no Plaid agreement, no per-call fees.
How do I authenticate with the SheetLink API?
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>.
What endpoints does the SheetLink API expose?
Three endpoints: GET /items (connected banks), GET /transactions (transactions with optional date/account filters), and GET /accounts (balances for all connected accounts).
Does the API work without running a manual sync first?
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.
Is the SheetLink API free?
API access is included in the MAX tier at $10.99/mo or $99/year. Free and Pro tiers do not include API access.
Start Querying Your Bank Data via API
Get MAX, generate your API key, and be querying transactions in under 5 minutes.