Skip to main content

A Docker-based API built for
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. Headless Chromium executes JavaScript, loads web fonts, and renders exactly like a 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

Convert Word, Excel, PowerPoint, and 100+ other formats. LibreOffice runs 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

Merge, split, encrypt, and inspect PDFs using QPDF, pdfcpu, and ExifTool through a unified API.

Merge, Split & TransformCombine PDFs, extract page ranges, rotate, flatten form fields, watermark, and stamp.
Security & MetadataEncrypt with user/owner passwords. Embed attachments. Read or write metadata and bookmarks.
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'

Ready to transform your workflows?

Join thousands of developers and start generating high-quality PDFs with Gotenberg's powerful containerized API.