Documentation
Render a PDF from HTML or a stored template with one HTTP call. The reference below is generated from the OpenAPI specification in the repository, so it describes the API that is deployed rather than the one someone remembered to document.
Quickstart
A key to a real PDF in under five minutes. curl first, then JavaScript, then Python.
Template guide
Handlebars syntax, the five helpers, page breaks, headers and footers, and fonts.
Errors
Every code, what causes it and what to do about it. This is where doc_url points.
Endpoint reference
Only /render is specific to a product. Jobs, templates and account are deliberately product-agnostic. When image rendering and file conversion arrive they reuse these unchanged, which is also why their documentation does not live under /docs/pdf.
- Render a PDF
POST /v1/pdf/render, the one product-specific verb. Send a stored template and data, or inline HTML, and get back a finished job.
- Jobs
Every render, whatever produced it. Job history is product-agnostic: image rendering and conversion will appear here unchanged.
- Templates
Stored Handlebars documents, so a render sends data rather than markup. List, create, read, update and archive them. Also product-agnostic.
- Account
Plan, credit balance and the boundaries of the current period. Read it before a batch to find out how many pages you have left.
- Health
An unauthenticated probe that names the failing dependency rather than answering a bare 503. Checks Postgres, Redis, R2 and the browser pool.
Recipes
Complete templates you can store and render as they are.
Not a developer?
The free invoice generator runs on this API and needs no account, no key and no code.