How it works
- Define a structure in the Matil Dashboard. For example, an invoice structure might have fields like
invoice_number,invoice_date,total, andlines. - Publish a version. Structures use a draft/publish workflow. Edit the draft, then publish when ready.
- Create a deployment that points to that structure version.
- Send documents via the API. Matil extracts the data and returns structured JSON.
Example
If your structure defines fields for an invoice, the extracteddata in the response looks like:
Pricing and pages
Custom structures are billed at 0.10 € per page. A “page” depends on the document type:
For example, a 3-page PDF costs 0.30 €. A spreadsheet with 4,500 cells counts as 3 pages (0.30 €).
Marketplace structures have their own fixed price per page, shown on each structure’s page in the Marketplace.
Field types
Data fields
These are the fields that produce values in the output:Structural fields
These organize extraction but don’t produce keys in the output:Groups
Groups let you organize fields into separate extraction units that can run in parallel, improving performance for complex structures. A structure with groups:{/path} placeholders that reference data from other groups.
Computed fields
Any field can be marked asis_computed: true. Instead of being extracted by the LLM, its value is calculated from an expression after extraction. Useful for derived values like line totals.
Validations
Structures can include validation rules that verify extracted data. When a validation fails, it can trigger programmatic corrections (e.g., recalculate a field) or ask the LLM to re-extract specific fields. When a field fails validation, the response status iscompleted_with_errors and includes an errors array:
Versioning
Structures use a draft/publish workflow:- Draft — Your working copy. Edit freely without affecting live processing.
- Published version — A snapshot that deployments can point to. Once published, a version is immutable.
Next steps
Deployments
Connect your structure to a deployment for API access.
Entries
Understand how results are stored and how to correct them.