PDFShift converts HTML to PDF using a headless Chrome renderer. That's its entire product focus — and it does it well. Custom page sizes, watermarks, headers, footers, PDF/A output, and encrypted PDFs are all supported. ChangeThisFile doesn't offer that depth for HTML-to-PDF, but it does offer something PDFShift doesn't: 690 conversion routes across every major file category, a free tier, 161 client-side routes, and an API simple enough that curl is the full integration guide.

Quick verdict

For HTML/URL-to-PDF with precise rendering: PDFShift. Headless Chrome rendering, custom headers and footers, PDF/A support, and watermarks are all first-class features.

For free tier API access with no card: ChangeThisFile. PDFShift's free plan is limited; ChangeThisFile gives you 1,000 conversions/month with no card required.

For multi-format workflows: ChangeThisFile. PDFShift's scope is HTML/URL → PDF. ChangeThisFile covers video, audio, ebook, archive, image, font, and document conversions.

For zero-dependency integration: ChangeThisFile. Call /v1/convert with curl or any HTTP client — no library to install.

Pricing comparison

PlanChangeThisFilePDFShift
Free tier1,000 conversions/month (no card)Limited free tier (check pdfshift.io for current details)
Entry paid$29/mo — 10,000 conversionsPaid plans from ~$9/mo (per their site at time of writing)
Mid tier$99/mo — 50,000 conversionsMultiple tiers by conversion volume
High volume$499 Scale / $1,999 GrowthHigher-volume plans available
Browser toolFree, no signup, unlimitedNot available

PDFShift's pricing is per PDF conversion. ChangeThisFile's pricing is flat per conversion for any of the 690 formats — one cost model regardless of whether you're converting HTML to PDF, WAV to MP3, or HEIC to JPG.

Feature comparison

FeatureChangeThisFilePDFShift
Free API tierYes — 1,000/mo, no cardLimited free tier
SDK requiredNo — curl/fetch/requests directlyClient libraries available (Python, Node, PHP, Ruby)
HTML → PDFYes (server-side via LibreOffice)Yes — headless Chrome, pixel-accurate
URL → PDF (live page rendering)NoYes
PDF/A outputNoYes
Custom headers/footers in PDFNoYes
PDF watermarkingNoYes
Client-side conversionsYes — 161 browser routesNo
Video / audio / ebook / archiveYesNo
WebhooksHMAC-signed, stdlib verifiableSupported

Format and route coverage

PDFShift converts HTML and URLs to PDF with a rendering fidelity that generic document converters can't match. It also supports PDF protection (passwords, permissions) and basic image-to-PDF conversion.

ChangeThisFile's 690 routes include the common HTML-to-PDF path plus formats PDFShift doesn't support: images across 12+ types (JPG, PNG, WebP, HEIC, AVIF, GIF, SVG, BMP, ICO, TIFF, PSD), video (MP4, WebM, MKV, AVI, MOV, GIF), audio (MP3, WAV, FLAC, AAC, M4A), ebooks (EPUB, MOBI, AZW3), archives (ZIP, RAR, 7Z, TAR variants), fonts (TTF, OTF, WOFF, WOFF2), and data (CSV, JSON, YAML, TSV, XML, TOML).

Scope of use case determines which fits: PDF-only production pipeline vs general-purpose conversion across the full file ecosystem.

Privacy and data handling

ChangeThisFile client-side routes process files in the browser — nothing uploads for images, data files, fonts, DOCX→HTML, HTML↔Markdown, and more. Architecture enforces this; it's not just policy.

ChangeThisFile server-side routes upload over HTTPS, convert, return, and auto-delete files. 24-hour R2 retention for async jobs, then deletion.

PDFShift renders HTML/URLs server-side using headless Chrome. For HTML-to-PDF use cases with public or internally-generated HTML, this is typically fine. For cases where the HTML contains sensitive data, check their data handling policy.

Developer experience

PDFShift ships client libraries for Python, Node.js, PHP, and Ruby. For their configuration-heavy API (headers, footers, margins, encryption), a library makes sense.

ChangeThisFile chose the opposite path: no SDKs, because the endpoint needs no wrapping. Post a file, name the target format, receive the conversion. That's the entire API surface. Source format auto-detected from filename. Bearer token auth. One endpoint.

curl -X POST https://changethisfile.com/v1/convert \
  -H "Authorization: Bearer ctf_sk_your_key" \
  -F "file=@invoice.html" \
  -F "target=pdf" \
  --output invoice.pdf

No pip install pdfshift, no version conflicts, no upgrade cycles. Webhook signature verification is ~25 lines of HMAC using Python's stdlib hmac module or Node's built-in crypto. Get your free key at changethisfile.com/v1/keys/free.

When to choose which

Use caseRecommended
HTML-to-PDF with pixel-accurate Chrome renderingPDFShift
URL-to-PDF (live web page capture)PDFShift
PDF/A, custom headers/footers, watermarksPDFShift
Free API tier with no card requiredChangeThisFile
Zero-dependency HTTP integrationChangeThisFile
Multi-format workflows (video, audio, image, ebook)ChangeThisFile
Privacy-sensitive filesChangeThisFile (client-side routes)
Standard document-to-PDF (DOCX, ODT)ChangeThisFile

PDFShift is the right tool if HTML-to-PDF rendering fidelity is your primary requirement and you need Chrome-accurate output with custom page configurations. For anything broader — or to start with a free tier — ChangeThisFile's free API handles 1,000 conversions/month with no card and no client library to install. One key, one endpoint, 690 formats.