Render HTML or URLs to pixel-perfect PDFs with a single API call. Async, cached, with webhooks and a TypeScript SDK.
No credit card required.
Get started in seconds
import { PdfOps } from '@pdfops/sdk'
const client = new PdfOps('pdfops_live_...')
// Render HTML → PDF (cached on identical input)
const render = await client.createRender({
source: { type: 'html', html: '<h1>Invoice #42</h1>' },
options: { format: 'A4' },
async: false,
})
console.log(render.output.url) // signed 1-hour download URL
console.log(render.cache_hit) // true on repeat calls — instant
Identical HTML + options always returns the same PDF instantly. No browser spun up, no quota used. Pass force_render: true to bypass.
Queue renders and receive a webhook on completion. Retries automatically with exponential backoff — up to 5 attempts over 30 minutes.
Pass an Idempotency-Key header and safely retry any request without double-rendering.
First-class TypeScript SDK with full type coverage. Works in Node.js, edge runtimes, and the browser.
PDFs are stored privately. Download URLs are HMAC-signed and expire in 1 hour. GET /v1/renders/:id always returns a fresh one.
Every PDF is deterministically normalized — stripped of timestamps and metadata, with a stable SHA-256 fingerprint for deduplication.