Skip to main content

HTML to PDF API
for Developers

Convert any HTML file to PDF with a real Chrome engine. Your CSS3, JavaScript, web fonts, and responsive layouts render exactly as in the browser. GDPR‑compliant EU processing.

Get Started FreeJoin with Google

500K+

PDFs Generated

1.5K+

Developers

99.9%

Uptime SLA

< 5min

Quick Setup

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. Our HTML to PDF converter handles Chrome rendering, scaling, and security.

Chrome Rendering Engine

Your HTML renders in a real Chrome instance. CSS3, Flexbox, Grid, fonts, and JS just work. HTML to PDF output matches your browser.

Simple REST API

Send Base64 HTML, get a PDF back. Three endpoints – /direct, /sync, and /async – fit any workflow. Code examples in 8 languages.

Privacy-First Processing

EU‑based servers, zero data retention, full GDPR compliance. Your HTML is used only for conversion and immediately discarded.

Built to Scale

99.9% uptime SLA with auto‑scaling infrastructure. Same fast response whether you convert 10 or 10,000 documents a day. Built for production use.

Clear Pricing

100 free HTML to PDF conversions every 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. Documentation and guides written for developers.

Convert HTML to PDF in Any Language

Production‑ready code examples. Pick an endpoint, copy the code, and start converting your 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

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 heavy workloads).
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, 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.
Most HTML documents convert in a few seconds. Complex pages with heavy images or JavaScript may take slightly longer. For a fast response, use the Direct endpoint which returns the PDF binary immediately. For batch processing, the Async endpoint with webhooks handles high volumes efficiently.
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. Use the Async endpoint with webhooks for batch processing – queue thousands of conversions and get notified when each PDF is ready. Auto-scaling infrastructure handles spikes without configuration. For secure delivery, upload PDFs directly to your own S3 bucket.
Every account starts on a free plan with 100 conversions per month. No credit card required. You also get 1 free AI template generation to try out. Paid plans start from $19/month with higher limits and additional features. Only successful conversions count – failed requests are never charged. See current rates on our pricing page.
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.

Convert HTML to PDF with
Scalable, Privacy-First API

Start with 100 free conversions per month. No credit card required.
Chrome rendering, full CSS3 support, and GDPR‑compliant EU processing.

Register for Free