Features
Thirty-one options. You will use six.
The defaults render a clean A4 with fonts and images already handled. The rest is there for the day your document gets complicated.
Rendering
A real browser, pinned to a version we upgrade on purpose.
URL or raw HTML
Point at a page, or send the markup and let us fetch its assets. Templates you already render server-side work unchanged.
Smart waiting
Wait for network idle, a CSS selector, a document event, or a fixed delay. No more PDFs of your loading spinner.
1,100 bundled fonts
All of Google Fonts plus the usual system faces, with emoji and CJK coverage. Or upload your licensed brand font once.
Print or screen CSS
Choose which media type applies, inject extra CSS or JavaScript, and hide selectors that only make sense on screen.
PDF or image
Same request, different output: PDF, PNG, JPEG or WebP. Full page, viewport, or clipped to one element.
Deterministic output
Same input, same bytes. Pin the engine version per project so a document you archive today still renders identically next year.
Page layout
The paper details that only show up when someone prints it.
Every ISO and US size
A0 through A6, Letter, Legal, Tabloid, Ledger — or an exact width and height for labels and tickets.
Headers, footers, page numbers
Send small HTML fragments that repeat on every printed page, with {page}, {total} and {date}.
Merge into one document
An ordered list of URLs or HTML blocks becomes a single PDF with continuous pagination, a cover and a table of contents.
Margins, scale, page ranges
Set margins per side, scale the content to fit, print a range, and force background colours to survive.
Watermarks
Stamp DRAFT, a customer name or a case number across every page, above or beneath the content.
PDF metadata
Title, author, keywords and subject written into the document.
Scale & delivery
For the first of the month, when everyone bills at once.
Async renders
Accept the job in milliseconds and finish it in the background. Nothing sits behind a 30-second gateway limit.
Webhooks with retries
Signed callbacks on success and failure, retried with backoff for 24 hours, replayable from the dashboard.
Batch endpoint
Up to 500 jobs per call, each with its own options, one job id to poll. Partial failures come back itemised.
Storage & CDN
Hosted files on 200+ edge locations with a retention you set. Or push to your own S3, R2 or GCS bucket.
Caching by fingerprint
Identical requests inside your TTL return the stored file instantly and do not spend a credit.
Priority queue
Mark the render a user is waiting on as interactive; it jumps ahead of your own bulk jobs.
Security
Because the documents are usually somebody's private data.
Signed URLs
HMAC the options with your secret and call the API from the client. The access key is public, the secret stays yours.
Auth pass-through
Cookies, bearer tokens, custom headers or basic auth, so private pages render without being made public.
Nothing kept by default
Without store the bytes exist only in the response. Stored files expire on your schedule, from one hour up.
EU or US rendering
Pin the region where pages are rendered and files are stored. DPA on request, GDPR-aligned by default.
Password & permissions
Encrypt the PDF, require a password to open, and restrict printing or copying at the file level.
Isolated sandboxes
Every render runs in a fresh sandbox with no shared cookies or cache, then is destroyed.
The fields you will actually type
A plain field in the request body, same names in every SDK. The documentation has the full list.
Try it with your ugliest page.
The one with the web fonts, the lazy images and the chart that loads last. 100 credits, no card.