List a template's assets
Authorization
ApiKeyAuth API key from Settings → API Keys.
In: header
Path Parameters
Response Body
application/json
application/json
application/json
curl -X GET "https://example.com/api/v1/templates/string/assets"{ "assets": [ { "id": "cm4ast8e20001js04xq2v9k3m", "filename": "logo.png", "type": "image", "content_type": "image/png", "size": 18422, "url": "https://docuagen.s3.amazonaws.com/...?X-Amz-Signature=...", "self": "https://automette.com/api/v1/templates/cm4tpl.../assets/cm4ast...", "created_at": "2026-08-20T09:00:00.000Z" } ]}Get a template's field schema GET
The template's fields on their own, without the document body beside them. Same `fields` and `layers` as `GET /api/v1/templates/{id}`, but a document can be large and a caller that only needs to know what to put in `data` should not have to download one to find out. Add `?primary=true` for content fields only. A canvas layer carries every typography property it supports, so a five-layer template answers with 56 fields of which four are the ones anyone means. `field_count` reports both totals either way, so a filtered response never looks like the whole picture. `sample_data` is a ready-to-send `data` object built from the fields' own example values, and always contains the primary fields only.
Upload a template asset POST
Uploads an image or font. Send `multipart/form-data` with a `file` part, or JSON with `filename` and `content_base64` if building a multipart request is awkward. Uploading a filename that already exists **replaces** it in place rather than adding a second copy: a template refers to its assets by name, so re-uploading `logo.png` updates the one the document already points at. How you then reference the file depends on the engine. Typst uses the bare filename — `#image("logo.png")`. Canvas stores the full S3 key in the component's `src`, which is why the response returns `file_key` as well as a URL. Maximum 25MB per file. Uploads count toward your plan's storage limit.