Switch in under an hour

Leaving DocRaptor?
We made it painless.

Airpdf is a drop-in alternative to DocRaptor with up to 3× cheaper rendering, no headless Chrome, predictable per-PDF pricing, and a visual editor your designers can use.

At a glance

Same job. Better economics. Fewer foot-guns.

D

DocRaptor

  • HTML→PDF via headless Chrome
  • $15+/mo entry, scales fast with volume
  • CSS-in-runtime · debug print stylesheets
  • No template editor; ship HTML/CSS yourself
  • No customer-owned storage option
  • Templates managed via raw HTML uploads
A

Airpdf

Recommended
  • Typed JSON tree → react-pdf, no Chrome
  • $0 free 50 PDFs · then $0.004–0.015 / PDF
  • Predictable layout · no CSS surprises
  • Visual drag-drop editor + JSON Schema
  • Bring your own S3/R2/Wasabi/MinIO bucket
  • Versioned templates · roll back in one click
How much you save

Slide your monthly volume. See your new bill.

PDFs per month2,000
05002k10k25k50k+

DocRaptor

Estimated monthly cost

Airpdf

Best plan + overage

You save

DocRaptor pricing as published 2026-05, extrapolated above their largest listed plan; Airpdf pricing per our tiers. Indicative, excluding taxes.

Drop-in mapping

Your DocRaptor request, translated.

Same shape — payload, response, error codes. The only thing that really changes is the rendering engine underneath.

POST docraptor.com/docsDocRaptor
curl -X POST https://docraptor.com/docs \
  -H "Content-Type: application/json" \
  -d '{
    "user_credentials": "abc",
    "doc": {
      "test": false,
      "type": "pdf",
      "document_content": "<html>…</html>"
    }
  }' -o invoice.pdf
POST api.airpdf.io/api/v1/renderAirpdf
curl -X POST https://api.airpdf.io/api/v1/render \
  -H "Authorization: Bearer airpdf_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "template": "invoice",
    "data": {
      "customer": {"name": "Acme Inc."},
      "items": [{"label": "Pro plan", "amount": 99}]
    }
  }' -o invoice.pdf
DocRaptor conceptAirpdf equivalentNotes
user_credentialsAuthorization: Bearer airpdf_…Bearer token, prefix airpdf_live_ / airpdf_test_
doc.document_content (HTML)template + dataTemplates pre-published in the dashboard, the payload sends just the data
doc.test = trueairpdf_test_… keyTest renders never count against your live quota
doc.javascript = trueNo JS execution needed: the schema is declarative
doc.prince_optionstemplate style + Page propsMargins, page size, headers and footers are configured per template
doc.callback_urlwebhook on render.succeededHMAC-signed delivery, replay protected
async = true{"async": true}Same flag, async via Oban + webhook
doc.name (filename)output filename headerAdd "filename" to your render request
In under an hour

Migration checklist.

  1. 1

    Sign up and create your workspace

    Free, no credit card. 50 PDFs every month, forever.

  2. 2

    Recreate your top 1–3 templates

    Use the visual editor. Most invoices and receipts take 10–15 minutes each, and variables map 1:1 from your existing JSON payloads.

  3. 3

    Generate a test API key

    airpdf_test_… renders are free and never count against your quota.

  4. 4

    Swap the endpoint and the auth header

    From docraptor.com/docs to api.airpdf.io/api/v1/render. Replace user_credentials with Authorization: Bearer ….

  5. 5

    Diff a few PDFs side by side

    Run the same payload on both engines and compare visual output, file size and latency.

  6. 6

    Roll out incrementally

    Promote test keys to live, drain DocRaptor traffic behind a feature flag, watch your usage dashboard.

Common migration questions.

Do I need to rewrite all my HTML templates?

You'll rebuild templates in the visual editor, or as a JSON tree — your call. The data payload shape (names, structure, types) usually maps 1:1, so your application code rarely changes.

What about advanced CSS and print stylesheets?

The common print features — margins, page size, page breaks, headers, footers, fonts — all map to template properties. PDF-spec extras such as bookmarks, named destinations and encryption are on the roadmap.

Can I run both in parallel during the cutover?

Yes. Most teams put Airpdf behind a feature flag, generate every PDF on both engines for a week, and diff the outputs before switching over.

What does support look like during migration?

Email support on every paid plan, dedicated Slack on Enterprise. We'll happily jump on a call to map a tricky template.

Will the free tier cover my test phase?

50 free PDFs a month plus unlimited test-key renders means most teams never spend a euro during the cutover.

Stop overpaying for headless Chrome.

50 free PDFs every month, forever. Migration in under an hour.