For developers & agents

Statement parsing built to be called by AI agents

Bookkeeping, lending and underwriting agents are being handed real financial documents right now — and every one of them needs a clean, trustworthy read of a PDF. Ledgerary exposes the exact engine behind the site as a REST API and a hosted MCP server, so an agent calls a tool instead of hallucinating a transaction list.

Quickstart

One key, one call

Get a key at /signup (free account, no card — API access itself is a Pro+ feature), then POST a statement.

request

curl -X POST https://ledgerary.com/api/v1/extract \
  -H "Authorization: Bearer nmr_live_..." \
  -F "file=@statement.pdf"

response 200

{
  "extraction_id": "ext_9f3ac1d0",
  "status": "completed",
  "meta": { "institution": "Northgate Bank", "currency": "USD", ... },
  "transactions": [ { "date": "2026-05-02", "amount": -6.75, ... } ],
  "totals": { "debits": -1832.67, "credits": 3374.99 },
  "balance_check": "passed",
  "confidence": 0.97,
  "page_count": 2,
  "request_id": "req_9f3ac1d0"
}

Built for agents

Six things an agent needs from an API

Single-key auth

One API key unlocks the REST API and the MCP server. No OAuth dance, no per-endpoint credentials — a bearer key you generate once in Settings.

Machine-readable docs

A full reference, a spec at /api/openapi, and a plain-text summary at /llms.txt so an agent can onboard itself without a human reading a page first.

Safe by default

Anonymous calls work for a dry run, throttled per IP. Every key is scoped to your plan's rate limit, so a misbehaving agent loop can't run up an unbounded bill.

Reliable & inspectable

Errors are always structured JSON with a stable code, every response carries a request_id for tracing, and idempotency keys make retries safe. Pro+ plans get an exportable request log.

Trust surfaces on every call

Every extraction returns its balance_check against the statement's own totals plus a confidence score — so an agent can decide whether to trust a result or flag it for review, not just get a number back.

Usage-metered pricing

Priced per page, not per seat — see the machine-readable pricing endpoint or the plans page.

REST API

Every endpoint

Base URL https://ledgerary.com/api/v1. Optional for /extract and /pricing (anonymous = throttled trial, no API/MCP access on Free). Send `Authorization: Bearer nmr_live_…` (or `x-api-key`) for a Pro/Scale key.

POST

/api/v1/extract

Extract every transaction from a bank/card statement PDF — balance-checked, with a confidence score.

curl -X POST https://ledgerary.com/api/v1/extract \
  -H "Authorization: Bearer nmr_live_..." \
  -F "file=@statement.pdf"
GET

/api/v1/extractions

Pro+

List the caller's own saved extractions, newest first.

curl https://ledgerary.com/api/v1/extractions -H "Authorization: Bearer nmr_live_..."
GET

/api/v1/extractions/{id}

Pro+

Get one saved extraction with its full transaction list.

curl https://ledgerary.com/api/v1/extractions/EXTRACTION_ID -H "Authorization: Bearer nmr_live_..."
GET

/api/v1/extractions/{id}/export

Pro+

Download a saved extraction converted to Excel, CSV, JSON, QuickBooks, Xero or Sage.

curl -OJ "https://ledgerary.com/api/v1/extractions/EXTRACTION_ID/export?format=excel" -H "Authorization: Bearer nmr_live_..."
GET

/api/v1/pricing

Machine-readable pricing — plans, included pages, per-page overage, rate limits and features.

curl https://ledgerary.com/api/v1/pricing

Ledgerary is a document-conversion tool: it extracts the data already present in the files you upload. It is not accounting, tax, lending or financial advice. Automated extraction can misread low-quality scans — always review the results (Ledgerary flags a balance mismatch and a confidence score on every job) before you rely on them.

Full API reference MCP server setup

Usage-metered pricing

Priced by the page, not the seat — Pro includes 500 pages/mo then $0.10/page, Scale includes 5,000/mo then $0.05/page. See /api/v1/pricing for the machine-readable version.

See plans & quotas