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 2¢ 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.