Parsli documentation

Start here

What Parsli does

Parsli reads documents and returns structured data — no templates to draw, no fixed layouts, no rules to maintain.


You have documents arriving — invoices from forty different suppliers, bank statements, delivery notes, expense receipts photographed in a car park. The information you need is in them. Getting it out means someone typing it into a spreadsheet.

Parsli does that part.

What actually happens

You send a document. Parsli's parsing engine reads it the way a person would — it looks at the whole page, understands that the number in the bottom-right is the total and the table in the middle is line items, and returns that as data.

json
{
  "invoice_number": "INV-2026-0417",
  "vendor_name": "Northgate Supplies",
  "total_amount": 1284.50,
  "due_date": "2026-09-01",
  "line_items": [
    { "description": "Steel brackets", "quantity": 40, "unit_price": 12.5, "total": 500.0 },
    { "description": "Delivery", "quantity": 1, "unit_price": 784.5, "total": 784.5 }
  ]
}

From there it goes wherever you need it — a Google Sheet, QuickBooks, Xero, Zoho Books, a Zap, or your own system over the API.

What makes this different from OCR

Traditional OCR tells you what characters are on a page. It has no idea which of those characters is the invoice total, so you end up writing rules: "the total is the number 40 pixels below the word TOTAL". Then a supplier changes their template and the rule breaks silently.

Parsli works from meaning rather than position. You say you want the total including tax; it finds the total including tax, whether that sits top-right on one invoice and mid-page on another.

The practical consequence: you do not need one setup per supplier. One Parser handles invoices in whatever shape they arrive.

What it reads

Digital PDFs, scanned PDFs, photographs, screenshots, Word files, spreadsheets, and plain text. Scans and photos are handled directly — there is no separate OCR step to run first. Handwriting works, with the usual caveat that legibility matters.

What it will not do

Worth knowing before you build on it:

  • It does not silently guess. If a value is not in the document, the engine is built to leave it empty rather than invent something plausible. A blank field is information; a fabricated one is a liability.
  • It is not a matching engine. Parsli extracts what is in a document. Reconciling that against a purchase order or a ledger is your system's job, or a job for a premium workspace.
  • It does not need a fixed layout, but it does need the information to be there. If the due date is not printed on the invoice, nothing can extract it.

Tip: The single biggest driver of accuracy is being specific about what you want. "Amount" is ambiguous on a document with a subtotal, a tax line, and a total. "Total including tax" is not. See defining what to extract.

Where to go next

Do your first extraction — it takes about five minutes and uses a document you already have. Then read how Parsli works when you want to understand the pieces properly.

Something here wrong or missing? Tell us — we treat it as a bug.