PDF Generator API

PDFend is a modern PDF generator API for developers and AI agents. Send HTML, get a PDF. Everything you'd expect from a Stripe-quality developer experience — typed SDKs, great docs, a generous free tier, and an MCP server so Claude and ChatGPT can create PDFs directly.

There are at least a dozen PDF generation APIs today. This page compares the well-known ones — DocRaptor, PDFMonkey, CraftMyPDF, PDFShift — with PDFend, so you can pick the right one. Spoiler: if you're building a modern product (2024+ stack, AI features, typed SDKs mandatory) PDFend is designed for you.

Comparison table

Highlights only — each cell is a link to the relevant docs page or alternative landing on either vendor's site. Prices as of April 2026.

FeaturePDFendDocRaptorPDFMonkeyCraftMyPDFPDFShift
Modern Resend-style DXYesNoPartialNoPartial
Rendering engineChromiumPrince XMLChromiumChromiumChromium
MCP for AI agentsYesNoNoNoNo
HTML + CSS inputYesYesYesDrag-dropYes
Template engineHandlebarsNoLiquidProprietaryNo
Typed TS + Python SDKYesRuby-firstNoNoPartial
Free tier100 PDFs/moTrial20 PDFs100 PDFs50 PDFs
Starting paid price$19 / 2k$15 / 125$19 / 300$19 / 1k$9 / 500
Async + webhooksYesAsyncYesNoPartial
Generations logYesPartialYesPartialNo

When PDFend is the right choice

PDFend is a strong default if any of these are true for your team:

  • You write TypeScript or Python and want typed SDKs by default.
  • You're using or planning to use AI agents (Claude, ChatGPT, Cursor) and want them to generate PDFs natively.
  • You're evaluating PDF APIs for a new product and want to ship on the free tier before paying.
  • You're migrating off wkhtmltopdf and want the new stack to be modern from day one.
  • You need a template engine, webhooks, and a logs viewer — not just a render endpoint.

When PDFend is not the right choice

Being honest, there are cases where another option is better:

  • You need PDF/A for archival compliance today. Use DocRaptor, which has it natively. PDFend ships PDF/A in 2026.
  • You want a drag-and-drop visual template editor. Use CraftMyPDF or PDFGeneratorAPI. PDFend stays HTML/CSS.
  • You need Office formats (XLSX, DOCX) from the same API. Use DocRaptor or add a separate tool alongside PDFend.

The simplest working example

This is everything needed to generate a PDF with PDFend from scratch — no library, just curl:

curl -X POST https://api.pdfend.com/v1/generate \
  -H "Authorization: Bearer pk_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "html": "<h1>Hello, PDFend!</h1>",
    "options": { "format": "A4", "print_background": true }
  }'
{
  "id": "pdf_01HXABC",
  "status": "completed",
  "url": "https://files.pdfend.com/pdf_01HXABC.pdf",
  "pages": 1,
  "size": 18420,
  "duration_ms": 784
}

What's in the box

01

Chromium rendering

What you see in the browser is what you get in the PDF. Full CSS3, Flexbox, Grid, Google Fonts, SVG charts — all supported natively.

02

HTML + Templates

Send raw HTML or reference a stored Handlebars template. Pick the mode that fits the job, mix freely.

03

TypeScript & Python SDKs

Typed inputs, typed results, typed errors. Autocomplete every option and catch bugs at compile time.

04

MCP server for agents

Claude Desktop, Cursor, ChatGPT — drop in a config entry and your agent generates PDFs as a native tool call.

05

Sync + Async modes

Sync for sub-second invoices, async with webhooks for 200-page reports. Same endpoint, one flag.

06

Webhook delivery

Register a webhook URL and we'll POST every completion (or failure) with a signed payload. Retries with exponential backoff.

07

Generations log + replay

See every request, filter by status, replay a failed render with the exact inputs. Debug in production without guesswork.

08

Per-plan rate limits

Free: 1 req/s. Starter: 5 req/s. Pro: 20 req/s. Scale: 60 req/s. Enterprise: custom. Burst allowances on every tier.

09

Free tier, no watermark

