Airpdf documentation
PDF generation infrastructure for modern SaaS — JSON-tree templates, REST API, customer-owned storage.
Why Airpdf
- Visual editor for templates with live PDF preview (REPL-style JSX → JSON tree).
- Multi-tenant SaaS: every workspace gets its own API keys, templates, storage routing.
- 2-6× cheaper than DocRaptor on every tier.
- Customer-owned storage (Bring Your Own S3 / R2 / MinIO / Wasabi).
- 12 official SDKs, hand-crafted for the four most popular (Node, Python, Go, Ruby).
- Webhook delivery with HMAC-SHA256 signature + replay protection.
Where to start
Just looking around?
Read the Quickstart — render your first PDF in 5 minutes.
Ready to integrate?
Follow the Integration guide. It walks you from signup to production-ready setup.
Looking for the API spec?
The REST API reference has every endpoint, request/response shape, and error code. A Postman collection and OpenAPI 3.1 spec are also published.
Building with a specific language?
Browse the SDK catalogue — Node, Python, Go, Ruby (Tier 1, fully maintained), plus 8 more languages in preview.
Concept overview
| Concept | What |
|---|---|
| Workspace (tenant) | Isolated environment with its own users, templates, API keys, storage |
| Template |
A JSON-tree document definition (Document → Page → View / Text / Image / List). Identified by a slug. |
| API key |
Bearer token, two environments per workspace: airpdf_test_* (sandbox) and airpdf_live_* (production) |
| Render request |
A single POST /api/v1/render call. Sync (PDF in body) or async ({id, poll_url} + webhook on completion) |
| Variables schema |
JSON Schema attached to each template, validates the data field of incoming render requests |
| Storage routing | Airpdf uploads PDFs to its managed Wasabi bucket by default. Customers can provide their own S3-compatible bucket. |
| MonthlyUsage | Counter that resets every billing cycle. Used for plan quota enforcement and overage billing. |
Get help
- 📧 hello@airpdf.app — we reply within 24h on paid plans
- 🟢 Status page — live system health
- 💬 GitHub Discussions on each SDK repo