Skip to main content

URL to PDF API
Convert Any Webpage to PDF

Convert any web page to PDF with a single API call.
Chrome rendering preserves CSS, JavaScript, web fonts, images, and responsive layouts. GDPR‑compliant, EU‑hosted.

Get Started FreeJoin with Google

500K+

PDFs Generated

1.5K+

Developers

99.9%

Uptime SLA

< 5min

Quick Setup

Convert URL to PDF in One API Call

No headless browsers to manage, no rendering bugs to fix.
Send a URL, get a PDF. Our webpage to PDF converter handles Chrome rendering, auto‑scaling, and security.

Full-Page Chrome Rendering

Every URL renders in a real Chrome instance. CSS3, Flexbox, fonts, and JS run before capture. The output matches what you see in the browser.

Developer-Friendly API

URL to PDF converter built for developers. Three endpoints – /direct, /sync, /async – with production‑ready examples in 8 languages.

Privacy-First Processing

EU‑based servers with full GDPR compliance. Webpage content is fetched 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 webpages to PDF a day.

Transparent Pricing

100 free webpage to PDF conversions every month. Paid plans scale with your usage, and only successful conversions count.

Responsive Support

Technical questions answered by engineers, not chatbots. Docs and guides cover every step of your URL to PDF integration.

URL to PDF Code Examples

Production‑ready code examples in 8 languages – Node.js, Python, Java, PHP, and more.
Choose your endpoint, copy the code, and start converting webpages to PDF.

endpoints
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({
            url: 'https://example.com',
            format: 'A4',
            printBackground: true
        })
    });

    if (!response.ok) {
        const errorText = await response.text();
        throw new Error(`HTTP ${response.status} - ${errorText}`);
    }
    
    const pdfBuffer = await response.arrayBuffer();
    fs.writeFileSync('webpage.pdf', Buffer.from(pdfBuffer));
    console.log('PDF generated successfully');
}

generatePdf().catch(console.error);

Save Webpages as PDF Automatically

Download any webpage as PDF using your n8n, Make, or Zapier workflows.
Connect the API and automate URL to PDF conversion. Check our step‑by‑step guide for your platform.

n8n

PDF Templates for Structured Documents

Webpage capture covers public pages. For recurring documents like invoices, reports, and contracts, use templates.
Design once, generate with different data. Just send a template ID and JSON. Same API, same Chrome engine.

Visual Template Designer

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

Modern invoice PDF template with QR code

Build Templates with AI

Templates fit your workflow? Skip the coding. Describe your 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

Developer Dashboard

Test webpage to PDF API calls, inspect request logs, monitor usage, and manage your team from one dashboard.

PDF Generation Playground

Test webpage to PDF conversion with real-time configuration. Enter any URL, adjust parameters, and preview the PDF output instantly.

PDFBolt playground for testing webpage to PDF conversion with live 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 webpage to PDF conversions per month.
Upgrade when you need more. You only pay for successful conversions.

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 converting webpages to PDF? We've got answers.
From API integration to batch processing, customization, security, and pricing.

Send a POST request to our REST endpoint with the target URL and your API key. Our Chrome engine fetches the page, renders it fully, and returns a PDF. Choose from three endpoints: Direct (immediate PDF binary), Sync (returns a download URL), or Async (webhook callback for batch processing). No headless browser setup on your end. Code examples available for Node.js, Python, Java, PHP, C#, Go, and Rust.
Yes, the API converts any publicly accessible webpage to PDF using a real Chrome rendering engine. CSS, JavaScript, images, web fonts, and responsive layouts are all preserved. For private or internal content, send Base64-encoded HTML using our HTML to PDF API instead of a URL.
Most webpages convert to PDF in a few seconds, depending on page complexity and load time. The API waits for the page to fully render before capture. For batch processing of multiple URLs, use the Async endpoint with webhooks to process pages in parallel without blocking your application. Unlike self-hosted Puppeteer, there is no browser to install or maintain on your end.
Control page size, margins, orientation, headers, footers, and page numbers. Set viewport width for responsive pages, configure JavaScript wait conditions, and inject custom CSS. For print production, enable PDF/X compliance with CMYK color conversion and ICC profiles. See the full list in API Parameters.
We are fully GDPR compliant. URLs are fetched and processed on EU-based servers. Page content is used only for PDF generation. For maximum control, upload PDFs directly to your own S3 bucket so files bypass our storage entirely. Read our Privacy Policy and DPA for details.
Yes. Use the Async endpoint with webhooks for batch processing. Submit multiple URL conversion requests, and receive notifications as each PDF completes. For secure delivery, upload results directly to your S3 bucket.
Every account starts on a free plan with 100 conversions per month. No credit card required. Paid plans start from $19/month with higher limits. Only successful conversions count – failed requests are never charged. See current rates on our pricing page.
Yes. PDFBolt is a cloud-based API. Send any URL and receive a PDF. No headless browsers, no browser extensions, no desktop software. Save any web page as PDF from your backend code or automation workflows.

Convert Any Webpage to PDF with
Scalable, Privacy-First API

Get 100 free web page to PDF conversions per month. No credit card required.
Chrome rendering, full CSS3 support, and GDPR‑compliant EU processing.

Register for Free