# HTML to PDF in Make

Convert HTML or web pages to PDF in Make (formerly Integromat) scenarios with the HTTP "Make a request" module and the html-pdf.com API.

**Quick answer.** Add an HTTP **Make a request** module with these settings and run it. You get back a PDF download link.

- **URL:** `https://html-pdf.com/v1/pdf`
- **Method:** `POST`
- **Header:** `Authorization` = `Bearer hp_live_...`
- **Body (JSON):** `{"html": "<h1>Hello</h1>", "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 module setup. Add the **HTTP** app's **Make a request** module:

- **URL:** `https://html-pdf.com/v1/pdf`
- **Method:** `POST`
- **Authentication:** API key. Put the key in a header named `Authorization` with the value `Bearer hp_live_...`. You can also add that as a plain header.
- **Body content type:** `application/json`, with the **JSON string** input method.

```json
{
  "html": "<h1>Invoice {{1.number}}</h1><p>Total: {{1.total}}</p>",
  "format": "A4",
  "margin": "15mm",
  "response": "url"
}
```

**Easiest: get a link.** Use `"response": "url"` and set **Parse response** to **Yes**. The module then outputs `url`, `pages`, `credits_remaining` and `expires_at`. Map `url` into the next module, for example **HTTP → Download a file** if you need the file itself. The link is valid for 24 hours.

**Direct file:** leave out `response` to get a binary PDF, and set **Parse response** to **No**. The module's **Data** output is the PDF. Map it as the file content in Google Drive, Gmail, Dropbox and similar modules, with a file name like `invoice.pdf`.

For a web page, send `{"url": "https://example.com"}` instead of `html`.

## Try it

These two scenarios show common ways to use the module.

- Webhook → Make a request (PDF link) → Gmail "Send an email" with the PDF attached through Download a file.
- Airtable "Watch records" → Text aggregator (build HTML) → Make a request → Google Drive "Upload a file".

## Tips

These settings help with layout and cost.

- **Escape your HTML:** HTML from other modules may contain quotes. Wrap mapped values with Make's escaping, or build the body in a **Create JSON** module and map its output.
- **Page breaks:** `<div style="break-before: page"></div>` between sections.
- **Page numbers:** `"footer_html": "<div style='font-size:9px;width:100%;text-align:center'><span class='pageNumber'></span> / <span class='totalPages'></span></div>"`, plus a margin.
- **Set `max_pages`.** Renders over the limit fail and cost nothing.

## Troubleshooting

Most problems come from the response format or broken JSON.

- **Output is a long binary blob:** you parsed a binary response. Use `"response": "url"`, or map the data as a file instead of as text.
- **400 `invalid_json`:** a mapped value broke the JSON. Use Create JSON.
- **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 scenario again.
- **402 `insufficient_credits`:** top up at https://html-pdf.com/login. Add an error handler route to catch it. Purchased credits never expire.

## FAQ

### Is there a free HTML to PDF option for Make?

Yes. A new html-pdf.com account gets 100 free credits once, with no card required. Each credit is one PDF page.

### How do I attach the PDF to a Gmail email in Make?

Either leave out `response` and map the module's **Data** output as the attachment, or use `"response": "url"` and add an **HTTP → Download a file** module before Gmail. Both give Gmail a real file.

### Can I add page numbers to PDFs made in Make?

Yes. Add a `footer_html` value with `pageNumber` and `totalPages` spans, as shown in the tips above, and set a margin so the footer has room.

### 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)
