# HTML to PDF in n8n Convert HTML or URLs to PDF in n8n workflows with the HTTP Request node and the html-pdf.com API. You get a binary PDF file or a 24h download link. **Quick answer.** Add an **HTTP Request** node with these settings and run it. You get back a PDF download link. - **Method:** `POST` - **URL:** `https://html-pdf.com/v1/pdf` - **Header:** `Authorization` = `Bearer hp_live_...` - **Body (JSON):** `{"html": "

Hello

", "response": "url"}` ## Get an API key This step gives you a key. Get one by email at https://html-pdf.com/login, or with one call: ```bash curl -X POST https://html-pdf.com/v1/signup \ -H "Content-Type: application/json" \ -d '{"email": "you@example.com"}' ``` Then open the link we email you to confirm your address. That adds the 100 free credits. 1 credit = 1 PDF page, and no card is needed. ## Connect Here is the full node setup. Add an **HTTP Request** node: - **Method:** `POST` - **URL:** `https://html-pdf.com/v1/pdf` - **Authentication:** Generic Credential Type → **Header Auth**. Set Name to `Authorization` and Value to `Bearer hp_live_...`. - **Send Body:** on. **Body Content Type:** JSON. **Specify Body:** Using JSON. ```json { "html": "

Order {{ $json.orderId }}

Total: {{ $json.total }}

", "format": "A4", "margin": "15mm", "filename": "order.pdf" } ``` Your HTML may come from an earlier node and contain quotes or line breaks. In that case, build the body with an expression so it is escaped correctly. ``` {{ JSON.stringify({ html: $json.html, format: "A4", margin: "15mm" }) }} ``` **Get the PDF as a file:** under **Options → Response**, set **Response Format** to **File**. The PDF lands in the item's binary property `data`, ready for Gmail, Google Drive, S3 or Slack nodes. **Or get a link:** add `"response": "url"` to the body and keep Response Format as JSON. You get `{"url": "...", "pages": 1, "credits_remaining": 99, ...}`. The link is valid for 24 hours. For a web page, send `{"url": "https://example.com"}` instead of `html`. ## Try it These two workflows show common ways to use the node. - Webhook → Code (build HTML invoice) → HTTP Request (PDF, Response Format File) → Gmail (attach `data`). - Schedule → HTTP Request (`{"url": "https://your-dashboard.example.com/report", "media": "screen"}`) → Google Drive upload. ## Tips These settings help with layout, cost and monitoring. - **Page breaks:** put `
` between sections in your HTML. - **Page numbers:** add `"footer_html": "
/
"` and a margin. - **Set `max_pages`** so bad input never burns credits. Renders over the limit fail and cost nothing. - **Monitoring:** turn on **Include Response Headers and Status** to read `X-Pages` and `X-Credits-Remaining`. ## Troubleshooting Most problems come from the response format or broken JSON. - **PDF shows up as garbled text:** Response Format is still JSON or Autodetect. Set it to File. - **400 `invalid_json`:** your HTML broke the JSON. Use the `JSON.stringify` expression above. - **403 `email_not_confirmed`:** the email behind the key isn't confirmed yet. Click the link we emailed you (it adds the 100 free credits), then run the workflow again. - **402 `insufficient_credits`:** top up at https://html-pdf.com/login. Credits never expire. Turn on **Settings → On Error → Continue** if you want to handle this in the workflow. ## FAQ ### Is there a free HTML to PDF node for n8n? You can use the built-in HTTP Request node with html-pdf.com. New accounts get 100 free credits once, with no card, and each credit is one PDF page. ### How do I get the PDF as a binary file in n8n? Under **Options → Response**, set **Response Format** to **File**. The PDF is stored in the binary property `data`, which you can attach in Gmail or upload to Google Drive or S3. ### Can I convert a URL to PDF in n8n? Yes. Send `{"url": "https://example.com"}` in the body instead of `html`. The page must be publicly reachable. ### Do credits expire? No. Purchased credits never expire, and failed renders cost nothing. Packs start at $10 for 1,000 credits. Full reference: [API docs](https://html-pdf.com/docs) · [MCP server](https://html-pdf.com/mcp)