v1.0 · Early Access Open

The document platform for developers.

Two tools. One API key. Zero infrastructure. Convert HTML to PDF on demand, or generate from reusable templates with dynamic data.

1,000 free conversions
<2s avg render time
0 servers to manage

Pick one. Or use both.

Whether you need a quick one-off conversion or a scalable document pipeline, ConvertStack has you covered.

Convert API

Send HTML or a URL, get a PDF back. Powered by headless Chromium — no Gotenberg, no Docker, no maintenance.

POST/v1/pdf
POST/v1/pdf/url
GET/v1/jobs/:id
terminal
curl -X POST https://api.convertstack.run/v1/pdf \
  -H "Authorization: Bearer sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "html": "<h1>Hello</h1><p>Your content here.</p>",
    "options": { "format": "A4", "margin": "24px" }
  }'

# Response → { "url": "https://cdn.convertstack.run/..." }
checkAsync jobs checkS3 delivery checkAny CSS
Docs →

Templates

Design reusable HTML templates with {{variables}}. Pass data at render time. Invoices, certificates, reports — any document.

receipt_longInvoice workspace_premiumCertificate receiptReceipt bar_chartReport request_quoteQuote
Acme Corp
{{company_email}}
INVOICE
{{invoice_number}}
Bill To {{customer_name}}
Due Date {{due_date}}
ItemQtyAmount
Engineering80h$12,000
Design20h$3,000
Total Due {{total}}
checkVisual editor checkAPI-managed checkLoops
Gallery →

Render any HTML
to PDF in one call.

Send HTML or a public URL. ConvertStack renders it in a warm Chromium instance and returns a time-limited download URL. No infrastructure to provision. No browser pools to manage.

aspect_ratio
Pixel-perfect Chromium rendering
Full CSS3 support — flexbox, grid, web fonts, shadows. Your design renders exactly as in a browser.
webhook
Async jobs, sync responses
Poll a job ID for async workloads or request synchronous delivery for inline use cases.
link
URL-to-PDF
Pass any public URL and we'll render the live page. Drop-in replacement for wkhtmltopdf workflows.
cloud_done
S3-backed storage
Every PDF lands in a private S3 bucket. Download via presigned URLs or pipe to your own storage.
Start converting arrow_forward
Request
POST/v1/pdf
curl -X POST https://api.convertstack.run/v1/pdf \
  -H "Authorization: Bearer sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "html": "<h1 style='font-family:sans-serif'>Invoice</h1>",
    "options": {
      "format": "A4",
      "margin": { "top": "24px", "bottom": "24px" },
      "printBackground": true
    }
  }'
Response 200 OK
{
  "jobId": "job_3xf8a2b...",
  "status": "completed",
  "url": "https://cdn.convertstack.run/pdfs/inv_...
         ?X-Amz-Expires=3600&X-Amz-Signature=...",
  "pages": 2,
  "size": 48291
}
URL variant
POST/v1/pdf/url
curl -X POST https://api.convertstack.run/v1/pdf/url \
  -H "Authorization: Bearer sk_live_..." \
  -d '{ "url": "https://yourapp.com/invoices/123" }'

# Renders the live page in Chromium → PDF

Design once.
Generate forever.

Build a template in the visual editor. Drop in {{variables}} wherever content changes. Then pass a JSON payload per request — ConvertStack fills the template and returns a PDF.

draw
Visual HTML + CSS editor
Write and preview your template in real time. Live PDF preview on every keystroke.
data_object
Handlebars variable syntax
Use {{name}} and {{#each items}} loops for repeating sections like line items.
library_books
5 ready-to-use templates
Invoice, receipt, certificate, quote, and report. Start from a template or build from scratch.
api
Full CRUD API
Create, update, and delete templates via /v1/templates. Integrate with your CI/CD pipeline.
Render a template
POST/v1/pdf
curl -X POST https://api.convertstack.run/v1/pdf \
  -H "Authorization: Bearer sk_live_..." \
  -d '{
    "template_id": "tpl_a3f9c2e1b8d0",
    "data": {
      "company_name": "Acme Corp",
      "invoice_number": "INV-2026-0047",
      "customer_name": "Globex Corp",
      "due_date": "2026-06-30",
      "items": [
        { "name": "Engineering", "qty": "80h", "amount": "$12,000" },
        { "name": "Design",      "qty": "20h", "amount": "$3,000"  }
      ],
      "total": "$15,000.00"
    }
  }'
Output preview PDF ready
Acme Corp
hello@acme.com
INVOICE
#INV-2026-0047
Bill ToGlobex Corp
Due DateJun 30, 2026
ItemQtyAmount
Engineering80h$12,000
Design20h$3,000
Total Due
$15,000.00

Everything you'd expect.
Nothing you don't.

speed

Warm browser pools

Browser instances stay alive between requests. No cold-start penalty. Average render under 3 seconds.

lock

SSRF protection

URL-to-PDF requests are validated against private IP ranges and internal hostnames before rendering.

payments

Per-document pricing

Pay per conversion, not per server-hour. Predictable costs that scale with your usage linearly.

key

Multiple API keys

Create live and test keys. Scope and rotate independently. SHA-256 hashed before storage.

monitoring

Usage dashboard

Track conversions, credits, and job history in a real-time dashboard. API access to usage data too.

redeem

1,000 free conversions

Every account starts with 1,000 free credits. No credit card required to get started.

Built for the modern web.

Legacy tools were built before the modern web. ConvertStack is built for it.

Legacy Tools
wkhtmltopdf · Gotenberg · PDFKit
ConvertStack
Convert API + Templates
Rendering engine
Outdated WebKit / None
Evergreen Chromium
Infrastructure to manage
close
check Zero ops
Async job processing
close
check
Reusable document templates
close
check
URL-to-PDF support
Partial / manual
check
Modern CSS (grid, flexbox, fonts)
Inconsistent
check Full CSS3

Be first in line.

Join the waitlist and claim your 1,000 free conversions at launch. No credit card, no commitment.

check_circle 1,000 free conversions — enough to build and ship
check_circle Access to both Convert API and Templates
check_circle Early pricing locked in for waitlist members

No credit card. Unsubscribe any time.

Common questions

What is ConvertStack? add

ConvertStack is a developer-first document platform with two products: Convert API for raw HTML/URL-to-PDF conversion, and Templates for building reusable, data-driven document templates. One API key covers both.

What's the difference between Convert API and Templates? add

Convert API is for one-off or ad-hoc conversions — send HTML or a URL, get a PDF. Templates are for recurring document types where the layout is fixed but the data changes (invoices, certificates, reports). With Templates you design once in the editor and pass JSON at render time.

How do I convert HTML to PDF? add

POST your HTML to /v1/pdf with your API key. ConvertStack renders it in a headless Chromium instance and returns a presigned S3 URL for download. Average render time is under 3 seconds.

Is this a wkhtmltopdf replacement? add

Yes. ConvertStack replaces wkhtmltopdf, self-hosted Gotenberg, and PDFKit with a managed API backed by modern Chromium. You get full CSS3 support, async jobs, URL-to-PDF, and reusable templates — without running any servers.

What variable syntax do templates use? add

Handlebars-style double curly braces: {{variable_name}}. Repeating sections (like invoice line items) use {{#each items}} blocks. Pass matching keys in the data object of your API request.

How much does it cost? add

All waitlist members get 1,000 free conversions at launch — no credit card required. After that, pricing is per-document with no hidden infrastructure fees. Waitlist members will have early pricing locked in.