Render HTML to PDF, image, text, or Markdown.
PDFShift-compatible pricing and template surface, plus two output formats they don't offer.
PDFShift-compatible · 16.67% annual discount · HIPAA-ready · 11 code-sample languages
Quickstart in 30 seconds
A real call. Drop it in, swap in your key, and you have a working PDF.
curl https://pdfsub.com/v1/convert/pdf \
-H "Authorization: Bearer sk_live_..." \
-H "Content-Type: application/json" \
-d '{"source":{"url":"https://example.com"}}' \
--output invoice.pdfWhat you can render
Four output formats from one HTML/URL input. Same credit-cost rule across all four; same template surface, same options.
POST /v1/convert/pdfInvoices, reports, archival.
Image
POST /v1/convert/imageSocial previews, thumbnails. PNG, JPEG, WEBP.
Plain Text
POST /v1/convert/textETL pipelines, search indexes, RAG ingestion.
Markdown
POST /v1/convert/markdownStatic-site migrations, content audits.
More output formats - PDF manipulation, format conversion, OCR - coming in Phase 7. See the roadmap →
How it works
Three steps, no surprises. Stripe-style auth, real-Chrome rendering, delivery to wherever you want it.
Authenticate
Send your API key in the Authorization header. Per-key IP allowlists, scopes, and brute-force locks are enforced before every request.
Send request
POST to /v1/convert/* with HTML, a URL, or a template_id and Liquid variables. Rust engine renders via a real Chrome instance.
Receive output
Inline binary response, or async + webhook + cloud delivery (S3 / GCS / R2 / Google Drive / Dropbox).
Sample use cases
Generate invoices from HTML templates
Store your invoice HTML once with Liquid placeholders for customer name, total, line items. POST customer data; receive a rendered PDF.
POST /v1/convert/pdf
{
"template_id": "tpl_invoice_v2",
"data": {
"customer": { "name": "Acme Inc." },
"total": "1,499.00"
}
}Take social-share screenshots from URLs
Pass a URL and viewport size; receive a clean PNG. Same Chrome rendering as a real browser, no Lambda warmup, no headless-Chrome ops.
POST /v1/convert/image
{
"source": { "url": "https://example.com/post/42" },
"target_format": "png",
"viewport": { "width": 1200, "height": 630 }
}Extract clean text from web pages for RAG / search
Strip layout, scripts, ads, navigation. Get the meaningful text content for indexing - no third-party scraping vendor needed.
POST /v1/convert/text
{
"source": { "url": "https://docs.example.com/api" }
}Convert legacy HTML to Markdown for static-site migration
Hugo, 11ty, Jekyll, Astro. Take legacy HTML and emit clean Markdown - preserves headings, links, tables, code blocks.
POST /v1/convert/markdown
{
"source": { "url": "https://wp-blog.example.com/post-2017" }
}Pricing
Matches PDFShift exactly at every paid tier. Plus a 7-day free trial with full feature access.
Starter
$9
/month
- 500 credits / month
- $0.04 per overage credit
Boost ⭐
$24
/month
- 2,500 credits / month
- $0.03 per overage credit
Scale 100k
$249
/month
- 100,000 credits / month
- $0.01 per overage credit
+ 6 more tiers from $39 to $999 / month - see all on /pricing →
1 credit = up to 5 MB of generated output.
A 14 MB output consumes 3 credits (ceil(14 ÷ 5) = 3). Annual discount: 10 months free for the price of 12 paid (16.67% savings).
Already on PDFShift? You'll feel right at home.
PDFShift
HTML → PDF, PNG, JPEG, WEBP · templates · webhooks
PDFSub API
Same prices · same templates · same webhooks · plus HTML→text and HTML→Markdown
Side-by-side endpoint mapping, parameter rename guide, and code samples in every SDK language.
Read the migration guide →Compliance + security
Defaults that pass review. No checkbox security.
HIPAA-ready
BAA available on Business+ tiers. PHI never written to logs.
SOC 2 in progress
Type II audit prep underway. Append-only logs, role separation, retention controls in place.
Per-key IP allowlist + scopes
Restrict each key to specific IPs and HTTP scopes. Brute-force locks per source.
HMAC-signed webhooks
Every webhook delivery includes X-PDFSub-Signature. Verify with crypto.timingSafeEqual.
What's coming next
v1 ships HTML-input rendering. The 60+ tools below are on the Phase 7 roadmap - same API surface, same auth, same billing pool.
Phase 7 - non-AI tools
PDF manipulation
compress · merge · split · watermark · rotate · encrypt · decrypt · flatten · crop · resize
Format conversion
pdf → docx · pdf → pptx · pdf → xlsx · pdf → epub · office → pdf
Extraction
extract text · extract tables · extract images · extract forms
OCR
OCR scanned PDFs · OCR + searchable text layer
AI endpoints - separate billing pool
- AI summarize, translate, extract data, invoice / receipt / financial-report extraction
- AI handwriting → text
- Bank statement extraction (Tier 1 free / Tier 2 / Tier 3 fallback)
- AI multi-turn chat (with prompt-cache discount on turns 2+)
AI endpoints will require both API credits and AI credits when they ship. Bank statement extraction additionally consumes bank-page quota.
Frequently Asked Questions
How do credits work?
Why is the v1 surface so narrow?
When will PDF manipulation be available?
What's the difference between API credits and the tools subscription?
Do I need a credit card to read the docs?
Can I cancel anytime?
What happens if I exceed my plan?
Are there annual discounts?
Can I use this from a browser?
Is there a self-hosted option?
Start your 7-day free trial.
Card required. No charge until day 8. Cancel anytime.