Skip to main content

A containerized API for seamless
PDF conversion

Available on amd64, arm64, armhf, i386, and ppc64le

Gotenberg Hero Logo

Everything you need for PDFs

Powerful tools, one container.

Web to PDF

Pixel-Perfect Chromium

Convert URLs, HTML templates, and Markdown files into PDFs. Powered by a headless Chromium engine, it executes JavaScript, loads web fonts, and renders exactly like a real browser.

Dynamic Content ReadyWait for network idle, JavaScript expressions, or specific DOM selectors before rendering SPAs.
Network ControlInject custom cookies, HTTP headers, and configure how to handle network errors or specific status codes.
curl \
--request POST http://localhost:3000/forms/chromium/convert/url \
--form url=https://my.url \
--form 'waitForExpression=window.status === '''ready'''' \
--form 'extraHttpHeaders={"Authorization": "Bearer 123"}' \
-o my.pdf
Office Suite

Automate LibreOffice

Got Word documents, Excel spreadsheets, or PowerPoint presentations? Gotenberg handles them effortlessly by orchestrating LibreOffice under the hood.

Extensive FormatsSupport for .docx, .xlsx, .pptx, and dozens of other legacy or standard document formats.
Page Ranges & PDF/AExtract specific pages during conversion and instantly conform to PDF/A archival standards.
curl \
--request POST http://localhost:3000/forms/libreoffice/convert \
--form files=@my.docx \
--form nativePageRanges=1-5 \
--form pdfa=PDF/A-1b \
-o my.pdf
PDF Operations

Post-Processing Engines

Manipulate existing PDFs using powerful tools like QPDF, pdfcpu, and ExifTool. Gotenberg allows you to alter, secure, and inspect your documents via a unified API.

Merge, Split & FlattenCombine dozens of PDFs, extract specific page intervals, or flatten form fields.
Security & MetadataSecure documents with user/owner passwords, embed attachments, and read or write custom metadata.
curl \
--request POST http://localhost:3000/forms/pdfengines/merge \
--form files=@doc1.pdf \
--form files=@doc2.pdf \
--form userPassword=user_secret \
--form ownerPassword=owner_secret \
-o merged_and_secured.pdf
Cloud Native

Zero-Transfer Pipelines

Process files without burdening your application. Gotenberg can stream documents directly from your Cloud Storage (S3, MinIO, GCS) and upload the resulting PDF back to it, bypassing your API entirely.

Direct FetchGotenberg pulls the file directly from an S3 Presigned GET URL.
Auto UploadGotenberg pushes the result to an S3 Presigned PUT URL.
EfficiencySave bandwidth. Your server orchestrates; Gotenberg does the heavy lifting.
curl \
--request POST http://localhost:3000/forms/libreoffice/convert \
# 1. Tell Gotenberg where to fetch the input file (S3 GET) \
--form 'downloadFrom=[{ \
"url": "https://my-bucket.s3.amazonaws.com/file.docx?Start=..." \
}]'
# 2. Tell Gotenberg where to upload the result (S3 PUT) \
--header 'Gotenberg-Webhook-Url: https://my-bucket.s3.amazonaws.com/out.pdf?Start=...' \
--header 'Gotenberg-Webhook-Method: PUT'