Description
n8n-nodes-relaypdf
Official n8n community node for RelayPDF.
HTML to PDFs without the struggle. HTML to PDF API that converts HTML, Markdown, URLs, and published Handlebars templates to production PDFs. Chromium and LibreOffice run on RelayPDF, not on the n8n host.
- Docs: relaypdf.com/docs/n8n · integration guide
- npm:
n8n-nodes-relaypdf - Source: timspell1/n8n-nodes-relaypdf (publishes with npm provenance)
- REST:
https://api.relaypdf.com· OpenAPI
Failed operations are never billed. HTML, Markdown, and file contents are never logged by RelayPDF.
Install
Self-hosted: Settings → Community Nodes → Install n8n-nodes-relaypdf.
n8n Cloud: search RelayPDF in the nodes panel after n8n verifies the package. Until then, HTTP Request still works (see below).
Credential
Create a RelayPDF API credential.
1. Sign in at relaypdf.com → Dashboard → API keys.
2. Paste the key (pdflive…) with no Bearer prefix.
3. Connection test calls GET /v1/account and is not billed.
Do not put the key in the workflow JSON or query string.
Default API origin: https://api.relaypdf.com.
Authentication
HTTP Bearer on every RelayPDF request the node makes (Authorization: Bearer ). Not JWT.
Rate limiting and wallet
Trial wallets: 20 requests/minute. Funded or auto-reload: 60/minute. Burst: 5 / 10 seconds. Empty wallet → 402 payment_required (not billed).
Ledger unit is millicents (1 = $0.001). Final HTML PDF is $0.0004/job + $0.0003/browser second; convert $0.0004/job + $0.0005/execution second; tools $0.002. See wallet.
Nodes
| Node | Role |
|——|——|
| RelayPDF | Generate, convert, merge, tools, barcodes, zip, templates, jobs, account |
| RelayPDF Trigger | Signed dashboard webhooks (RelayPDF-Signature) |
Operations
Default Response is Binary, output field data. Point Gmail, Slack, and Google Drive at that field. URL returns a 24-hour download. Async can wait and still return bytes.
| Resource | Operation | HTTP | Description |
|———-|———–|——|————-|
| PDF | Create | POST /v1/pdf | HTML, Markdown, URL, or published template → PDF |
| PDF | Merge | POST /v1/pdf/merge | Merge 2–20 PDFs |
| PDF | Extract Pages | POST /v1/pdf/extract | Page ranges |
| PDF | Protect | POST /v1/pdf/protect | Password-protect |
| PDF | Unlock | POST /v1/pdf/unlock | Remove password |
| PDF | Add Bookmarks | POST /v1/pdf/bookmarks | Outline |
| PDF | Raster | POST /v1/pdf/raster | Pages → PNG/JPEG (zip if many) |
| PDF | From Images | POST /v1/pdf/from-images | PNG/JPEG → PDF |
| PDF | Stamp | POST /v1/pdf/stamp | Text watermark |
| PDF | Rotate | POST /v1/pdf/rotate | Multiples of 90° |
| PDF | Delete Pages | POST /v1/pdf/delete-pages | Drop pages |
| PDF | Compress | POST /v1/pdf/compress | Lossless optimize |
| PDF | Info | POST /v1/pdf/info | Page count / metadata JSON |
| PDF | Text | POST /v1/pdf/text | Existing text layer |
| PDF | Extract Data | POST /v1/pdf/data | Schema extract or Markdown |
| PDF | Form Fields | POST /v1/pdf/form/fields | List AcroForm fields |
| PDF | Fill Form | POST /v1/pdf/form/fill | Fill and flatten |
| Convert | Convert File | POST /v1/convert | LibreOffice / wkhtmltopdf |
| Document | Process | native paths | OCR, PDF/A, crop, resize, repair, optimize, attachments, extract-images, redact, compress, image-convert, email |
| Image | Create | POST /v1/images | HTML or URL → png/jpeg/webp |
| Barcode | Create | POST /v1/barcodes | QR / 1D / 2D |
| Zip | Create | POST /v1/zip | Zip files |
| Template | List | GET /v1/templates | Drafts |
| Template | Get | GET /v1/templates/:id | One template |
| Job | Get | GET /v1/jobs/:id | Async poll |
| Account | Get | GET /v1/account | Plan, rate tier, millicents (not billed) |
Convert File reads n8n binary and sets sourceFilename from the incoming file name. Do not base64-encode in a Code node.
Create PDF template body the node sends:
{
"templateId": "invoice",
"templateData": { "number": "INV-1042", "total": 1458 },
"filename": "invoice.pdf"
}
Trigger
RelayPDF Trigger receives dashboard webhooks.
1. Copy the node webhook URL into Dashboard → Webhooks.
2. Paste the secret shown once into the trigger.
Events are HMAC-SHA256. Header RelayPDF-Signature: t= of {t}.{raw_body}. Event header: RelayPDF-Event.
Events: job.completed, job.failed, wallet.topup, wallet.autoreload, wallet.autoreloadfailed, wallet.paymentrequired.
Errors
Same codes as REST / SDKs (unauthorized, paymentrequired, ratelimited, convert_unavailable, …). See errors. Raster and convert may take up to ~90s on a cold document worker.
Workflows
Importable JSON lives in workflows/:
After import, attach a RelayPDF API credential. Template workflows assume a published template slug such as invoice.
HTTP Request fallback
If community nodes are disabled:
POST https://api.relaypdf.com/v1/pdf
Authorization: Bearer pdflive…
Content-Type: application/json
Response Format: File
Put Output in Field: data
Body example: { "html": "
Hi
", "filename": "hi.pdf" }.
Related packages
| Package | Role |
|———|——|
| @relaypdf/sdk | Node / TypeScript SDK |
| @relaypdf/cli | CLI + MCP |
| relaypdf | Python SDK |
| PHP / C# / Java SDKs | sdks/php, sdks/dotnet, sdks/java |
License
MIT. Strategic Products LLC, d/b/a RelayPDF.