Automette docs

Validate a template

POST
/api/v1/templates/{id}/validate

Authorization

ApiKeyAuth
AuthorizationBearer <token>

API key from Settings → API Keys.

In: header

Path Parameters

id*string

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

curl -X POST "https://example.com/api/v1/templates/string/validate" \  -H "Content-Type: application/json" \  -d '{}'
{  "ok": false,  "engine": "canvas",  "counts": {    "errors": 1,    "warnings": 1,    "suggestions": 0  },  "findings": [    {      "severity": "error",      "code": "canvas.text.unknown_font",      "message": "Font \"Helvetica Neue\" is not available. It will be substituted at render time.",      "location": {        "componentId": "title"      },      "fix": "Use one of the built-in families, or upload the font to your Brand Kit."    },    {      "severity": "warning",      "code": "canvas.text.placeholder",      "message": "Component \"byline\" still contains placeholder text: \"Author Name\".",      "location": {        "componentId": "byline"      }    }  ]}

Move a template to the trash DELETE

Moves the template to the trash, where it stays recoverable for 7 days. Renders, forms and automations that reference it keep resolving until it is purged — deleting a template does not retroactively break the documents made from it. There is no API for the permanent delete. That one is irreversible and stays behind a person clicking it in the dashboard.

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 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. **Word templates carry no sample values** — their field schema has nowhere to author one — so each field falls back to its own name and an empty body previews as "Position", "Manager Name". Send `data` to see one meaningfully. Typst and canvas templates have real authored samples. **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.