Skip to main content

HTML to PDF API
for Developers

Convert any HTML to pixel-perfect PDF with a real Chrome engine. CSS3, JavaScript, web fonts, and responsive layouts render exactly as in the browser. 100 free PDFs/month, no credit card. GDPR‑compliant EU processing.

Get Started FreeJoin with Google

1M+

PDFs Generated

2K+

Developers

99.9%

Uptime SLA

~ 2s

Avg render time

From HTML to PDF in One API Call

No html2pdf libraries or headless browsers to manage, no rendering bugs to debug.
Send your HTML, get a pixel‑perfect PDF. We handle Chrome rendering, scaling, and security.

Chrome Rendering Engine

Your HTML renders in a real Chrome instance. Full CSS3, Flexbox, Grid, fonts, and JS support – responsive HTML to PDF rendering that matches your browser exactly.

Simple REST API

A developer‑friendly PDF API – send Base64 HTML, get a PDF back. Three endpoints (/direct, /sync, /async) fit any workflow. Code examples in 8 languages.

Privacy-First Processing

A secure HTML to PDF API with EU‑based servers, zero data retention, and full GDPR compliance. Your HTML is used only for conversion and immediately discarded.

Built to Scale

99.9% uptime SLA with auto‑scaling infrastructure that absorbs traffic spikes. Same fast response whether you convert 10 or 10,000 documents a day – no servers to manage.

Clear Pricing

Start with our free HTML to PDF API – 100 conversions per month. Paid plans scale with your usage. No hidden fees, no surprises. Only successful conversions count.

Responsive Support

Technical questions answered by engineers, not chatbots. Integration help when you need it. HTML to PDF API documentation and quick-start guides written for developers.

Three HTML to PDF API Endpoints

Pick the endpoint that matches how you generate PDFs – Direct for instant PDF binary, Sync for download URL, or Async with webhook callback for batch processing. All three use the same Chrome engine and API parameters – just choose whichever fits your integration.

Direct Endpoint

Convert HTML to PDF in one HTTPS call – the binary comes back as raw bytes or Base64, typically in around 2 seconds. Perfect for real‑time downloads or in‑browser previews where the user is waiting.

Sync Endpoint

Generate the PDF, then store the result for 24 hours on our S3 or upload it directly to your own bucket. Returns a download URL – great for client-side flows where you'd rather hand off a link than stream binary.

Async Endpoint

Submit each conversion as an independent request and receive the PDF via HMAC‑signed webhook callback when ready. Best fit for long-running documents or workloads that shouldn't block your process.

Convert HTML to PDF in Any Language

Code examples for Node.js, Python, Java, PHP, C#, Go, Rust, and cURL.
Pick an endpoint, copy the code, and start converting HTML to PDF.

endpoints
const fs = require('fs');

async function generatePdf() {
    const htmlContent = '<html><body><h1>Hello!</h1><p>This is a sample PDF.</p></body></html>';
    const base64Html = Buffer.from(htmlContent).toString('base64');
    
    const response = await fetch('https://api.pdfbolt.com/v1/direct', {
        method: 'POST',
        headers: {
            'Content-Type': 'application/json',
            'API-KEY': 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX'
        },
        body: JSON.stringify({
            html: base64Html,
            margin: {
                top: '30px',
                left: '30px'
            }
        })
    });
    
    if (!response.ok) {
        const errorText = await response.text();
        throw new Error(`HTTP ${response.status} - ${errorText}`);
    }
    
    const pdfBuffer = await response.arrayBuffer();
    fs.writeFileSync('document.pdf', Buffer.from(pdfBuffer));
    console.log('PDF generated successfully');
}

generatePdf().catch(console.error);

Automate HTML to PDF Generation

Add HTML to PDF conversion to your n8n, Make, or Zapier workflows.
Just connect the API and start automating document generation. Check our step‑by‑step guide for your platform.

n8n

HTML Templates for Recurring Documents

Same layout, different data? Design your HTML template once.
Then generate invoices, reports, contracts, or any document by sending just a template ID and JSON data.

Visual Template Designer

Design HTML/CSS layouts with real‑time preview, syntax highlighting, and error detection. Test with actual PDF generation.

Annual Business Report - HTML to PDF Template

Let AI Build Your Templates

Skip the coding. Describe your document layout and attach reference files.
AI generates a complete HTML template with sample data for you, ready to edit or use.

Start with a Prompt

Describe your layout, data fields, and styling. Attach reference files – PDFs, images, or code.

AI Generates Code & Data

AI creates a complete HTML/CSS template with Handlebars variables and sample data.

Edit with AI Assist

Request changes – layout, fields, styling. AI handles the code updates. Iterate until satisfied.

Review & Accept

See what changed in diff view. Compare PDF output side by side, then accept or reject – full control.

One-Click Code Integration

