Get a template's field schema
Authorization
ApiKeyAuth API key from Settings → API Keys.
In: header
Path Parameters
Query Parameters
true returns only content fields, dropping styling properties. Canvas layers left with nothing are omitted.
Response Body
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/api/v1/templates/string/fields"{ "id": "cm4tpl8e20001js04xq2v9k3m", "engine": "typst", "field_count": { "total": 1, "primary": 1 }, "fields": [ { "key": "customer", "type": "text", "example": "Acme Ltd", "primary": true } ], "sample_data": { "customer": "Acme Ltd" }}Preview a template POST
Renders the template so you can look at it, and returns a signed URL valid for one hour. Fields you do not supply fall back to the template's own sample values, so an empty body still produces a filled page rather than a skeleton. Send `document` to preview a candidate without saving it first. **A preview is not a render.** It creates no render record, does not appear in `GET /api/v1/renders`, costs no credits, and the file expires. Authoring is iterative, and charging per look would make the loop this API exists for the most expensive way to use the product. When you want a retained, listed, deliverable document, call `POST /api/v1/renders`. A template that fails to render returns `422` with the engine's own message — for Typst that includes the line number, which is what you feed back into a fix.
List a template's assets GET
The images and fonts this template owns, each with a signed URL valid for one hour.