Bank statement API

Upload a PDF, get structured JSON back — transactions, categories, fraud signals, or an accounting-ready export file. One key, six endpoints, no infrastructure to run yourself.

Get your API key
  • Files deleted after extraction
  • Bearer key auth, no OAuth flow
  • Built for fintech, accounting, and lending platforms

One request, structured data back

request.sh
curl -X POST https://mybankstatementanalysis.com/api/extract-transactions \
  -H "Authorization: Bearer mbsa_YOUR_KEY" \
  -F "file=@statement.pdf"

// Response
{
  "transactions": [
    { "date": "2026-01-15", "description": "WHOLE FOODS", "amount": -87.32, "category": "Groceries" },
    { "date": "2026-01-14", "description": "PAYROLL DEPOSIT", "amount": 3200.00, "category": "Income" }
  ],
  "statementMonth": "2026-01",
  "fileName": "statement.pdf",
  "pageCount": 4
}

Six endpoints, one key

Not just transaction parsing — fraud detection and redaction are the same API, same auth header, same file upload pattern.

Extract transactions

POST /api/extract-transactions

The single-call endpoint most integrations start with — upload a PDF, get transactions back as JSON in the response body.

Full analysis

POST /api/analyze

Runs the same pipeline the web app uses — categorization, recurring-charge detection, income/spend summary — and returns an analysis ID.

Export transactions

POST /api/export/{format}

csv, excel, qif, ofx, qbo, or iif — upload once, get the file for whichever accounting format your pipeline needs.

Fraud detection

POST /api/detect-fake

Authenticity score plus explicit red/green flags — for underwriting or tenant-screening flows that need to catch edited PDFs.

Redact statement

POST /api/redact-statement

Strips account numbers, names, and addresses, returns a redacted PDF — for sharing statements without exposing account identity.

AI financial advisor

POST /api/chat

Streamed chat against a specific analysis — ask questions about the data instead of writing queries against it yourself.

Full request/response reference and copy-paste examples for each endpoint on /developers.

Authentication

Every endpoint reads the same header — no OAuth flow, no key rotation requirement.

Authorization: Bearer mbsa_...

Rate limits

Usage counts against your plan's page allowance per billing cycle.

Business ($49/mo)
500 pages/cycle
Overage
$0.08/page
Over limit
402 or 429 + limitReached: true

Why teams build on this instead of their own pipeline

Parsing bank statements yourself means three separate systems: a PDF text-extraction layer, an OCR pipeline for scanned documents, and a classification model that actually understands financial transaction descriptions. Each one is its own maintenance burden before you've written a line of product code.

This API replaces all three with a single HTTP call. Send a PDF to /api/extract-transactions, get back structured JSON with every transaction extracted and categorized. Digital and scanned PDFs both work — OCR runs automatically when the document needs it.

The endpoints beyond parsing are the part a generic OCR API can't give you: fraud/tampering detection for underwriting and tenant screening, and redaction for sharing statements without exposing account identity. Building either from scratch is a project on its own — here it's the same auth header and file upload as everything else.

When the API is the right choice

Fintech apps

Categorize and surface spending insight inside your own product UI instead of asking users to leave it.

Loan & tenant underwriting

Pull income, cash flow, and NSF patterns from applicant statements — plus a fraud check on the same document.

Accounting platforms

Import client statements without manual data entry; export straight to your ledger's format.

One-off use

If you only need to check a single statement occasionally, the web app or the free converter pages are simpler than integrating an API.

Secure

Your PDF is deleted right after analysis — we don't keep it. Everything is encrypted in transit.

Private

We never sell or share your financial data. Anonymous uploads are deleted after 7 days.

Clear pricing

No hidden fees and no account needed. Your first upload is free, once, not every month.

Bank statement analyzer pricing

Your first upload is free. Pay once for a single statement, or subscribe if you have many.

Pass

$7once

One statement · no subscription

  • 1 upload, up to 100 pages
  • Every transaction, categorized
  • Subscriptions and savings found
  • Report kept for a year
Try it free first

Pro

Most popular
$12/ month

$144 billed yearly · save 37%

  • Everything in Pass, plus
  • 100 pages every month (~20 statements)
  • Reports kept for as long as you want
  • Priority support

Business

$31/ month

$372 billed yearly · save 37%

  • Everything in Pro, plus
  • 500 pages every month (~100 statements)
  • Never blocked: $0.08 per extra page
  • REST API with your own keys
Your file stays privateSecure checkoutCancel subscriptions anytimeInvoice with every paymentMoney-back guarantee

Bank statement API — FAQ

What does a single API call actually return?

POST /api/extract-transactions with a PDF returns JSON in the response body: transactions (date, description, amount, category per row), statementMonth, fileName, and pageCount. No polling, no webhook — one request, one response.

How do I get an API key?

API access is included with the Business plan ($49/mo, 500 pages/cycle). Sign in, open /developers, and create a key instantly — no approval process, no sales call. The key works immediately at your plan's limits.

How is a request authenticated?

Bearer token in the Authorization header: Authorization: Bearer mbsa_.... The same header works across every endpoint — analysis, export, fraud detection, redaction.

Which banks and formats are supported?

Any bank worldwide that produces a PDF statement — digital or scanned. OCR runs automatically for scanned documents. Max file size is 10MB per upload; formats accepted are PDF, JPG, and PNG.

What happens when I hit a rate limit?

The response includes { limitReached: true } with a 402 or 429 status, depending on plan and endpoint. Usage counts against your plan's page allowance per billing cycle; Business overage is $0.08/page beyond the 500-page allowance.

Can I export straight to an accounting format instead of JSON?

Yes — POST /api/export/{format} with format as csv, excel, qif, ofx, qbo, or iif returns the file directly. Same auth, same file upload, different endpoint.

Is uploaded data stored?

No. Files are sent over HTTPS and deleted right after extraction — we don't keep them. Only the structured data in the API response is ever produced.

Something else on your mind? Write to contact@mybankstatementanalysis.com.

Get an API key. Ship the integration today.

Business plan, 500 pages/cycle. Create a key in your dashboard — no approval process, no sales call.