PDFPipe

Comparison

API2PDF alternative: PDFPipe

API2PDF is a well established pay-as-you-go API that renders HTML, URLs, and Office files into PDFs using headless Chrome, wkhtmltopdf, and LibreOffice. If you want flat, predictable pricing, a genuine free tier, and rendering that waits for fonts and images before it snapshots the page, PDFPipe is a focused alternative worth a look. Here is an honest side by side.

What API2PDF does well

API2PDF has been around for years and supports several engines under one account: headless Chrome for HTML and URLs, wkhtmltopdf for legacy templates, LibreOffice for Word and Excel conversion, plus image and merge helpers. Its pay-as-you-go model means you only pay for what you render, which suits spiky or low volume workloads. If you need Office document conversion or a single vendor for many output formats, API2PDF covers more surface area than PDFPipe does today.

Where PDFPipe focuses

PDFPipe does one thing: turn HTML into clean, reliable PDFs. The renderer waits for web fonts and images to finish loading before it captures the page, so you do not get half painted layouts or fallback fonts. Errors come back as honest JSON with a real status code instead of a 200 wrapping a broken document. Outbound requests run inside an SSRF sandbox, so user supplied HTML cannot reach internal metadata endpoints or your private network.

Side by side

FeatureAPI2PDFPDFPipe
Pricing modelPay as you go per renderFlat monthly tiers, predictable
Free tierTrial creditStanding free tier, no card
Waits for fonts and imagesConfigurable delayAutomatic, on by default
Error handlingJSON success flag in bodyReal HTTP codes, honest JSON
SSRF sandboxingNot documentedBuilt in, blocks internal hosts
MCP server for agentsNoYes, native MCP endpoint
Office and URL conversionYes, multiple enginesHTML to PDF focused
Response formatURL or base64 in JSONRaw application/pdf bytes

Calling PDFPipe

One endpoint, POST /v1/pdf, takes a JSON body and returns the raw PDF bytes directly. There is no success flag to inspect and no second request to fetch a hosted file. You stream the response straight to disk or to your user.

bash
curl -X POST https://api.pdfpipe.xyz/v1/pdf \
  -H "Authorization: Bearer pp_live_your_key" \
  -H "Content-Type: application/json" \
  -d '{"html": "<h1>Invoice 0042</h1>", "options": {"format": "A4"}}' \
  --output invoice.pdf

The same call from Node maps cleanly onto fetch. Because the body is raw PDF, you read it as an array buffer and write it out. A non 2xx status carries a JSON error you can branch on.

javascript
const res = await fetch("https://api.pdfpipe.xyz/v1/pdf", {
  method: "POST",
  headers: {
    "Authorization": "Bearer pp_live_your_key",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    html: "<h1>Invoice 0042</h1>",
    options: { format: "A4" },
  }),
});

if (!res.ok) {
  const err = await res.json();
  throw new Error(err.message);
}

const pdf = Buffer.from(await res.arrayBuffer());
await require("fs/promises").writeFile("invoice.pdf", pdf);

Built for agents

PDFPipe ships an MCP server, so an LLM agent can render a PDF as a tool call without you writing glue code. The agent passes HTML, gets back a document, and the SSRF sandbox keeps untrusted model output from reaching hosts it should not touch. If you are building automated reporting or document workflows on top of language models, that native MCP support removes a layer of plumbing that a generic pay-as-you-go API leaves to you.

Which to pick

Choose API2PDF if you need Office document conversion, multiple rendering engines, or strict per render billing for very low volume. Choose PDFPipe if your job is HTML to PDF, you want costs you can forecast, you care about rendering that waits for assets and fails honestly, and you want SSRF protection and an MCP server without extra setup. Both are solid; the right answer depends on your surface area and how predictable you need the bill to be.

Try a real render in the live playground, then read the full reference in the docs.

See pricing →