HTML you can paste into a CMS without scrubbing it first.
Convert emits HTML as a first-class output — no wrapper divs, no broken heading levels, no tables flattened into pipes.
Turning PDFs into web pages is where things break — tables collapse, headings flatten, equations turn to garbage. Datalab converts them to clean, semantic HTML your CMS can publish as-is, tables and equations intact.








from datalab_sdk import DatalabClient, ConvertOptions
client = DatalabClient()
# HTML output — semantic, accessible, no wrapper-div noise.
result = client.convert(
"report.pdf",
options=ConvertOptions(output_format="html", mode="balanced"),
)
cms.publish(slug="2026-q1-report", body=result.html)
# Or `json` mode — block-level structure with bounding boxes,
# so you can re-render figures, tables, and equations in the destination.
result = client.convert(
"report.pdf",
options=ConvertOptions(output_format="json", mode="balanced"),
)
# result.json is the parsed block tree; iterate the blocks
# yourself to upload images, render equations, etc.
print(result.json) Convert emits HTML as a first-class output — no wrapper divs, no broken heading levels, no tables flattened into pipes.
In json mode, each figure, table, and equation returns as a discrete block with a stable ID, bounding region, and caption.
Heading levels stay nested, footnotes bind to source, and captions stay with their figure — so the CMS treats it as content, not a page to rebuild.
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 with up to $20 in credits per month — no card required.