Your Bank Account, Your API

You automate your deploys, your tests, your dotfiles. Your bank account is the last thing in your life that still makes you export a CSV. Shim.Finance fixes that — your own transactions, balances, and account data, available via a clean API in minutes.

Connect your bank accounts once. Then query your transactions in a for loop, pipe your spending into Notion, set up balance alerts in Slack, or build the personal finance dashboard you've always wanted — exactly the way you want it. No Plaid account, no OAuth setup, no infrastructure.

10k+ Institutions
24mo Transaction History
AES-256 Your-Key Encryption

How It Works

Get access to your financial data in three simple steps.

1

Sign Up

Create your account.

2

Link

Connect your bank accounts securely through Plaid.

3

Use

Access your data via API, direct download, or integrate with our SDK.

What You Can Build in an Afternoon

Three real things developers ship the day they get an API key. All written against the actual SDK.

Daily Spending Digest

A Slack bot that posts yesterday's total spending every morning. Run it as a cron job.

const { data } = await transactionsList({
  query: { startDate: '2026-04-29', endDate: '2026-04-29' }
})
const total = data.data.reduce((s, t) => s + t.amount, 0)
await slack.send(`Yesterday: $${total.toFixed(2)}`)

Spending Dashboard

A personal dashboard that shows your monthly spending by category — built exactly how you want it, not how an app vendor decided.

const { data } = await transactionsList({
  query: { startDate: '2026-04-01' }
})
const byCategory = Object.groupBy(
  data.data, t => t.category?.primary ?? 'OTHER'
)

Notion / Obsidian Sync

Auto-populate a Notion database with every new transaction. Sync hourly via cron — only fetch what changed.

const { data } = await transactionsSync({
  query: { cursor: lastCursor }
})
for (const tx of data.added) await notion.pages.create(formatTx(tx))
saveCursor(data.cursor)

Built for Developers

Everything you need to make your own financial data programmable — without the plumbing.

Unified API

One consistent interface for thousands of financial institutions. Query Chase the same way you query a credit union — no bank-specific adapter code.

Powered by Plaid

Built on top of Plaid's infrastructure — so you get access to 10,000+ institutions without needing a Plaid developer account, app approval, or OAuth implementation. We handle all of that. You just get the data.

Real-Time Sync

Webhooks push transaction data the moment it happens. No polling, no delays, no stale data.

Your Data, Encrypted to You

Your financial data is encrypted with a key that only you control. It is never stored in plaintext. Nobody at Shim.Finance can read your transactions — only you can.

Type-Safe SDKs

First-class TypeScript support with auto-generated types. Catch errors at compile time, not runtime.

Download Anytime

Export your complete transaction history whenever you want. CSV, JSON—your data belongs to you.

Ready to Try It?

Shim.Finance is in early beta. It's free, it works, and we're actively building. Spots are limited while we scale.

Create Free Account

Simple, Powerful Integration

Get up and running in minutes. Our SDK handles authentication, pagination, and error handling so you can focus on building.

Auto-generated TypeScript types — full IDE autocomplete
Cursor-based sync — fetch only what changed
OpenAPI spec — generate clients in any language
Works in Node, browsers, and edge runtimes
import { client, transactionsList } from '@shim-finance/typescript-sdk'

client.setConfig({
  headers: { Authorization: `Bearer ${process.env.SHIM_KEY}` }
})

// How much did I spend on food this month?
const { data } = await transactionsList({
  query: { startDate: '2026-04-01' }
})

const dining = data.data.filter(
  (t) => t.category?.primary === 'FOOD_AND_DRINK'
)
const total = dining.reduce((sum, t) => sum + t.amount, 0)

console.log(`Spent $${total.toFixed(2)} dining out this month`)
// → Spent $340.82 dining out this month

Works With Your Stack

Public OpenAPI spec to generate a client in your stack of choice. We provide a TypeScript SDK to get started fast.

OpenAPI 3.0 TypeScript SDK

Simple Pricing

Free while in beta. No credit card required.

Beta
$0 /month

Free while we build

  • Up to 3 linked accounts
  • 24 months transaction history
  • Full API access
  • CSV & JSON exports
  • Per-user AES-256 encryption
Start Free

Limited beta spots. Need more accounts? Contact us.

Beta users get founding-member pricing when we launch paid plans.

Frequently Asked Questions

Common questions about security, data, and how Shim.Finance works.

Who sees my banking password?
Nobody at Shim.Finance ever sees your banking credentials. When you link an account, you authenticate directly with your bank through Plaid’s secure portal. Your username and password never touch our servers.
Does Shim.Finance store my financial data?
Yes, we store your transaction data so you can query it through the API. Every user gets their own encrypted database, so your data is never stored in plaintext. You can delete your data at any time.
Can Shim.Finance move money or make transactions?
No. Shim.Finance has read-only access to your account data. We cannot initiate transfers, payments, or any other transactions. We can only read balances and transaction history.
Can Shim.Finance employees see my transactions?
Your transactions are only in cleartext at two points: when received from Plaid before encryption, and when decrypted to serve to you via the API. At rest, your data is encrypted with a key unique to your account. Shim.Finance employees do not access your transaction data unless explicitly authorized. We never sell or share your data with third parties.
How is my data encrypted?
Each user gets their own dedicated encrypted database with a unique key derived from an AWS KMS-protected root key. Your financial data is encrypted with AES-256-GCM before it ever reaches storage. Even if someone accessed the database file directly, they’d see only ciphertext.
What is Shim.Finance?
Shim.Finance gives you a clean, programmatic API to access your own banking data—balances, transactions, account info. Think of it as a developer-friendly layer on top of your bank, powered by Plaid.
What banks and institutions are supported?
We support over 10,000 financial institutions across the US and Canada through Plaid, including major banks, credit unions, and brokerages.
What data can I access through the API?
Account balances, transaction history (amounts, dates, merchants, categories), and account metadata. Transactions are recorded from the moment you link, with up to 24 months of historical data backfilled. All available via REST API or our TypeScript SDK.
Is there a free tier?
Shim.Finance is completely free during the beta. No credit card required. You can link up to 3 accounts and get full API access.
Can I export or download my data?
We’re building CSV and JSON export so you’ll be able to download your complete transaction history. Your data belongs to you.
What happens to my data if I cancel?
Once you delete your account, we destroy your encryption keys and purge all associated data. Nothing is retained.
Why not just use Plaid directly?
Getting personal Plaid access requires creating a developer account, applying for production access (which involves a review process), building your own OAuth redirect flow, managing access tokens, setting up and handling webhooks, and dealing with rate limiting. For a personal project, that’s a weekend of plumbing before you write a single line of the thing you actually wanted to build. Shim.Finance gives you an API key and you’re reading your own transactions within 10 minutes.
Do I need to be a developer to use Shim.Finance?
Yes — for now, Shim.Finance is built specifically for developers. You need to be comfortable making API calls and reading JSON. You do not need to be a senior engineer — if you have ever written a fetch() call or used Postman, you have everything you need to get started. The TypeScript SDK includes full types and autocompletion, and the quickstart gets you to your first transaction query in under 10 minutes.

Get Started for Free

We're in beta — free while we build, limited spots available. Sign up and start using the API today.

Create Free Account