Guide

A cheap PDF API for n8n

PDFops is a PDF API with a community node for n8n, verified by n8n. It does the PDF jobs n8n cannot do on its own: listing a form's fields and filling them, merging, splitting, extracting, deleting and rotating pages, watermarks and page numbers, passwords, metadata, and building an invoice from JSON. It costs nothing up to 250 calls a month, and $16 a month for 4,000 after that. If you need OCR or AI extraction from scanned documents, it is the wrong tool, and this page says what to use instead.

What you can do in a workflow

OperationWhat it does
Inspect FieldsLists a PDF's form fields (names, types, options, current values) and returns a paste-ready fill template.
Fill FormTakes a PDF as binary plus your values and returns the filled PDF as binary. Flatten locks the values into the page.
MergeCombines the PDFs from all incoming items, in item order, into one file.
Generate InvoiceTurns structured JSON (from, to, items, tax_rate, currency) into a complete invoice PDF, with no template to design.
Extract PagesKeeps only the listed pages, in the order given, so it also reorders or duplicates them.
Delete PagesRemoves the listed pages or ranges.
Rotate PagesRotates all pages, or the listed ones, by 90, 180 or 270 degrees, clockwise or counter-clockwise.
Split PDFCuts one PDF into parts by page ranges or every N pages, and emits one item per part with its PDF binary.
Add WatermarkStamps a text watermark on every page, with opacity and position options.
Add Page NumbersPrints page numbers in a format you choose, such as Page {n} of {total}.
Unlock PDFRemoves the password and restrictions from a PDF you can already open.
Protect PDFAdds a user or owner password and permission flags (AES-128).
Get MetadataReturns page count, page sizes and rotation, the Info fields and encryption status as JSON.
Set MetadataWrites title, author, subject, keywords and the other Info fields.
Get UsageReturns your tier, quota and remaining calls, so a workflow can check headroom. Needs a key.

Node 0.3.0, on npm since November 2026, carries all fifteen operations; the ten page and document operations arrived in that release. n8n's verified listing shows the version its review has approved, so if your Community Nodes panel shows an older version, update the node there. Every route is also callable from an HTTP Request node with a multipart body and an X-API-Key header: extract-pages, delete-pages, rotate, split, watermark, page-numbers, unlock, protect, metadata and set-metadata. Node and HTTP calls count against the same quota.

Fill, merge and invoice are deterministic: the same input gives a byte-identical PDF, so re-running a workflow never produces a false diff. There is no headless browser to host.

What it costs

PlanCalls per monthPrice
No key100 per IP$0
Free key250$0, email only, no card
Indie4,000$16 a month
Pro25,000$79 a month

Only successful calls count, so a rejected request does not use up your quota. Full details are on the pricing page.

Install it

On self-hosted n8n, go to Settings → Community Nodes → Install and enter n8n-nodes-pdfops. It runs without a credential, on a limit shared by everything calling from your IP. To add a key, create a PDFops API credential; getting a free key takes about a minute.

A typical workflow

Say a webhook or a Google Sheets row should produce a filled form. First, find the form's real field names, which are often nothing like the labels on the page: run Inspect Fields once on the blank PDF, or drop it into the free Form-Field Inspector. Then build the workflow:

Webhook or Sheets row
  → HTTP Request   (download the blank form as a file)
  → Fill Form      (the file, plus your data keyed by those field names)
  → Gmail or Drive

Fill Form works on the PDF in the incoming item, so the download comes straight before it. Turn on Flatten if the result should not stay editable. The n8n walkthrough covers a similar webhook flow in more detail.

Which route fits your job

Your jobUseWhy
Read text from a digital PDFExtract from File (built in)Free, and no external service.
Read a scanned PDFAn OCR service or LLM stepPDFops does not do OCR.
Fill an existing PDF formPDFops, or pdf-lib in a Code nodepdf-lib is free but needs self-hosting with external modules allowed, and you handle the edge cases.
Merge PDFsPDFops, or pdf-lib in a Code nodeSame trade-off. The node takes one item per PDF and returns a single binary.
Extract, delete, reorder or rotate pagesPDFops, or pdf-lib in a Code nodeNode operations since 0.3.0: Extract Pages (which also reorders), Delete Pages and Rotate Pages. Each is also one multipart call: extract-pages, delete-pages, rotate.
Split a PDF into several filesPDFops, or pdf-lib in a Code nodeThe node's Split PDF emits one item per part with its PDF binary. The API route returns the parts as base64 in JSON, so from an HTTP Request node you decode each one into a file.
Add a watermark or page numbersPDFops, or pdf-lib in a Code nodeText only, in standard Helvetica. See watermark and page-numbers.
Password-protect or unlock a PDFPDFopsProtect adds a password; unlock removes restrictions from a file you can already open. Neither cracks passwords.
Read or set title, author and page countPDFopsMetadata reads page sizes, Info fields and encryption status; set-metadata writes the Info fields.
Generate an invoice from dataPDFopsNo HTML template or browser to run.
Design custom documents from HTMLAn HTML-to-PDF servicePDFops has no template designer.
Keep PDFs on your own serverspdf-lib on self-hosted n8nPDFops is a hosted API, so files are sent to us.

Frequently asked

What is the cheapest way to handle PDFs in n8n?

It depends on the job. Extract from File is built in and free for reading text. For filling forms, merging and invoices, a Code node with pdf-lib costs nothing but needs a self-hosted instance with external modules allowed. PDFops starts free: 100 calls per IP per month with no key, 250 with a free key, then $16 a month for 4,000 calls. Only successful calls count.

Can n8n fill PDF forms on its own?

Not without an external service or library. Extract from File reads text out of a PDF but cannot write into form fields. You need a service node such as n8n-nodes-pdfops, an HTTP Request to a form-filling service, or a Code node with pdf-lib.

How do I merge PDFs in n8n?

Add the PDFops node, choose Merge, and send it one item per PDF as binary data. It combines all incoming items, in item order, into a single output PDF. The node works without a credential.

Do I need an API key?

No. Every operation except Get Usage runs without a credential at 100 requests per IP per month, shared by everything calling from that IP. A free key raises that to 250 a month and needs only an email address, no card.

Can it read scanned PDFs or do OCR?

No. PDFops does not do OCR or AI extraction. For scanned documents, use an OCR service or an LLM step, then bring the extracted values to Fill Form if you need them written into a form.

What if my PDF has no form fields?

Fill Form needs real AcroForm fields. If the PDF is a flat scan or has no fields, add fields to the template once, which the free Make a PDF Fillable tool can do, or use Generate Invoice if an invoice is what you need.

Do my PDFs leave my n8n instance?

Yes. PDFops is a hosted API, so each PDF is sent to our service for processing. If your documents must stay on your own infrastructure, use pdf-lib in a Code node on a self-hosted instance.

Try it

Install n8n-nodes-pdfops and run your first call with no key. When you want more room, get a free API key: 250 calls a month, no card. You can also test your own PDF in the playground first.