HTML to PDF in n8n

One HTTP Request node. No Code node, no npm install puppeteer inside your n8n container.

HTML PDF PNG JPEG URL
No credit card required · 500 free renders/month

The node configuration

Everything happens in one standard HTTP Request node — no community node to install and no self-hosting requirement.

  • Method — POST
  • URLhttps://api.filecook.com/render/pdf
  • Authentication — Header Auth, Authorization: Bearer YOUR_API_KEY
  • Body — JSON, with html built from an expression
  • Response — set the format to File so the PDF arrives as binary data

Why not a Code node

The usual n8n answer is to install Puppeteer and drive it from a Code node. That works on self-hosted n8n and not at all on n8n Cloud, it inflates your container, and it puts a Chromium process inside the same runtime as your workflows. An HTTP call has none of those properties and behaves identically on both.

Workflows this unlocks

Once the PDF is binary data in the workflow, every downstream n8n node can consume it — Gmail, Slack, S3, Google Drive, or an FTP upload.

  • Invoice on payment. Stripe webhook → build HTML → render → attach to a Gmail node
  • Scheduled reports. Cron → query the database → render → post to Slack
  • Certificates on completion. Form submission → render → email the participant
  • Archival snapshots. Daily URL render → upload to S3 with a dated key

Zapier and Make

The same approach works anywhere with a generic webhook or HTTP action. In Zapier use a Webhooks by Zapier POST step; in Make use the HTTP module with "Get a file" as the response type. There is nothing n8n-specific about the API.

Frequently asked questions

Is there an official n8n community node?
Not yet. The standard HTTP Request node covers the full API, and it works on n8n Cloud where community nodes are restricted.
Does this work on n8n Cloud?
Yes. That is the main advantage over the Puppeteer-in-a-Code-node approach, which cannot run on n8n Cloud at all.
Do you support modern CSS like Grid and Flexbox?
Yes. Filecook renders on the latest Chromium, so CSS Grid, Flexbox, custom properties, and modern selectors all behave exactly as they do in Chrome. If it looks right in your browser, it looks right in the PDF.
Am I charged for failed renders?
No. Only successful 200 OK responses count against your quota. Malformed HTML, timeouts, and upstream errors are not billed.
Is there a free tier?
Yes — 500 renders a month, free forever, with no credit card required. That covers the playground, the full API, and both PDF and image output.

Keep reading

Ready to start cooking?

500 renders a month, free forever. No credit card, no sales call.