One endpoint for every document you have
PDF, DOCX, PPTX, XLSX, EPUB, HTML, and image formats go through the same call. Multi-column spreads, digital files, and scans are all handled the same way.
Most parsers split tables mid-row and turn scans into garbage. Convert keeps tables, equations, figures, and reading order intact — across PDFs, Office files, and scans, in 90+ languages.
Convert can handle any document you throw at it. Every region it finds comes back with a bounding box, confidence score, and layout-aware, clean markdown.
PDF, DOCX, PPTX, XLSX, EPUB, HTML, and image formats go through the same call. Multi-column spreads, digital files, and scans are all handled the same way.
Colspan, rowspan, nested headers, and tables that run across pages stay intact. Printed, handwritten, and mixed-script equations come back in one pass.
Every figure, chart, and embedded image is extracted as a discrete asset and bound to the caption it belongs to, so nothing gets flattened into the surrounding text.
Convert returns a Parse Quality Score from 0 to 5 on each call, so you can drop low-confidence documents before they reach your index or your training set.
Call Convert through the SDK or as a single HTTP request. One parameter sets the output format: markdown for LLM context, HTML for a CMS, JSON for block-level access, or chunks for an embedding pipeline.
from datalab_sdk import DatalabClient, ConvertOptions
client = DatalabClient()
# Default: markdown. No options needed for the common case.
result = client.convert("document.pdf")
print(result.markdown)
# Pre-chunked for embedding pipelines:
options = ConvertOptions(output_format="chunks", mode="balanced")
result = client.convert("document.pdf", options=options)
# result.chunks is a dict of pre-chunked spans — feed straight into
# your embedder + vector store.
embed_and_index(result.chunks)
# Parse Quality Score (0-5) — drop low-quality docs before indexing.
print(result.parse_quality_score) Enable word bounding boxes and get the position and confidence score for each word. On the scan below, every word comes back above 0.98 confidence except one which gets flagged as low confidence because of an extra umlaut, making it easy to design better human review workflows.
<p>
<span data-bbox="65 1372 219 1403" data-confidence="0.015">Abhörchgerät</span>
<span data-bbox="231 1372 332 1403" data-confidence="1">monitor,</span>
<span data-bbox="344 1372 409 1403" data-confidence="1">check</span>
</p> Convert runs on the same open models we publish — Marker, Surya, and Chandra. We benchmark them in the open and lead by the widest margin on the work most parsers quietly fail: documents that aren't in English. It reads 90+ languages, including vertical Chinese, Japanese, and Korean.
Clean training corpora for LLMs. Reading order, equations, citation graphs — preserved.
See the deep-dive →RAGChunk at section, table, and figure boundaries. Retrieval returns complete units of meaning.
See the deep-dive →PUBLISHINGConvert long-form publications into responsive HTML or clean markdown. Headings intact.
See the deep-dive →Start with an API key — nothing to host or operate.
Sign up →Run in-region, with no egress to US infrastructure.
Sign up →Runs inside your own AWS, GCP, or Azure account.
Talk to sales →Fully offline, the same model weights, dedicated support.
Talk to sales →Free tier, no credit card. 100M+ pages a day, sustained — capacity is not the bottleneck.