PDFShift is a hosted HTML-to-* API. You POST HTML or a URL, Chromium renders it, and you get a PDF, PNG, JPEG, or WebP. That is the product. RelayPDF is a PDFShift alternative when the rest of the pipeline is not HTML: GitHub-flavoured Markdown, Office files, merge and protect, a CLI, and an MCP server, billed from a prepaid wallet instead of a monthly credit allotment. The capability matrix lives on https://relaypdf.com/compare/pdfshift. This post is not a rewrite of that page.
If you already have a page that looks right in Chrome and you only need that page as a file, either API will do the job. The interesting difference is what each vendor invested in after the first successful render.
What PDFShift ships
PDFShift’s public site and docs (https://pdfshift.io, https://docs.pdfshift.io) describe an HTML conversion service. The convert endpoints take a source field that is either raw HTML or a URL. Output types on the documented API are PDF, PNG, JPEG, and WebP. Rendering is Chromium; they document a processor-version header so you can pin Chromium 116 or 142. New accounts default to the latest.
The convert-to-PDF surface is one long options object. Landscape and format (Letter, Legal, Tabloid, Ledger, A0–A5, or width×height including height=auto), zoom, margins, page ranges, CSS/JS injection, delay, timeout, wait_for (a global function that must go truthy), wait_for_network, cookies, headers, basic auth. Header/footer HTML uses {{page}}, {{total}}, {{date}}, {{title}}, {{url}}. Protection and watermark ride the same request. sandbox=true watermarks the file, skips credits, and is capped at 10 documents per minute.
Delivery: raw bytes, Base64, a JSON S3 URL (filename; they keep it two days), your S3 path, or GCS. Webhooks return 202. Parallel conversion: up to 50 jobs, array of sources plus webhook. Auth is X-API-Key. They publish GDPR on the site and DPA. OpenAPI includes is_gdpr and is_hipaa flags that refuse PDFShift-managed S3 storage — their claim, not an audit. No Markdown input, no Office convert, no merge/form-fill routes, no CLI, no MCP. Screenshots are first-class (PNG/JPEG/WebP). Their “templates” are stored HTML, not Handlebars.
Their real artifact: the guide matrix
PDFShift’s marketing investment is a language grid. https://pdfshift.io/guides is a directory of the same conversion story in Go, Node, PHP, Python, Java, C#, Ruby, and cURL. Each language folder is a set of how-tos: send HTML, fetch a URL, add a header, wait for JavaScript, drop the file on S3. That is useful if your team lives in one of those languages and you want copy-paste, not an SDK with types.
RelayPDF’s docs (https://relaypdf.com/docs) invert that: one REST contract, official SDKs (Node, Python, PHP, C#, Java), then CLI and a stdio MCP server. Fewer “watermark in Ruby” pages. More POST /v1/pdf, /v1/convert, /v1/pdf/merge, and relaypdf setup so an agent does not ask you to paste a key. PHP shop, first week: their guides. Agent that needs Office, Markdown, and merge: MCP beats an eighth language tutorial.
Limits (theirs, from public docs)
Credits are not “one document.” Their help center and FAQ: one credit = one conversion up to 5 MB of generated output. A 14 MB PDF is three credits. Unused credits do not roll over. Free is 50 credits/month, no card. Pricing (https://pdfshift.io/pricing) lists 15 MB and 30s timeout on Free; paid ads no size cap and timeouts up to 15 minutes. The FAQ still says 30s Free / 100s paid. Both numbers are theirs — check the plan you buy. Optional overage: $0.04/credit on Starter down to $0.001 on Shift 1M. Alerts at 50/80/100%; without overage, 100% blocks you. Support they publish: Business in hours, other paid in 12 hours, Free in two days. Homepage stats (300M+ conversions, 15k+ developers, 1.5s, 99.99% / FAQ 99.9%) are vendor numbers, not ratings.
Pricing (verified)
PDFShift monthly (https://pdfshift.io/pricing, 23 August 2026): Free $0/50 credits; Starter $9/500; Boost $24/2,500; Growth $39/5,000; Business $99/25,000; Shift 50k $149; 100k $249; 250k $499; 500k $799; 1M $999. Annual = 10 months billed. Custom above 1M. FAQ: average customer ~1,300 credits/month (Boost, if still true).
RelayPDF is a prepaid wallet (https://relaypdf.com/pricing). No monthly allotment; credit does not expire; $5 trial, no card. Successful jobs only: HTML/URL/Markdown/screenshot $0.015; Handlebars render $0.015; AI template generate $0.05; LibreOffice $0.04; wkhtmltopdf $0.025; tools/barcode/zip $0.005. Failures do not debit. Top-up bonuses 5/6/10/15% at $20/$50/$100/$500. Auto-reload $5–$500. Do not crown a cost-per-PDF winner: a large PDFShift file burns extra credits; RelayPDF’s $0.015 is per successful /v1/pdf, 15 MB input cap, 24-hour files.
What RelayPDF adds after HTML
HTML/URL/Markdown/template → PDF is POST /v1/pdf (exactly one source field). Formats A0–A6, letter, legal, tabloid, ledger; margins; HTML header/footer; landscape; scale; printBackground on; waitUntil load | domcontentloaded | networkidle0 | networkidle2; timeout max 60s. Response: binary, 24-hour URL, or async. Product: https://relaypdf.com/html-to-pdf. Fields: https://relaypdf.com/docs. Markdown is GitHub-flavoured on the same route — runbooks without a dummy HTML wrapper.
Office is POST /v1/convert: DOCX, XLSX, PPTX, ODF, CSV, images, email → PDF; PDF → HTML; PNG thumbnails. Tools are other POSTs: merge (2–20), extract, protect, unlock, bookmarks, raster, from-images, stamp, rotate, delete-pages, compress, info, text (existing layer, not OCR), forms, barcodes, zip. npx @relaypdf/cli setup writes the key mode 0600. relaypdf mcp is stdio MCP for Cursor/Claude. Query-string keys rejected. Logs keep time, endpoint, status, latency — not contents.
curl -X POST https://api.relaypdf.com/v1/pdf
-H "Authorization: Bearer pdf_live_…"
-H "Content-Type: application/json"
-d '{"markdown":"# Invoice 1042\n\n| Item | Amount |\n|------|--------|\n| Build | $400 |\n","filename":"invoice.pdf"}'
--output invoice.pdf
Side-by-side without cloning the landing table
The landing table is five rows. The useful distinctions sit next to it, not on it.
| Topic | PDFShift (public site/docs) | RelayPDF (public site/docs) |
|---|---|---|
| Job | HTML or URL → PDF / PNG / JPEG / WebP | HTML, URL, Markdown, template → PDF; Office convert; screenshots; PDF tools |
| Auth | X-API-Key | Authorization: Bearer pdf_live_… |
| Guides vs agents | Language guide matrix (8 languages) | REST + SDKs + CLI + MCP; machine-readable docs |
| Billing unit | Monthly credits; 1 credit ≤ 5 MB output; no rollover | Prepaid wallet; per successful operation; credit does not expire |
| Sandbox / trial | sandbox=true, watermarked, 10/min; 50 free credits/mo | $5 trial credit, real (unwatermarked) jobs, no card |
| Temp file | S3 URL kept 2 days (filename); or your bucket | 24-hour download, then deleted |
| Timeout (published) | Free 30s; paid FAQ 100s / pricing up to 15 min | Max 60s on /v1/pdf |
| HIPAA / OCR / e-sign / PDF/A | is_hipaa / is_gdpr flags in their OpenAPI; no OCR/e-sign/PDF/A claimed here | Not claimed |
When PDFShift is the right box
Stay if the document is a webpage, you want wait_for or a Chromium pin, you need S3/GCS from the convert call, and finance already buys monthly SaaS packs. sandbox is the cheap load test. Their PHP guides beat an OpenAPI file.
Leave if you wrap Markdown in dummy HTML, shell out to LibreOffice for uploads, or ask an agent to invent curl because there is no MCP. Also leave if leftover credits dying each month is a finance ticket. Their credit math is generated size, not “job succeeded and stayed small.”
A note on the compare landing
https://relaypdf.com/compare/pdfshift is a five-cell matrix: HTML/URL to PDF (both), screenshots, Office, merge/extract/protect/bookmarks, prepaid wallet. Use it as a pointer, not as a spec. In particular, PDFShift’s own homepage lists screenshot capture as a featured capability, so “screenshots: not core” on that table is too cute. The sharper split is Markdown + Office + MCP + wallet versus HTML-to-* + a language guide matrix + monthly credits. HTML-to-PDF details: https://relaypdf.com/html-to-pdf. Endpoint list: https://relaypdf.com/docs.
Neither vendor is a desktop editor, an e-sign product, or an OCR pipeline. Pick the API whose input types match the files you already have.