Schema-driven extraction
Define what you want in JSON Schema; the LLM returns data shaped to it. Change the schema without redeploying.
Use case · Expense management & receipts
AI expense tools (Pleo, Brex, Ramp, Spendesk peers and the next 14 of you) need to ingest both individual receipts and bank/card statements at scale. The parsing problem splits into two: receipts (PDF, JPG, HEIC) for individual purchases, and consolidated statements for the month-end reconciliation. parsr handles both via /v1/parse for receipts (doc_type='bank_statement' for statements; receipt support coming) and /v1/extract with a custom JSON Schema for receipt-specific fields like VAT lines, expense categories, and project codes. The schema-driven extraction means you can iterate on what you capture without redeploying the parsing service — change the schema, the LLM extracts the new shape. Confidence scores let your auto-categorization agent decide when to ask the user vs when to auto-tag.
Workflow
POST /v1/extract with a JSON Schema describing your expense model: vendor, total, vat_rate, project_code, category. The LLM returns data shaped to YOUR schema.
Each extracted field has a confidence ∈ [0,1]. Auto-tag when category confidence > 0.8; surface to user otherwise.
Parse the month-end card statement via /v1/parse. Match each transaction to a captured receipt by amount + date + vendor.
Schema
{
"type": "object",
"properties": {
"vendor": {
"type": "string",
"description": "The merchant or vendor name printed on the receipt."
},
"total": {
"type": "object",
"properties": {
"amount": { "type": "string", "description": "Total amount as decimal string." },
"currency": { "type": "string", "description": "ISO 4217 currency code." }
}
},
"vat_rate": { "type": "number", "description": "VAT percentage (e.g. 21)." },
"category": { "type": "string", "enum": ["meals","transport","supplies","software","other"] },
"project_code": { "type": "string" }
},
"required": ["vendor","total"]
}{
"schema_version": "extract.v1",
"result": {
"vendor": "Café Lulu",
"total": { "amount": "12.40", "currency": "EUR" },
"vat_rate": 21,
"category": "meals",
"project_code": "PRJ-2026-Q2-DEV"
}
}Why parsr fits this
Define what you want in JSON Schema; the LLM returns data shaped to it. Change the schema without redeploying.
Per-field confidence lets your agent decide when to auto-categorize and when to ask the user.
Foreign-currency receipts return both the original amount and (optionally) the converted amount; you control via your schema.
Ship a prototype on the free tier in an afternoon.
Start free