Document parsing APIThe extraction step, without the extraction problem
Inteleto's document parsing turns PDFs, scans, images and office files into clean Markdown plus positioned blocks — each one carrying its page number and position on the page, so anything you build on top can cite back to the exact spot in the original. Scanned pages are recognised automatically and come back in the same document as the digital ones, and you only pay for the pages that actually needed it.
Built because we needed it ourselves and the paid alternatives were costing five figures a month. It runs in production on scanned lending files, contracts and technical manuals.
Private beta · no card · we reply by hand
Five stages, one contract
A file goes in and Markdown, positioned blocks and retrieval-ready chunks come out. Each stage is separately versioned, so a change to the OCR engine or the chunking rules re-runs only the work it invalidated instead of the whole corpus.
- 1Validate
What the file really is, how many pages it has, and which route it needs. A .pdf that is actually a TIFF is caught here rather than three stages later.
- 2Split
Long documents are cut into pieces and worked in parallel, so a 900-page file cannot hold up the two-page uploads behind it.
- 3Extract
Pages that carry their own text are read from it. Scanned and image pages are recognised instead. The decision is made per page, not per document.
- 4Normalize
Tables become Markdown pipe tables with merged cells flattened into a grid, inline style noise is stripped, and blocks are stitched back into one document with their page numbers rebased.
- 5Chunk
Structure-aware parent/child chunks, token-capped, each prefixed with its heading path. Deterministic — no model calls in the ingest path.
What it measures at
Measured on a 44-page scanned underwriting manual.
Recognised text against the same PDF's own text layer.
These are our own measurements on our own hardware, published so you can argue with them rather than take them on faith. Accuracy is measured against the embedded text layer of digital PDFs, which is a proxy for ground truth and not the same thing as it. Ask us to run your documents and you get numbers for your documents.
Why the per-page routing matters
Roughly 60% of pages in a typical mixed archive are born-digital: they already contain their own text, perfectly, for free. Putting those through recognition anyway is the single largest avoidable cost in document parsing, and it is what most per-page pricing quietly charges you for.
Results are also cached against the content of the pages themselves, so a page range already extracted at the current engine version is never processed twice — no matter who uploads the file. Re-processing a corpus after a chunking change costs nothing in extraction.
Want the whole thing, not just the parser?
The parsing stage is the front of a platform that indexes, retrieves and answers with a citation on every claim. See what it is built into.
Frequently asked questions
- What do I get back from a parse?
- Markdown for the document, plus the blocks it was assembled from. Every block carries its type, its page number and its position on that page, so a downstream system can highlight the exact region a claim came from instead of citing a whole file. Tables come back as Markdown pipe tables, not as HTML with inline styling.
- How does it handle scanned pages versus digital ones?
- Per page, automatically. A page that already carries its own text is read from it; a scanned or image-only page is recognised instead. A document that mixes both — a signed contract with scanned exhibits, say — is handled page by page rather than being forced down one route, and comes back as a single document either way.
- How fast is it?
- Roughly a third of a second per page in steady state, measured on a 44-page scanned underwriting manual. Long documents are worked in parallel pieces, so a 900-page file does not sit in front of a two-page one.
- How accurate is the OCR?
- On our internal benchmark, which compares recognised text against the same PDF's own embedded text layer, word-level F1 is 0.975. Ask us to run a sample of your documents and you get numbers measured on your documents rather than ours.
- Can I use the parser without the rest of the platform?
- That is what this is for. The parsing layer is a separate stage with its own contract, and standalone access is in private beta — request access below and we will tell you what your documents cost to run before you commit to anything.