parsr.

For AI bookkeeping & finance-automation agents

Stop building parser pipelines. Drop in one tool call.

parsr is the financial-document API for the agents that didn't exist two years ago — Pilot, Booke.ai, Lindy, Candis, and the next 14 of them. Bank statements, payslips, receipts, and brokerage reports go in as PDFs; structured JSON with confidence scores comes out, ready for your reasoning loop.

Why this fits an agent stack

Built for the way agents call tools

01 / Tool-typed

Native MCP, LangChain, LlamaIndex

Three transports for the same five tools. The agent doesn't know — and shouldn't care — which one it's calling on. Drop the toolkit in, list the tools, agent picks the right one by description.

02 / Schema-validated

JSON in, JSON out, no parsing

Every response conforms to a versioned schema (bank_statement.v2 etc.). No string parsing, no fragile prompts, no 'and then the LLM said'. Pydantic-deserialize directly into your domain model.

03 / Confidence-first

Field-level confidence + bounding boxes

Every extracted field carries `confidence ∈ [0,1]` and a normalized bounding box. Your agent decides on its own when to escalate to human review — `if conf < 0.8: escalate()`.

04 / Audit-ready

Balance-chain validation built in

Bank-statement responses include a structured `validation.balance_chain` (valid, computed_closing, declared_closing, diff). One field tells you whether the parse adds up, no separate validator.

The integration

Three lines, one toolkit

One import, one toolkit constructor, four ready-to-go tools. Every tool call goes through the regional API — same auth, quota, idempotency, and rate limits as direct HTTPS.

langchain_parsr / agent.pypython
from langchain_parsr import ParsrToolkit
from langchain_openai import ChatOpenAI
from langgraph.prebuilt import create_react_agent

tools = ParsrToolkit.from_env().get_tools()
agent = create_react_agent(ChatOpenAI(model="gpt-4o"), tools)

result = await agent.ainvoke({
    "messages": [(
        "user",
        "Parse this bank statement and tell me the largest expense: "
        "https://example.com/april.pdf"
    )]
})
print(result["messages"][-1].content)

What agent operators want, that we ship

The features your reviewers ask about

  • EU residency by default (DORA / NIS2 / EU Data Act compliant)
  • Region-bound API keys (sk_eu_… vs sk_us_…) — no accidental cross-border traffic
  • HMAC-signed webhooks with replay-window protection
  • Idempotency-Key header for retry safety
  • Async + 60-second sync mode (`?wait=60`) — pick the right one per call
  • Sandbox keys (sk_*_test_…) return mock JSON without burning quota
  • 30-day file-hash cache (cached re-uploads don't bill, don't count toward quota)
  • Self-serve from €29/mo — no procurement cycle

200 free pages. No credit card. No sales call.

Put it in your agent in an afternoon. If it doesn't earn its keep, we'd rather you walk away than be locked in.

Start building