Statements2Excel

API

One endpoint,
the same page credits.

POST a statement PDF, get reconciled rows back as JSON. It spends the credits on your key — there is no separate API plan and no second balance to keep topped up.

Spends your page credits· from a page· no separate API plan, no free tier

All pricing →

Convert

POST /v1/convert

Multipart, one file per call. format is ignored — the API always answers with JSON, because a program wants the rows, not a spreadsheet. Pass password for an encrypted PDF and categorise=on for the expense-category field.

curl -X POST https://statements2excel.com/v1/convert \
  -H "Authorization: Bearer $S2E_KEY" \
  -F "file=@january.pdf" \
  -F "categorise=on"
{
  "pages": 3,
  "pages_left": 397,
  "summary": { "transactions": 42, "overall_confidence": 0.98, "needs_review": 1 },
  "opening_balance": "1250.50",
  "closing_balance": "2892.62",
  "transactions": [
    { "date": "2025-12-03", "description": "Tesco Stores 4821",
      "amount": "-42.10", "balance": "1208.40", "currency": "GBP",
      "page": 1, "confidence": 1.0, "flags": "", "category": "Groceries" }
  ],
  "warnings": []
}

Balance

GET /v1/me

Pages remaining on the key, and the plan that granted them. Cheap enough to call before a batch.

curl https://statements2excel.com/v1/me -H "Authorization: Bearer $S2E_KEY"

Errors

What comes back when it doesn't work

  • 401 — the key is missing, unknown or revoked.
  • 402 — not enough pages left. The message names how many the file needs and how many the key has; nothing is charged.
  • 413 — the file is over 300 pages.
  • 422 — we couldn't read it as a statement. The pages are credited back.
  • 429 — rate limited. Retry with a backoff.

Questions

The ones that decide whether you integrate

What does it cost?

The same as everything else — it spends the page credits on your key. There's no separate API plan and no second balance to keep topped up. Pricing.

How do I get a key?

Buy any pack or plan, open the credit-key page from your receipt, and mint a key there. It's shown once and stored only as a hash — we can't recover it, so keep it.

What if a key leaks?

Revoke from the same page. Because keys are stored hashed we can't tell you which one leaked, so revoking rolls every key on that balance — mint a fresh one after.

Is there a free tier?

No. The browser free tier exists so a person can look at the extracted rows before paying; a program can't, so a free API tier would just be free conversions.

What happens if a conversion fails?

The pages are credited back. You are never charged for a statement we couldn't read.