Compared

PDFShift alternative with screenshots on the same key

PDFShift is a good PDF API, and at 2,000 small documents a month it costs about what we do. The differences are credits versus renders, screenshots from the same key, and a price gap that opens from 5,000 documents up. If you only make small PDFs and PDFShift has never let you down, there is no urgent reason to move.

Who this page is for

Your credits ran out in the third week of the month. Or you found that a long report with embedded images costs several credits, because PDFShift charges one credit per 5 MB of output and your 14 MB catalogue is three. Or your app now needs a screenshot next to the PDF, and you would rather not sign up for a second vendor with a second bill.

If none of that is you, PDFShift is fine, and this page will say so more than once.

What each one gives you

Both are the same shape: POST a URL or HTML, get a PDF. Both run Chrome. Both have headers and footers, margins, page formats, print media and a sandbox for development. The differences are at the edges, and the edges are where the bill and the second use case live.

PDFShiftRenderBadger
Unit of billingA credit per document, per 5 MB of outputA render, whatever the size
ScreenshotsNoYes, same key, same options
Free tier50 credits a month, 15 MB files, 30 s timeout100 renders a month, no card, no watermark
Overage$0.04 to $0.001 per credit, by plan$0.01 per render, every plan
AsyncPaid plansStarter and up
WebhooksYesYes, signed, with retries
OutputBytes, or a hosted link on requestBytes, or a signed URL with retention by plan
Timeout30 s free, up to 15 min paid30 s sync, longer with async
IdempotencyNoIdempotency-Key header
Delivery to your S3YesNot yet
Encryption and watermarksYesNot yet
Track recordSince 2018Since 2026

Pricing at 2,000 and 10,000 renders

PDFShift sells credits. A credit is one document up to 5 MB, so for invoices and receipts one document is one credit and the table below holds. For large reports, divide the PDFShift column by the number of 5 MB chunks in your output. Annual billing on PDFShift is ten months for twelve.

Documents a monthPDFShiftRenderBadger
2,000Boost, $24 monthly or $20 on annual, with 2,500 creditsStarter, $19
10,000Business, $99, with 25,000 credits; or Growth at $39 plus 5,000 overage at $0.025, $164Pro, $49

At 2,000 it is a wash. A few dollars either way, and PDFShift's Starter at $9 for 500 credits is cheaper than anything we sell if that is all you need. Pick on features at that volume, not price. From 5,000 documents a month the gap opens: PDFShift's next step up is $99, and its overage on the cheaper plans is two to four times ours.

Prices checked October 26, 2026. Both in US dollars.

Where PDFShift is the better choice

Three things we do not have today. PDFShift can encrypt a PDF and stamp a watermark on it, which matters for contracts and paid downloads. It can deliver straight into your S3 bucket, so your app never handles the bytes. And its paid timeouts run to fifteen minutes, for the report that genuinely takes that long. Those are on our list, but a list is not a feature. There is also the entry price: $9 a month for 500 documents, with no equivalent here. And eight years in production is worth something when the documents are invoices.

Switching

The request bodies are close enough that a switch is mostly renaming. Here is the same invoice on both.

PDFShift
curl -X POST https://api.pdfshift.io/v3/convert/pdf \
  -u "api:$PDFSHIFT_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "source": "<h1>Invoice #42</h1>...",
    "format": "A4",
    "margin": "20mm",
    "use_print": true,
    "footer": { "source": "<p>{{page}} of {{total}}</p>", "height": "15mm" },
    "sandbox": false
  }' -o invoice.pdf
RenderBadger
curl -X POST https://renderbadger.sh/v1/pdf \
  -H "Authorization: Bearer $RENDERBADGER_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "html": "<h1>Invoice #42</h1>...",
    "format": "A4",
    "margin": "20mm",
    "footerTemplate": "<p><span class=pageNumber></span> of <span class=totalPages></span></p>"
  }' -o invoice.pdf

The renames, in full:

PDFShiftRenderBadgerNote
sourceurl or htmlWe take two fields so there is no guessing whether a string is a URL.
use_printemulateMedia: "print"Print media is our default for PDFs, so you can drop it.
header, footerheaderTemplate, footerTemplateChrome templates with pageNumber and totalPages classes instead of {{page}} and {{total}}. Set a margin so they have room.
delaywaitForA CSS selector or a number of milliseconds.
zoomscaleSame meaning, 0.1 to 2.
sandbox: truea Free keyFree renders are real, unwatermarked and capped at 100 a month.
filenameoutput: "url"Returns a job with a signed URL instead of the bytes.
webhookasync: true, webhookUrlSigned POST on completion, Starter and up.
encryption, watermark, s3_destinationnone yetIf you use these, stay on PDFShift for now.

The full option list is in the docs.

Try it on your own invoice

The free plan is 100 renders a month, no card, and the key is live the moment you create it.

Get a free API key