Skip to main content
Renders a PDF from a template and data, and returns the document bytes directly.
Synchronous: the response body is the finished PDF (application/pdf). No job, no polling.

Headers

string
required
Bearer tipar_live_<key>. See Authentication.
string
required
application/json.

Body

object
required
The template document. Has a single key, page, describing the document. See Template basics and the full schema.
object
required
The data the template interpolates against. Any JSON object. Every {{path}} in the template must resolve here.
Request body

Response

application/pdf
The rendered PDF, as raw bytes. There is no JSON wrapper — write the body straight to a file or stream it to your client.
Every plan returns clean, unbranded PDFs — Free and Pro alike. (The anonymous playground is always watermarked with a diagonal tipar.dev stamp; that’s a demo backstop for the no-key endpoint, not a plan feature.)

Errors

Each non-2xx response is a Problem Details document. The full breakdown — including every 422 template.* code and example bodies — is on the errors page.
422 is the one to handle in template development: it means the template reached the renderer but couldn’t produce a document. The response lists every problem at once (all missing data paths, all structural errors), so you can fix them in a single pass. See Errors → 422.

Full example

A complete invoice request, in a few languages:
See the invoice example for a full template + data pair to drop in.