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.
For AI bookkeeping & finance-automation agents
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
01 / Tool-typed
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
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
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
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
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.
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
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