Skip to main content

URL to PDF API
Convert Any Webpage to PDF

Save any webpage as PDF through our API – even JavaScript‑heavy SPAs and dynamic dashboards. Chrome renders the full page with selectable text, real fonts, and styling exactly as in your 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

< 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 with CSS3, web fonts, and JavaScript. The output is a fully rendered PDF preserving responsive layouts as in the browser. Configure viewport for mobile or desktop emulation.

Developer-Friendly API

URL to PDF converter built for developers. Three REST endpoints – /direct, /sync, /async – with rich customization and quick-start guides for Node.js, Python, Java, PHP, C#, Go, Rust, and cURL.

Privacy-First Processing

EU‑based servers with full GDPR compliance. URL content is fetched over HTTPS for conversion and immediately discarded. For full data control, upload generated PDFs to your own S3 bucket so files bypass our storage entirely.

Built to Scale

99.9% uptime SLA with auto‑scaling infrastructure. Same fast response whether you convert 10 or 10,000 websites to PDF a day – no headless browsers to install or maintain on your servers.

Transparent Pricing

Start with 100 free webpage to PDF conversions every month – no credit card required. Paid plans scale with your usage. No hidden fees, no surprises – only successful conversions count.

Bulk URL Conversion

Built for mass archiving, scheduled jobs, and serverless workflows that need to convert URLs to PDF at high volume. Webhook callbacks deliver each PDF as it completes – no queue management on your end.

Three URL 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 long-running jobs. All three use the same Chrome engine and API parameters – just choose whichever fits your integration.

Direct Endpoint

Convert URL to PDF in one HTTPS call – the binary comes back as raw bytes or Base64, typically in 2-3 seconds. Perfect for instant downloads or in‑app previews where the user is waiting.

Sync Endpoint

Convert webpage to 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 URL as an independent request and receive the PDF via HMAC‑signed webhook callback when ready. Best fit for long-running pages or workloads that shouldn't block your process.

URL to PDF Code Examples

Code examples for Node.js, Python, Java, PHP, C#, Go, Rust, and cURL.
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

Save webpages as PDF inside 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 works great for existing pages. For recurring documents like invoices and reports, 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

Save Webpages as PDF: Dashboards, Documentation, Articles, and More

Convert webpages to PDF for every workflow – from articles and documentation to web archives and live dashboards.


One API call per URL, or high-volume workloads through the Async endpoint with webhook callbacks.

Live dashboard captured as PDF report via URL to PDF API

Dashboards & Reports

Export live BI dashboards, admin panels, and SaaS reports to PDF – charts, tables, and KPIs render correctly even on authenticated pages.

Documentation page saved as PDF via webpage to PDF API

Documentation

Capture documentation, knowledge bases, help centers, and READMEs as PDF snapshots – for offline reference or change tracking over time.

Webpage archived as PDF for compliance and legal evidence

Web Archive & Evidence

Compliance teams, journalists, and legal workflows archive webpages as PDF for evidence and preservation – capture the page as it was published.

News article saved as PDF via URL to PDF API

Articles & News

Save any web page as PDF – news articles, blog posts, research. Text, images, formatting kept as published, for offline reading or sharing.

Bulk URL conversion, webhook callbacks, S3 delivery, and authenticated capture – all available through our API.

See quick-start guides

Developer Dashboard

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

PDF Generation Playground

Test webpage to PDF conversion live in your browser. 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, Rust, and cURL.
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.
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 the full list of wait conditions and viewport options in API Parameters.
Chrome's built-in Save as PDF requires manual interaction per page – no batch processing, no programmatic capture without self-hosting a headless Chrome stack like Puppeteer or Playwright. The API runs the same Chrome engine as a managed service – send a URL, get back a PDF. Pass cookies, custom headers, wait conditions, and margins via API parameters. For one-off browser captures, the PDFBolt Chrome extension is the easiest path.
Yes. The API renders the full page – not just the viewport – and outputs a paginated PDF with layout, fonts, and styling preserved. Configure viewport size for mobile or desktop emulation, set page format (A4, Letter, A3, and more), control wait conditions for dynamic content, and capture authenticated dashboards.
Yes. Pass session cookies, basic auth credentials, or custom HTTP headers (Bearer tokens, JWT, API keys) directly in the conversion request. Useful for authenticated dashboards, paywalled content, internal tools, and member-only pages. See the full options in API Parameters.
Most webpages convert in a few seconds – typically 2-3 seconds for static content, longer for JavaScript-heavy SPAs depending on wait conditions. The API waits for the page to fully render before capture. Render time depends on page load, external resources, and JavaScript execution time.
Control page size, margins, orientation, headers, footers, and page numbers. Set viewport size for responsive rendering, configure JavaScript wait conditions, and apply compression to optimize file size. For print production, enable PDF/X compliance with CMYK and ICC profiles. See the full list in API Parameters.
We are fully GDPR compliant. URLs are fetched over HTTPS 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 HMAC-signed webhook callbacks 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.

Convert Any Webpage to PDF with
our Privacy‑First API

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

Register for Free