Skip to main content
Upload a document, name the templates to extract it against, and get back rows shaped like those templates. Vern parses the file, designs an extraction schema from the templates you chose, and pulls the data out. This is standalone: it doesn’t create a migration, doesn’t touch your workbooks, and writes nothing into Vern. It’s the right call for “read this invoice against my Invoice template” — where the full migration flow would be far more machinery than the job needs.
Results are not stored in Vern. They’re retained for 24 hours so you can fetch them, then deleted along with the uploaded file. Capture what you need.

Authentication

Requires an x-api-key header. See Authentication.

Submit a file

multipart/form-data:
file
required
The document. Max 100 MB. Supported: pdf, docx, xlsx, xlsm, xls, xltx, xltm, csv.
string[]
Template slugs to extract against — repeat the field, or pass one comma-separated value. Omit to use every active template in your account. List your templates for slugs.
string
Optional free-text guidance, e.g. "only the first schedule".
Extraction takes anywhere from seconds to several minutes, so this returns immediately with an id to poll: 202 Accepted

Poll for the result

200 OK while it runs:
200 OK once it’s done:

Fields

string
processing, completed, failed, or expired.
integer
How many tables were extracted. Present when completed.
integer
Total rows across all tables.
object[]
The extracted data. Present when completed.
string
Why it failed. Present when status is failed or expired.

Choosing templates

The templates you name shape the extraction. Vern uses their columns — including descriptions and cross-template link rules — to work out what sections a document has and which fields to pull from each. That means naming the right templates matters more than the file format. Passing two related templates (say lots and owners) lets the extraction carry a joining column across both, so the rows come back linkable. Omitting templates uses everything active in your account, which is fine for a first try but noisier than choosing.

Errors

Example

Extraction vs a migration

Reach for a migration when you’re moving a customer’s dataset into your app — you want validation, review, correction and a durable record. Reach for extraction when you just need the numbers out of a document. Extraction returns rows; it doesn’t validate them against the template’s rules, and it doesn’t keep them.

Next