Saltar al contenido

Render a PDF

v1 · Last updated 2026-07-17

Esta documentación solo está disponible en inglés.

POST/api/v1/:workspace/templates/:id/generate

Render one PDF

Synchronous render. The response shape is chosen via the Accept header: application/pdf streams the bytes; anything else (default) returns JSON with a presigned download URL.

Parameters

workspacepathWorkspace slug.required
idpathTemplate UUID.required
Acceptheaderapplication/pdf for bytes, or application/json (default) for { url, expiresAt, … }.

Response

// Accept: application/pdf
(application/pdf — binary stream)

// Accept: application/json (default)
{
  "url":          "https://…",
  "ttl":          259200,
  "expiresAt":    "…",
  "urlExpiresAt": "…",
  "filename":     "invoice-2026-05.pdf",
  "bytes":        58231
}

filename — names the download; .pdf is appended if missing. It also becomes the PDF's Title property when the template has none. Document properties the uploaded template already carries (Title, Author, Subject) are kept; empty ones are filled (Author = your organisation, Subject = the template description), and Creator always reads Pluma.

renderer — plumav1 (default: flat, small files, supports barcodes, signatures, transforms) or standard (keeps AcroForm fields editable after the render).

ttlSeconds — how long the stored render stays downloadable, in seconds; 0 keeps it until you delete it (expiresAt: null). Without it, your default from Settings → Template defaults applies — on paid plans that's "until deleted" unless you set a limit there. The Free plan keeps renders 30 minutes. Ignored for byte responses — those are never stored.

password — password-protects the output. The template must allow it (apiCanSetPassword).

ignoreErrors — false (default) aborts with 400 transform_failed when a field's transform code fails, listing every failed field; true renders anyway with failed fields blanked. See Custom transform code.

POST/api/v1/:workspace/templates/:id/generateTry it
/api/v1//templates//generate

Paste an API key above to enable the Send button.

Need help?

Open a ticket from the in-app Support page, or email [email protected].