Uploading documents
What Ztract accepts, how big files can be, and how the engine handles failures so you don't pay for pages it couldn't read.
Updated:
Supported file formats
Ztract reads the following file types:
| Category | Formats |
|---|---|
| Documents | PDF, OFD |
| Office | Word (.doc / .docx), Excel (.xls / .xlsx), PowerPoint (.ppt / .pptx) |
| Text-based | HTML (including .mhtml), TXT, CSV, RTF |
| Images | JPG / JPEG, PNG, WebP, TIFF, BMP |
PDFs can be either digital (vector text) or scanned (image-based); both work. Phone photos of physical documents work too, with the caveat that low-contrast or heavily-skewed shots may produce lower confidence on individual fields.
The engine does not read HEIC, ZIP archives, or email files
(.eml) in the current release. If you have a workflow that needs
one of these, email us —
we track demand for new formats.
Size limits
- Per file: up to 500 MB
Files above the limit are rejected at upload. For genuinely large PDFs, you can split them in your PDF tool of choice and upload the chunks as separate files in the same project.
Single file vs batch upload
Drag one file at a time, or drop a folder / multi-selection. The dashboard processes each file in parallel as bandwidth allows and shows progress per document. There’s no cap on how many files you can queue in one batch — we’ve seen accounts push thousands of invoices in a single session without issue.
For very large batches (10,000+ files), upload in smaller groups so the dashboard stays responsive. We’re working on a bulk-upload path that handles tens of thousands per session — until that ships, batches of a few thousand work cleanly.
What happens during processing
- The file uploads to Ztract’s object storage.
- The engine determines how to read the file (digital PDF, scanned image, Office, etc.) and routes accordingly.
- The page is parsed and the schema is applied. Bounding boxes are captured for every extracted value.
- The result lands in your project — typically a few seconds for a single-page document, longer for multi-page or scanned files.
You don’t need to wait on a single document — start reviewing the first as soon as it’s done; later ones can finish in the background.
Whole-document vs per-page extraction
Most schemas treat each document as a single unit: one document = one extraction with one set of fields. That’s what Ztract does by default, and it’s the right mode for invoices, receipts, contracts, IDs, and most other forms.
For documents where every page is an independent record — think a multi-page bank statement where every page is its own transaction table, or a stack of receipts scanned into a single PDF — Ztract can extract per page instead. Each page becomes its own row in the parsed-data view, and each page is counted and billed as its own extraction.
The choice is made per-schema, set when you create the project from a sample document. The sample-upload dialog asks which mode fits before it builds the schema.
Filtering the documents list
The project’s Documents tab carries two filters at the top:
- Status — pending, processing, success, failed, partial. Useful when you’ve batched a large upload and want to find the failures, or when you’re waiting on the last few to finish.
- Schema freshness — show only documents whose extraction still
matches the project’s current schema, or only those marked
Schema updated(extracted before the schema changed, candidates for re-extraction). See Reviewing and correcting.
When a page can’t be read
Sometimes a page can’t be processed. The most common reasons:
- The file is corrupt or password-protected.
- The format is supported but the engine couldn’t open this specific file (e.g., a TIFF with an unusual compression).
- An internal error occurred.
When this happens, the page is refunded to your pack — you only pay for extractions that produced a result. The dashboard marks the failed page with the reason it failed so you can decide whether to re-upload after fixing the source.
This is one of the few places where our billing differs from most OCR products: most charge regardless of whether they got useful output. We don’t.
What counts as a page
A quick reminder, covered in detail on the Billing page:
- A PDF or Office file: one page per page of the source.
- An image or text-based file: typically one page — though very large files may be split by the system into multiple pages.
- Re-running the same document with a tweaked schema: counts as a new extraction. Plan your schema before processing volume.
Practical tips
- For best accuracy on a scanned document, use the original PDF if you have one. Vector text reads more reliably than rasterized text.
- For phone photos, make sure the document is flat, fully in frame, and reasonably lit. Glare from glossy lamination can be handled but reduces confidence.
- For very long PDFs (100+ pages), consider whether you actually need every page. Splitting a 500-page legal exhibit into the 30 pages that hold the data is cheaper.
- For mixed-language documents, no special setup — the engine handles pages that mix Latin, CJK, Cyrillic, and Arabic scripts.