---
title: "Render a saved template"
method: POST
path: "/templates/{template_id}/render"
tags: ["Templates"]
---

# Render a saved template

`POST /templates/{template_id}/render`

## Request

- Base URL: `https://api.podpdf.com`
- URL: `https://api.podpdf.com/templates/{template_id}/render`
- Auth: API key in header `X-API-Key`

Send the field values only; layout, totals, currency formatting and page numbering come
from the template. Nested fields are nested objects, and list fields are arrays of
objects. Up to 1 MB of data.

Templates written in your own HTML (beta) render through this same operation. They print
the values they are given and do not calculate totals.

## Request body

- object
  - `data` object, required
  - `filename` string
  - `store` boolean
  - `pdf_standard` 'pdf/ua-1' | 'pdf/ua-2': **Alpha.** Make an accessible, tagged PDF that conforms to PDF/UA-1 (ISO 14289-1, PDF 1.7) or PDF/UA-2 (ISO 14289-2, PDF 2.0). For `input_type` `html` and `markdown` and for template renders; other inputs return 400. Leave it out for an ordinary PDF. PodPDF adds what the file itself needs (tags, language, title, metadata, link descriptions, artifacts for page furniture) and checks the result with veraPDF. What depends on your HTML stays yours: alt text on images, headings in order, header cells in tables. The check's verdict comes back in `X-PDF-Conformance` (or `conformance` in JSON). Built-in templates pass both standards.
  - `title` string: **Alpha.** With `pdf_standard`: the document title, shown by PDF readers. Defaults to the page's `<title>`, then its first heading. Ignored without `pdf_standard`.
  - `lang` string: **Alpha.** With `pdf_standard`: the document language as a language tag. Defaults to the page's `<html lang>`, then `en`. Ignored without `pdf_standard`.

## Response `200`

The PDF, or JSON when `store` is true

- object
  - `job_id` string
  - `pages` integer
  - `truncated` boolean
  - `download_url` string, uri, nullable: Signed link, valid one hour. Null when the upload failed.
  - `download_url_expires_at` string, date-time, nullable
  - `pdf_standard` 'pdf/ua-1' | 'pdf/ua-2': **Alpha.** Make an accessible, tagged PDF that conforms to PDF/UA-1 (ISO 14289-1, PDF 1.7) or PDF/UA-2 (ISO 14289-2, PDF 2.0). For `input_type` `html` and `markdown` and for template renders; other inputs return 400. Leave it out for an ordinary PDF. PodPDF adds what the file itself needs (tags, language, title, metadata, link descriptions, artifacts for page furniture) and checks the result with veraPDF. What depends on your HTML stays yours: alt text on images, headings in order, header cells in tables. The check's verdict comes back in `X-PDF-Conformance` (or `conformance` in JSON). Built-in templates pass both standards.
  - `pdf_standard_stability` 'alpha': **Alpha.** Present with `pdf_standard`.
  - `conformance` Conformance: **Alpha.** veraPDF's verdict on a `pdf_standard` render. Present only when the request set `pdf_standard`.
    - `status` 'pass' | 'fail' | 'unavailable'
    - `validator` string, nullable
    - `failed_rules` object[]
      - `rule` string: Clause and test number in the standard.
      - `specification` string
      - `description` string
      - `failed_checks` integer
  - `template_id` string

## Other responses

- `401`: Missing or invalid API key
- `402`: `UPGRADE_REQUIRED` — the account has no plan yet
- `403`: `INSUFFICIENT_CREDITS`, `CONVERSION_TYPE_NOT_ENABLED`, `PDF_TOOLS_NOT_ENABLED`, `RATE_LIMIT_EXCEEDED` or `ACCOUNT_NOT_FOUND`. Note that a plan's rate limit is a 403, not a 429.
- `404`: No such resource for this account
- `422`: The values did not validate; `error.details` says which

## Changes

- **2026-10-20** `84eb21f3ee27`: 6 info
  - added the new optional request property `lang`
  - added the new optional request property `pdf_standard`
  - added the new optional request property `title`
  - added the optional property `allOf[#/components/schemas/StoredPdf]/conformance` to the response with the `200` status
  - …2 more

[Operation history](https://skmtc.dev/podpdf/apis/podpdf-api/changes/templates/:template_id/render/post.md)

---

[API](https://skmtc.dev/podpdf/apis/podpdf-api.md) · [All operations](https://skmtc.dev/podpdf/apis/podpdf-api/llms.txt) · [OpenAPI document](https://skmtc.dev/podpdf/apis/podpdf-api/revisions/84eb21f3ee27?raw)
