HTML to PDF API

Turn your HTML pages into print-ready PDFs

Invoices, reports, certificates and receipts: design them as web pages with the tools you already use, then render them to PDF in a real Chromium browser with one API call.

Get an API keyRead the docs

  • A4, Letter, A3, Legal
  • Your print CSS is respected
  • Failed renders are free

Render a URL to PDF

Set format to pdf on the screenshot endpoint. Use waitForSelector so charts and fonts finish loading first.

  • Up to 5 URLs per request
  • pdfPageFormat: A4, A3, Letter or Legal
  • Signed fileUrl for each PDF, kept 7 days
curl https://siftwright.com/v1/screenshot \
  -H "Authorization: Bearer $SIFTWRIGHT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://example.com/invoice/1042", "format": "pdf", "pdfPageFormat": "A4"}'

What you get back

The response shape for a PDF (IDs shortened).

[
  {
    "url": "https://example.com/invoice/1042",
    "status": "ok",
    "format": "pdf",
    "fileUrl": "https://api.apify.com/v2/key-value-stores/…/records/capture-….pdf?signature=…",
    "sizeBytes": 48211,
    "durationMs": 912
  }
]

What people build with it

Invoices and receipts

Render billing documents from your own templates on demand or in nightly batches.

Reports and dashboards

Export a dashboard view to a PDF your customers can forward.

Certificates and tickets

Generate personalised documents from a template page.

Archiving

Save articles, policies or order pages as dated PDFs.

Contracts and proposals

Keep one HTML source of truth and output PDFs for signature.

Print-ready docs

Use CSS paged media rules like @page and page breaks.

Pricing

Each PDF counts as one result, the same as a screenshot. Pages that time out or return an error are free.

See all plans and the calculator →

OptionPrice
Starter plan$29/mo for 10,000 results ($2.90/1k)
Pro plan$99/mo for 50,000 results ($1.98/1k)
Business plan$299/mo for 250,000 results ($1.20/1k)
Enterprise plan$999/mo for 1,500,000 results ($0.67/1k)
Pay-per-event on Apify$1.50 per 1,000 captures, no subscription

Honest note: URL in, not an HTML string

Some HTML-to-PDF services accept a raw HTML string in the request body. Ours renders a URL. For private documents such as invoices, the reliable pattern is:

  1. Render your template to HTML in your app and serve it at an unguessable, short-lived URL (for example a signed object-storage link, or a route that checks a one-time token).
  2. Call /v1/screenshot with "format": "pdf" and that URL.
  3. Download the PDF from fileUrl and store it where it belongs.

This keeps your templates in your own stack, lets you preview them in a browser, and means the PDF matches exactly what the browser shows. The full walk-through is in HTML to PDF at scale.

Frequently asked questions

Does it support @page and page-break CSS?

Yes. Pages render in Chromium's print mode, so @page size and margin rules, break-before, break-inside: avoid and print media queries all apply.

Can I set headers, footers or margins via the API?

Not as API options today. Put them in your print CSS or template instead, which is also easier to preview.

Will web fonts and charts render?

Yes, they load like in a normal browser. Add waitForSelector for an element your page adds when rendering is complete, or a short delaySec.

Is my document stored?

The PDF is kept for 7 days so you can download it, then deleted. We don't read or use your documents.

How many PDFs can I render?

Up to 5 per request, and as many requests as your plan and the 60 requests/minute rate limit allow.

Ship PDFs without running a browser fleet

Plans from $29/month with 10,000 successful results. Failed requests never count. Cancel anytime from the billing portal.

Get an API keyTry the live demo