Pactus API turns documents into structured data.

Draw the workflow in a visual editor. Define the fields to extract, the rules to check and the path each document takes. Your application sends a file and gets JSON back.

How an invoice moves through a workflow

The first node extracts the supplier, total and due date. A filter sends invoices over 10,000 EUR to a second node that extracts the line items. Every other invoice is returned straight away.

Extract header fields

Reads the supplier, total and due date. Each value links to its place on the page.

supplierNovák Stavby s.r.o.
total18,330.00 EUR
due_date2024-05-12

Filter large invoices

Checks the total. Invoices over 10,000 EUR go on to the next node.

totalis greater than10,000 EUR
This invoice18,330.00 EUR
yesContinues to Line items
noReturns straight away

Extract line items

Reads every row of the item table.

itemqtyprice
Concrete C25/3018980.00
Delivery1690.00
Sum of rows18,330.00 EUR

Your application gets one JSON document

The response holds every value the workflow extracted. The same body can be sent to a webhook.

POST /v1/workflows/incoming-invoices/runs
{
  "workflow": "incoming-invoices",
  "supplier": "Novák Stavby s.r.o.",
  "total": { "amount": 18330.00, "currency": "EUR" },
  "due_date": "2024-05-12",
  "line_items": [
    { "item": "Concrete", "qty": 18, "price": 980.00 },
    { "item": "Delivery", "qty": 1, "price": 690.00 }
  ]
}

Why Pactus API

Why choose Pactus instead of a language model API?

  • One endpoint to integrate

    You send a document and get structured data back. We handle the models, configuration, output format and updates.

  • Visual workflow builder

    Easily organize your data extraction pipeline in a visual workflow editor.

  • Testing before integration

    Play around with your workflow on your own documents and see the result before you write any code. When you change the schema, you see the effect right away.

  • Cost known in advance

    You pay with prepaid credits, and every test run shows how many credits a document uses. You know what a thousand documents will cost before you process them.

  • Reliable output

    We optimize the data extraction for cost, accuracy and adherence to your JSON schema. We use our own OCR models to read even poor scans and handwriting reliably.

  • Traceable values

    Every extracted value comes with its page number and position in the document. You can check any value against the original document.

Pricing

You pay a fixed price per extracted page. The price is adjusted by the number of fields and by your choice of language model.

Credits per page

Here's how we calculate the price per page.

page=OCR+model×(1 + 0.2 × fields)
  • OCR is charged only for scanned pages. Pages that were already read are not charged again.
  • model is the price of the language model you choose.
  • fields is the number of fields you extract. Every field adds 20% to the price.

Example

A 2-page invoice goes through OCR and three values are extracted, "customer", "date" and "price".

OCR$0.001/page
Extraction, 3 fields*$0.002 × (1 + 0.2 × 3) = $0.0032
Per page$0.0042
2 pages$0.0084

* Price with GPT-5.6-luna as the extraction model.

Enterprise

For companies whose documents have to stay on their own infrastructure.

  • Deployment on your own infrastructure
  • Runs on a local open-weight language model
  • Annual license instead of per-page pricing
  • Documents never leave your network
  • Dedicated support
Contact sales

Build your first workflow

Sign up, upload a few example documents and see Pactus in action.