Automette docs

Delete a brand image

DELETE
/api/v1/brand_kit/images/{imageId}

Authorization

ApiKeyAuth
AuthorizationBearer <token>

API key from Settings → API Keys.

In: header

Path Parameters

imageId*string

Response Body

application/json

application/json

application/json

curl -X DELETE "https://example.com/api/v1/brand_kit/images/string"
{  "id": "cm4bki7f10001js04ha2p8w4n",  "deleted": true}

Upload a logo or image POST

Upload a logo or a shared image. `multipart/form-data` with a `file` part, or JSON with `filename` and `content_base64`. Optional `type`: `logo` (the default) or `image`. Brand kit images are team-level, so one upload serves every template. That is the difference from `POST /api/v1/templates/{id}/assets`, which attaches an image to a single template — use that for artwork belonging to one design, and this for the mark that appears on all of them. The response carries `key`, which is what belongs in a canvas image component's `src`. Prefer it over `url`: the key is resolved at render time, so the reference cannot rot, and re-uploading the same filename replaces the file while keeping the key, so every template pointing at it picks up the new artwork. png, jpg, webp, gif and svg, up to 10MB.

Upload a font POST

Adds a font your templates can use. Send `multipart/form-data` with a `file` part, or JSON with `filename` and `content_base64`. Fonts are **team-level**: once uploaded, every template in the team can name it. Re-uploading the same filename replaces it. The response carries `family` — the name read out of the file itself, and **that exact string is what goes in `fontFamily` on a text component**. It is usually not the filename: `Anton-Regular.ttf` declares the family `Anton`. `.ttf` and `.otf` only, 10MB maximum. A variable font will not register — instance it to a static weight first. A file with no readable family name is rejected, because the renderer would never apply it.