Gotenberg alternative: hosted Gotenberg as an API
Gotenberg alternative with no servers to run. html-pdf.com is hosted Gotenberg Chromium as a JSON API, with field mapping and when to self-host.
Full disclosure first. html-pdf.com runs Gotenberg under the hood. Gotenberg is an MIT-licensed Docker image that wraps headless Chromium and LibreOffice behind an HTTP API, and it is excellent.
So this isn't a "Gotenberg vs us" page. It helps you decide whether to run Gotenberg yourself or call a hosted version of its Chromium HTML-to-PDF routes, with a JSON API, API keys and per-page billing.
Quick answer. Replace your /forms/chromium/convert/html call with one JSON request to the hosted API.
curl -X POST https://html-pdf.com/v1/pdf \
-H "Authorization: Bearer $HTML_PDF_KEY" \
-H "Content-Type: application/json" \
-d '{"html": "<h1>Hello</h1>"}' \
-o out.pdf
Self-hosted Gotenberg vs html-pdf.com
This table shows what each option gives you, side by side.
| Gotenberg (self-hosted) | html-pdf.com | |
|---|---|---|
| License / cost | MIT, free; you pay for servers | Per page, from $10 for 1,000 pages |
| Engine | Chromium + LibreOffice | Gotenberg's Chromium routes |
| Request format | multipart/form-data |
JSON, or multipart (index.html + assets + options) |
| Auth | Optional basic auth; usually kept on a private network | API keys (Authorization: Bearer or X-API-Key) |
| HTML and URL to PDF | Yes | Yes (public URLs only) |
| Markdown route | Yes | No (convert Markdown to HTML first) |
| Office documents (DOCX, XLSX, PPTX) | Yes, via LibreOffice | No |
| Merge, split, PDF/A, PDF/UA | Yes | No |
| Screenshots (PNG/JPEG/WebP) | Yes | No |
| Webhooks / async | Yes | No (synchronous; optional 24-hour download link) |
| Scaling, patching, monitoring | You | Us |
| MCP server for AI agents | No | Yes, at https://html-pdf.com/mcp |
| Usage limits | Whatever you configure | 20 MB request, 30 s render, 120 requests/min |
When self-hosting Gotenberg is the better choice
This section lists the cases where running your own Gotenberg wins. Run it yourself if any of these apply.
- You need features beyond HTML to PDF. Think Office conversion, merging, PDF/A, screenshots or webhooks. We don't expose those routes.
- Your HTML must stay on your network, or the pages you print are internal and not reachable from the internet.
- You have high, steady volume and already operate containers. Gotenberg on a couple of instances is cheap to run.
- You want full control over Chromium flags, fonts installed in the image, and timeouts.
Two guides get you there, self-host Gotenberg with Docker and deploy Gotenberg on Railway.
When the hosted version is the better choice
This section lists the cases where the hosted API saves you work.
- You only need HTML or URL to PDF and don't want another service to keep up, patch and size for memory spikes.
- You call it from the public internet. Self-hosted Gotenberg should not be exposed without auth and network rules, because a browser that renders arbitrary HTML can be pointed at internal addresses. We block private networks and handle keys for you.
- Volume is low or irregular. Credits never expire, so a quiet month costs nothing.
- AI agents generate your PDFs. Claude, ChatGPT, Cursor and others connect to the PDF MCP server with a URL and a key.
Gotenberg form fields to html-pdf.com JSON
This table helps you translate an existing Gotenberg request. If you already call /forms/chromium/convert/html, most fields map one to one, just in snake_case JSON.
| Gotenberg | html-pdf.com |
|---|---|
files=@index.html |
"html": "...", or multipart index.html |
/forms/chromium/convert/url + url |
"url": "https://..." |
paperWidth / paperHeight |
"width" / "height" (e.g. "210mm"), or "format": "A4" (A3 to A6, Letter, Legal, Tabloid) |
marginTop, marginRight, marginBottom, marginLeft |
"margin": "10mm" or {"top", "right", "bottom", "left"} |
landscape |
"landscape" |
printBackground |
"print_background" (defaults to true here; Gotenberg defaults to false) |
preferCssPageSize |
"prefer_css_page_size" |
scale |
"scale" |
nativePageRanges |
"page_ranges", e.g. "1-3, 5" |
emulatedMediaType |
"media": "print" or "screen" |
waitDelay (e.g. 2s) |
"wait_delay": 2 (seconds, 0 to 10) |
waitForExpression |
"wait_for_expression" |
header.html / footer.html |
"header_html" / "footer_html" (classes pageNumber, totalPages, date, title; needs a margin) |
Gotenberg-Output-Filename header |
"filename" |
| Extra asset files | Multipart: index.html + asset files + an options JSON field |
We also add a few options on top. These are css (extra stylesheet for html input), max_pages (fail long documents without being charged), and response (binary, base64, or url for a 24-hour link).
Migrating a request
Here is the same request before and after the switch.
Before (self-hosted Gotenberg):
curl http://localhost:3000/forms/chromium/convert/html \
-F files=@index.html \
-F paperWidth=8.27 -F paperHeight=11.7 \
-F marginTop=0.6 -F marginBottom=0.6 -F marginLeft=0.6 -F marginRight=0.6 \
-F printBackground=true \
-F waitForExpression="window.ready === true" \
-F files=@footer.html \
-o out.pdf
After (html-pdf.com, multipart keeps your files):
curl https://html-pdf.com/v1/pdf \
-H "Authorization: Bearer $HTML_PDF_KEY" \
-F "index.html=@index.html" \
-F "logo.png=@logo.png" \
-F 'options={"format":"A4","margin":"15mm","wait_for_expression":"window.ready === true","footer_html":"<div style=\"font-size:9px;width:100%;text-align:center\"><span class=\"pageNumber\"></span>/<span class=\"totalPages\"></span></div>"}' \
-o out.pdf
Or as JSON:
curl -X POST https://html-pdf.com/v1/pdf \
-H "Authorization: Bearer $HTML_PDF_KEY" \
-H "Content-Type: application/json" \
-d '{"html": "<h1>Hello</h1>", "format": "A4", "margin": "15mm"}' \
-o out.pdf
The output is the same Chromium rendering you get from Gotenberg, so templates that already look right there should look right here.
Pricing
You pay per page, with no subscription. 1 credit = 1 PDF page. You get 100 free credits once, then packs run from $10 for 1,000 up to $250 for 50,000 ($0.005 per page).
Purchased credits never expire, auto top-up is optional, and failed renders are free. You can also sign up from the command line.
curl -X POST https://html-pdf.com/v1/signup -H "Content-Type: application/json" -d '{"email": "you@example.com"}'
# Then open the link we email you to confirm (adds the 100 free credits)
Get a free API key · API docs · Gotenberg in n8n · Guides
FAQ
Is html-pdf.com built on Gotenberg?
Yes. It runs Gotenberg's Chromium routes behind a JSON API with API keys and per-page billing, so the rendering matches a self-hosted Gotenberg.
Is there a hosted Gotenberg API with a free tier?
Yes. html-pdf.com gives you 100 free credits once, with no card, and 1 credit = 1 PDF page. After that, packs cost $10 for 1,000 up to $250 for 50,000.
Can html-pdf.com convert Office documents or merge PDFs like Gotenberg?
No. It only exposes HTML and URL to PDF. For DOCX, XLSX, PPTX, merging, PDF/A or screenshots, self-host Gotenberg with Docker.
Do credits expire?
No. Purchased credits never expire, so a quiet month costs nothing, and failed renders are not charged.
