Delete a template asset
Authorization
ApiKeyAuth API key from Settings → API Keys.
In: header
Path Parameters
Response Body
application/json
application/json
application/json
curl -X DELETE "https://example.com/api/v1/templates/string/assets/string"{ "id": "cm4ast8e20001js04xq2v9k3m", "deleted": true}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.
List engine reference pages GET
What you need to know to author a template, addressable by id. The write API lets you POST a Typst source or a canvas document, but knowing the format is the hard part. These pages are the same engine reference our own editor assistant runs on — the canvas component tables are generated from the engine itself, so they cannot drift from what the renderer will accept. Start with `typst` or `canvas` (`kind: skill`). Each cites the reference pages (`kind: reference`) by id for depth on one topic. The content is rendered for this surface: it names the endpoints you can actually call rather than the internal tool names our editor assistant uses, and it omits capabilities the API does not have.