Skip to content

Rendering

Bindery Press renders templates into documents on demand. You send a template (or template ID) with data, and get back a rendered document in your chosen format.

FormatContent-TypeDescription
pdfapplication/pdfVector PDF. Best for printing and archival.
pngimage/pngRaster image. Configurable DPI.
zpltext/plainZebra Programming Language. For thermal label printers.
htmltext/htmlRendered HTML. Useful for previews and web display.

Control how you receive the rendered output with the delivery field.

{ "delivery": "url" }

The response includes a url field pointing to the rendered output. The file is stored for 7 days and can be downloaded with your API key.

{
"id": "a1b2c3d4-...",
"status": "complete",
"format": "pdf",
"url": "https://api.binderypress.dev/v1/render-outputs/a1b2c3d4-...",
"sizeBytes": 12345,
"renderTimeMs": 450
}
{ "delivery": "inline" }

The rendered document is returned directly in the response body with the appropriate Content-Type header. No URL is provided — the output is not stored.

This is useful when you need the document immediately and don’t need to download it later.

For PNG output, set the dpi field to control resolution. Default is 300 DPI.

{
"format": "png",
"dpi": 150
}

Higher DPI produces larger files but sharper output. Common values:

DPIUse Case
72Screen preview
150Web display
300Print quality (default)
600High-quality print

Renders made with a test key (bp_sk_test_) produce watermarked output and are tagged as test renders. They do not count against your monthly quota.

Test renders are functionally identical to live renders — same templates, same formats, same processing pipeline. The only difference is the watermark and quota treatment.

When a render request arrives:

  1. Auth — API key or session is validated.
  2. Rate limit — Request is checked against the team’s rate limit.
  3. Quota — Monthly render count is checked (live mode only).
  4. Template resolution — Inline template is used directly, or the saved template is loaded from storage by templateId.
  5. Render — The template and data are sent to a container in the render pool. The container uses a headless browser to produce the output.
  6. Storage — The output is written to cloud storage (URL delivery) or streamed back (inline delivery).
  7. Response — The render metadata or inline content is returned.

Render outputs (URL delivery) are stored for 7 days. After that, the file is deleted and the download URL returns 404.

Render job metadata (job ID, timing, format, status) is retained separately for auditing and is visible in the dashboard.

LimitValue
Request body size1 MB max
Output retention7 days
Container pool size3 instances