Copy ready-to-use code snippets in your language. Integrate in minutes.

Generate Template with AI

5 generations left

Describe the template you want to create. Be specific about layout, styling, and data fields.

0 / 10,000 characters

Drag & drop, click to browse, or paste (Ctrl+V)

PDF, PNG, JPG, JPEG, SVG, TXT, HTML, HTM, CSS, JS, JSON (max 5 files, 5 MB total)

0 KB / 5 MB

Cancel
Back
Generate with AI
Template
Data
Options

Invoice Template

History
Save
Publish
Exit
Get API Code
Quick HTML Preview
Real PDF Preview
Invoice Template Preview
Template
Data
Options

Invoice Template

History
Save
Publish
Exit
Get API Code
Quick HTML Preview
Real PDF Preview
1
<!DOCTYPE html>
2
<html lang="en">
3
<head>
4
<link href="https://fonts.googleapis.com/css2?family=Inter&display=swap" rel="stylesheet">
5
<style>
6
body { font-family: Inter, sans-serif; }
7
.invoice-title { color: #0C8AE5; font-size: 48px; }
8
.billing-section { display: flex; gap: 30px; }
9
.billing-column { border-left: 3px solid #0C8AE5; }
10
.items-table { background: #0C8AE5; color: white; }
11
.total-final { background: #0C8AE5; }
12
</style>
13
</head>
14
<body>
15
<div class="header">
16
<div class="logo">{{company.logo}}</div>
17
<div class="invoice-title">INVOICE</div>
18
</div>
19
<div class="invoice-meta">
20
<p>Invoice No: {{invoice_number}}</p>
21
<p>Issue Date: {{issue_date}}</p>
22
</div>
23
<div class="billing-section">
24
<div class="billing-column">
25
<h3>Bill From</h3>
26
<p>{{company.name}}</p>
27
</div>
28
<div class="billing-column">
29
<h3>Bill To</h3>
30
<p>{{client.name}}</p>
31
</div>
32
</div>
33
<table class="items-table">
34
{{#each items}}
35
<tr><td>{{description}}</td><td>{{total}}</td></tr>
36
{{/each}}
37
</table>
38
<div class="totals">
39
<div class="totals-row">Subtotal: {{subtotal}}</div>
40
<div class="totals-row">Tax: {{tax_amount}}</div>
41
<div class="totals-row total-final">Total: {{total}}</div>
42
</div>
43
</body>
44
</html>
Invoice Template Preview

AI Assistant

4 generations left

This will use

1 AI generation. Your template and sample data will be updated based on your instructions.

Describe what you want to change:

Thinking

0 / 10,000 characters

Drag & drop, click to browse, or paste (Ctrl+V)

PDF, PNG, JPG, JPEG, SVG, TXT, HTML, HTM, CSS, JS, JSON (max 5 files, 5 MB total)

Cancel
Prepare Changes

Review AI Changes

Code
PDF Preview
Template
Data
Parameters
Before
4
<style>
5
body { font-family: Inter; }
6
.invoice-title { color: #1e40af; }
7
.header { padding: 20px; }
8
.billing-section { margin: 30px 0; }
9
.items-table { background: #1e40af; }
10
.total { background: #1e40af; }
11
</style>
12
</head>
13
<body>
14
<div class="invoice">
15
<div class="header">
After
4
<style>
5
body { font-family: Inter; }
6
.invoice-title { color: #145E6D; }
7
.header { padding: 20px; }
8
.billing-section { margin: 30px 0; }
9
.items-table { background: #145E6D; }
10
.total { background: #145E6D; }
11
.qr-code { display: flex; }
12
.qr-label { color: #6b7280; }
13
</style>
14
</head>
15
<body>
16
<div class="invoice">
17
<div class="header">

Before (Current)

1

/

1

Before (Current)

After (AI-edited)

1

/

1

After (AI-edited)
Reject
Accept
Template
Data
Options

Invoice Template

History
Save
Publish
Exit
Get API Code
Quick HTML Preview
Real PDF Preview
1
<!DOCTYPE html>
2
<html lang="en">
3
<head>
4
<link href="https://fonts.googleapis.com/css2?family=Inter&display=swap" rel="stylesheet">
5
<style>
6
body { font-family: Inter, sans-serif; }
7
.invoice-title { color: #0C8AE5; font-size: 48px; }
8
.billing-section { display: flex; gap: 30px; }
9
.billing-column { border-left: 3px solid #0C8AE5; }
10
.items-table { background: #0C8AE5; color: white; }
11
.total-final { background: #0C8AE5; }
12
</style>
13
</head>
14
<body>
15
<div class="header">
16
<div class="logo">{{company.logo}}</div>
17
<div class="invoice-title">INVOICE</div>
18
</div>
19
<div class="invoice-meta">
20
<p>Invoice No: {{invoice_number}}</p>
21
<p>Issue Date: {{issue_date}}</p>
22
</div>
23
<div class="billing-section">
24
<div class="billing-column">
25
<h3>Bill From</h3>
26
<p>{{company.name}}</p>
27
</div>
28
<div class="billing-column">
29
<h3>Bill To</h3>
30
<p>{{client.name}}</p>
31
</div>
32
</div>
33
<table class="items-table">
34
{{#each items}}
35
<tr><td>{{description}}</td><td>{{total}}</td></tr>
36
{{/each}}
37
</table>
38
<div class="totals">
39
<div class="totals-row">Subtotal: {{subtotal}}</div>
40
<div class="totals-row">Tax: {{tax_amount}}</div>
41
<div class="totals-row total-final">Total: {{total}}</div>
42
</div>
43
</body>
44
</html>
Invoice Template Preview

API Integration: Invoice

Use the following code examples to generate PDFs using this template through our API.

NODE FETCH
NODE AXIOS
PYTHON
CURL
JAVA
C#
PHP
GO
RUST
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
const fs = require('fs'); async function generatePdf() { const response = await fetch('https://api.pdfbolt.com/v1/direct', { method: 'POST', headers: { "API-KEY": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", "Content-Type": "application/json" }, body: JSON.stringify({"templateId":"your-template-id","templateData":{"invoice_number":"INV-2026-0112","issue_date":"January 15, 2026","due_date":"February 15, 2026","company":{"name":"Creative Studio Co.","email":"hello@creativestudio.co"},"client":{"name":"Green Leaf Cafe","email":"info@greenleafcafe.com"},"items":[{"description":"Logo Design","quantity":1,"unit_price":"350.00","total":"350.00"},{"description":"Business Card Design","quantity":1,"unit_price":"120.00","total":"120.00"},{"description":"Brand Style Guide","quantity":1,"unit_price":"170.00","total":"170.00"},{"description":"Social Media Graphics","quantity":5,"unit_price":"40.00","total":"200.00"}],"currency":"$","subtotal":"840.00","tax_rate":"10","tax_amount":"84.00","total":"924.00","qr_code_data":"https://pay.creativestudio.co/INV-2026-0112"}}) }); if (!response.ok) { const errorText = await response.text(); throw new Error(`HTTP ${response.status} - ${errorText}`); } const pdfBuffer = await response.arrayBuffer(); fs.writeFileSync('pdfbolt_example.pdf', Buffer.from(pdfBuffer)); console.log('PDF generated successfully'); } generatePdf().catch(console.error);

Close

Built for Invoices, Reports, Certificates, Contracts, and More

Ready-made PDF templates for the documents teams generate every day.


Each comes with Handlebars variables and sample data – swap in yours and call the API.

Modern invoice with QR code template preview

Invoices

Branded invoices with dynamic line items, totals breakdown, QR payment codes, and customizable footers.

Invoice

Browse the full template gallery – ready-made layouts for receipts, healthcare, HR, resumes, quotes, shipping labels, and more.

Browse template gallery

All-in-One Dashboard

Design HTML templates, test PDF generation, monitor API usage, and manage your team. Everything in one place.

PDF Generation Playground

Test HTML to PDF conversion with real-time configuration. Paste HTML, adjust parameters, and preview the PDF output instantly.

PDFBolt HTML to PDF playground for testing HTML conversion with live PDF preview

Trusted by Developers Worldwide

See how teams save time and reduce complexity with our developer‑first PDF solution.

"It has a very intuitive User Interface and easy to use API with a great documentation. What's best, that the support is super fast and even feature requests are discussed and implemented in just a couple of days. It helps us to create individualised PDF gift cards both for digital use as well as print production on the base of modern HTML / CSS."

David Bernhard

David Bernhard

CTO at bon-bon.de

"Amazingly, the owner personally helped solve the issues I was having creating an exported lesson plan with hyperlinks and complex styling. This is a great piece of software. But more importantly, it’s the people behind a product that truly make a company great. His willingness to support my project without payment is truly unique – a rare product and a rare individual. This product just works. Thank you, PDFBolt!"

Robert Reich-Storer

Robert Reich-Storer

Owner of Rhythmstix and Assessify
Source logo

"There's a lot of products that convert to PDF out there, but this one stood out to me, because the output quality is good, it's very easy to use, and pay per use. I also love the interactive API documentation, my request just worked out of the box in my app. And of course the focus on privacy, which is important when working with GDPR data. (...) PDFBolt just works, so I can focus on the business logic."

Malte Bartels

Malte Bartels

Cloud Engineer
Source logo

Simple and Transparent Pricing

Start with 100 free HTML to PDF conversions per month.
Scale up as you grow. No hidden fees, no surprises.

Free

100 documents / month

20 requests per minute

1 concurrent request

PDF file size limit: 2MB

All customization options

1 template

1 AI template generation

No credit card required

Get Started

Basic

$19

/month

2 000 documents / month

40 requests per minute

3 concurrent requests

$0.01 per overage PDF

Unlimited PDF file size

All customization options

Async processing

Upload to S3

3 team members

10 templates

10 AI template generations / month

Get Started
Recommended

Growth

$79

/month

10 000 documents / month

80 requests per minute

10 concurrent requests

$0.008 per overage PDF

Unlimited PDF file size

All customization options

Async processing

Upload to S3

10 team members

Unlimited templates

50 AI template generations / month

Print production (PDF/X, CMYK)

Priority support

Get Started

Enterprise

$249

/month

50 000 documents / month

150 requests per minute

20 concurrent requests

$0.005 per overage PDF

Unlimited PDF file size

All customization options

Async processing

Upload to S3

Unlimited team members

Unlimited templates

150 AI template generations / month

Print production (PDF/X, CMYK)

We create custom templates for you

Top priority support

Get Started

Looking for higher monthly limits?

Contact Us →

Frequently Asked Questions

Got questions about our HTML to PDF converter? We've got answers.
From API integration to customization options, templates, security, and pricing.

No html2pdf libraries to install. Encode your HTML as Base64, send it to our REST endpoint with your API key, and receive the PDF in the response. Choose from three endpoints: Direct (immediate PDF binary), Sync (returns a download URL), or Async (webhook callback for batch processing).
Every account starts with 100 free conversions per month – no credit card required. The free tier uses the same Chrome rendering engine and includes all standard customization options. Paid plans start at $19/month and add async processing, S3 upload, and higher limits. Only successful conversions count – failed requests are never charged. See current rates on our pricing page.
Control every aspect of your PDF output: page size, margins, orientation, headers, footers, and page numbers. Configure JavaScript execution, viewport dimensions, and wait conditions for dynamic content. For print workflows, enable PDF/X compliance, CMYK color conversion, and ICC color profiles. See full options in API Parameters.
Yes. The API runs a real Chrome instance, so React, Vue, Angular, and SPA dashboards render exactly as they do in your browser. Use waitUntil, waitForFunction, or waitForSelector to control precisely when capture happens – wait for a specific load event, custom JavaScript condition, or CSS selector. Mobile viewport emulation via isMobile is also supported. See Page Parameters for details.
Yes! Our template system lets you design HTML templates with Handlebars variables, then send only template ID + JSON data via API. Templates support version control, team collaboration, and AI-powered generation from your description and reference files. Browse ready-made layouts in our Template Gallery.
Yes. PDFBolt is the only HTML to PDF API with built-in PDF/X compliance. Generate prepress-ready PDFs with PDF/X-1a or PDF/X-4 standards, embedded ICC profiles (FOGRA39, FOGRA51, SWOP, GRACoL), and CMYK color conversion – all via a single API parameter. See the print production guide for setup details.
Most HTML documents convert in around 2 seconds. Actual time depends on the complexity of your HTML – external fonts, JavaScript execution, and large images all add to render time. For batch processing, the Async endpoint with webhooks handles high volumes efficiently.
Yes. Use the Async endpoint with HMAC-signed webhook callbacks for batch processing. Submit conversion requests in parallel and get notified when each PDF is ready. Auto-scaling infrastructure handles traffic spikes without configuration. For secure delivery, upload PDFs directly to your own S3 bucket.
Yes, PDFBolt is fully GDPR compliant. All data is transmitted over HTTPS and processed on EU-based servers. HTML content is used only for PDF generation and immediately discarded – zero data retention by default. For maximum control, upload PDFs directly to your own S3 bucket so files never touch our storage. Read our Privacy Policy and DPA for details.
No. PDFBolt is a hosted HTML to PDF converter accessible through a REST API. There are no libraries like wkhtmltopdf or Puppeteer to install, update, or maintain on your servers. Send an API request and get a PDF back. Works with any programming language that can make HTTP calls – see our quick start guides for ready‑to‑use code in Node.js, Python, Java, PHP, C#, Go, and Rust.
Self-hosting Puppeteer or Playwright means installing the browser, managing memory and CPU spikes, scaling for traffic bursts, keeping Chrome updated, and handling fonts, network failures, and rendering quirks – all on your team's plate. PDFBolt runs the same headless Chrome as a managed service with auto-scaling, 99.9% uptime SLA, no version drift, and predictable pricing. Same engine, zero ops. See our Puppeteer comparison for the full breakdown.

Convert HTML to PDF with
our Privacy-First API

Start with 100 free conversions per month. No credit card required.
The HTML to PDF API for developers: Chrome rendering, full CSS3 support, and GDPR‑compliant EU processing.

Register for Free