100 PDFs/month at $0, production quality, no credit card. Enough to validate your idea before paying anything.

Who builds on PDFend

case · 01

SaaS invoices and receipts

Per-user billing documents with company branding, multi-currency totals, tax breakdowns. Async mode for month-end batch runs.

case · 02

Reports with charts and tables

Weekly KPI exports, quarterly board decks, SOC audit summaries. SVG charts render crisp at any zoom, tables page-break intelligently.

case · 03

Contracts and agreements

MSA, DPA, NDA templates with Handlebars — inject client names, dates, clauses. Headers, footers, page numbers, signature blocks.

case · 04

Certificates, tickets, badges

Single-page documents with custom fonts, backgrounds, QR codes (as SVG). Perfect for course completion, events, credentials.

case · 05

AI agent outputs

Your agent produces a research summary or a workflow output — turn it into a PDF via MCP without writing integration code.

case · 06

Migrating from wkhtmltopdf

wkhtmltopdf was archived in January 2023. PDFend is a drop-in replacement for the common shell-out pattern.

Pricing, plainly

PDFend pricing is a single monthly fee per plan, which includes a fixed number of PDFs. You don't pay different rates for different document types or formats. Plan limits are hard caps — your bill never grows on its own, and you can upgrade anytime when you need more.

PlanPricePDFs / moEffective per-PDF
Free$0100
Starter$192,000$0.0095
Pro$4910,000$0.0049
Scale$14950,000$0.003
EnterpriseCustomCustomCustom
FAQ

Frequently asked questions.

01What is a PDF generator API?
+
A PDF generator API is a hosted HTTP service that takes HTML (or a template) and returns a PDF. Instead of running headless Chrome or Prince yourself, you make a single request and receive a URL to the finished file. The API handles rendering, scaling, storage, and all the operational work.
02Why not just run Puppeteer in my own Lambda?
+
You can, and many teams do at first. The pain points show up at scale: cold starts of 3–5 seconds, 200MB+ bundles, 500MB+ memory usage per render, and zombie Chrome processes that OOM your function. A managed API amortizes Chromium pooling and warm starts across many customers, so you pay for PDFs, not idle browsers.
03What rendering engine does PDFend use?
+
Chromium, via Playwright. Same engine as Chrome and Edge — so anything that renders correctly in a browser renders correctly in the PDF. Full CSS3, Google Fonts, SVG, modern selectors, everything.
04How does pricing work?
+
Per-plan monthly tiers, not per-document type. Free: 100 PDFs. Starter: $19/mo for 2,000. Pro: $49/mo for 10,000. Scale: $149/mo for 50,000. Enterprise: custom. Plan limits are hard caps, so your bill never grows on its own — upgrade anytime when you need more.
05Can I use templates?
+
Yes. Create a Handlebars template via POST /v1/templates, then generate with template + data instead of full HTML. Supports loops, conditionals, helpers, and sample_data for preview in the dashboard.
06What about AI agents — does PDFend really support Claude and ChatGPT?
+
Yes. We ship an MCP (Model Context Protocol) server that exposes three tools: generate_pdf, generate_pdf_from_template, and list_templates. It works in Claude Desktop, ChatGPT desktop, Cursor, and any MCP-aware agent. Install with npx, add the API key, done.
07How reliable is the service?
+
We target 99.95% uptime on Pro+ plans, with multi-AZ deployment, per-render isolation, and a public status page. Enterprise plans can get a contractual SLA. Every render runs in its own Chromium context, so one customer's runaway JavaScript can't affect anyone else.
08Can I self-host?
+
Enterprise plans only. The rendering pipeline (Playwright + a thin Hono API) can be deployed on your infrastructure with the same API surface. Point the SDK at a private URL and it behaves identically.
09How do I get started?
+
Sign up at pdfend.com/sign-up, create an API key in the dashboard, install @pdfend/sdk (npm) or pdfend (PyPI), and make your first call. Usually under 5 minutes end-to-end.
Keep reading

Related pieces.

Pick the PDF API that's built for 2026

Free tier. Typed SDKs. MCP for AI agents. Simple per-plan pricing. Give PDFend an afternoon and see how it feels.