POST /v1/pdf/from-html HTML to PDF
Raw HTML and CSS rendered by a real, sandboxed Chromium — web fonts, flexbox, grid and JavaScript behave exactly as in a browser tab.
One multilingual rendering pipeline behind every endpoint — the same fonts, the same error envelope, the same zero-retention handling.
Send whatever you have — markup, a link, your data or Markdown — and get a PDF or an image back.
POST /v1/pdf/from-html Raw HTML and CSS rendered by a real, sandboxed Chromium — web fonts, flexbox, grid and JavaScript behave exactly as in a browser tab.
POST /v1/pdf/from-url Point at a public page and get it back as a print-ready PDF.
POST /v1/pdf/from-template Send a LiquidJS template and a JSON payload; the template runs in a sandbox and the result is rendered to PDF — ideal for invoices and reports.
POST /v1/pdf/from-markdown Send Markdown — from an AI agent, a note or an automation — and get back a clean, print-ready PDF with tables, lists and code, in any language.
POST /v1/image/from-html · /from-url · /from-template · /from-markdown PNG, JPEG or WebP for social cards, receipts, chart snapshots and thumbnails — from the same inputs as PDFs, including templates with your data and Markdown. Capture the full page, the viewport or a single element, at 2× or 3× for sharp output.
POST /v1/pdf/merge · /v1/pdf/split Combine existing PDFs into one, or cut one into parts by page, range or every N pages. Pages are copied as they are, so every script looks exactly as in the original files. Split parts take the same output options as a merge — document properties, compression, a password or PDF/A — and files made with Legebla keep their searchable text in PDF/A.
The reason Legebla exists: documents that read correctly in every script your customers use.
25 languages · CJK · RTL · emoji Full Unicode coverage with OS-level fonts baked in — Chinese, Japanese, Korean, Arabic, Hebrew, Hindi and more. No missing-glyph boxes, no broken right-to-left layout.
options.pdfa: "PDF/A-3b" PDF/A-3b output from every render endpoint keeps the selectable, searchable text exactly as rendered — Hindi, Arabic, Chinese, emoji and the rest — along with accessibility tags and the document language.
options.zugferd Embed your EN16931 (CII) invoice XML into a PDF/A-3 file for ZUGFeRD / Factur-X e-invoicing — built on the same searchable, multilingual base.
options.watermark Drawn with the same fonts as the page, so an Arabic, Chinese or Hindi "DRAFT" renders correctly — centered or tiled, with your own opacity. Or stamp your logo as an image watermark.
options.metadata Set title, author, subject, keywords, creator and language — in any script — for PDF viewers, search and document managers.
Shape the page before it becomes a document.
css · javascript · waitFor.delayMs · lazyLoad Inject CSS or JavaScript (hide cookie banners, fix print layout), wait a fixed delay for late charts, and scroll the page so lazy-loaded images appear.
from-url: headers · cookies · auth Render pages that need a session cookie, custom headers or HTTP Basic auth. Credentials are sent only to the target URL's origin — never to CDNs, analytics or redirects elsewhere.
options.compress Recompress and resize images and store repeated images and fonts once — handy for email attachments and upload limits. For some complex scripts and emoji the copy-and-search text may differ after compression; the response warns you when that applies.
Your documents are processed in memory and handed back — or straight to you.
zero data retention Renders run in isolated, ephemeral workers. Nothing is written to a database or disk by default — the document is discarded after delivery.
options.encryption AES-256 encryption with a user and/or owner password, and control over printing, copying, editing, annotating and form filling.
upload Pass a pre-signed PUT URL (Amazon S3, Cloudflare R2, Google Cloud Storage, Azure Blob) and the file goes straight from memory into your own bucket. Nothing is kept on our side.
Made to be wired into code or automations without guesswork.
GET /v1/openapi.json A complete spec is the single source of truth — import it to generate a typed client in any language, or call the REST endpoints directly.
options.sandbox Wire up a workflow with real output that doesn't count against your quota. Sandbox files are stamped "SAMPLE — sandbox" on every page.