Docs

Themes

Themes control fonts, colours and branding assets used across headless experiences. You can create, update and delete themes via the API.

Get themes Build and above

Use this endpoint to list themes in your workspace. With an API key, GET /v1/headless/themes returns workspace-level themes only.

GET/v1/headless/themes

Query parameters

FieldTypeRequiredDefaultDescriptionOptions
lengthnumberNo——

Get theme Build and above

Use this endpoint to fetch a single theme by ID.

GET/v1/headless/themes/{id}

Path parameters

FieldDescriptionOptions
idTheme ID—

Create theme Build and above

Use this endpoint to create a new theme.

cover-specific colour fields are ignored by this endpoint.

To set a logo, send either logoId or logoUrl, not both (a request with both returns 400, even when logoId is null). logoId is the ID of a logo that already exists in your workspace and tenant: the logoId from an earlier theme response, or a logo uploaded in the app. logoUrl is an https link to an image, or a base64 data: URL such as data:image/png;base64,.... The server downloads and stores the image, creates a logo owned by the theme's workspace and tenant, and returns its ID as logoId, so you can reuse it on other themes. Allowed types are PNG, JPEG, GIF, WebP and SVG, up to 50 MB. A link that cannot be fetched, is too large or is not an allowed image type returns 400 with the reason. Sending logoUrl needs the custom branding feature on your plan.

POST/v1/headless/themes

Body parameters

FieldTypeRequiredDescOptions
namestringYesTheme name—
fontsobjectNoFont settings ({ heading: { family }, body: { family } })—
coloursobjectNoColour palette (keyed by role)—
logoIdnumber | nullNoAsset ID of an existing logo in the same workspace and tenant, for example the logoId from a previous theme response or a logo uploaded in the app. To add a new logo from an image, send logoUrl instead.—
logoUrlstringNoAn https link to an image, or a base64 data: URL (data:image/png;base64,...). The server downloads and stores the image, creates a logo asset owned by the theme's workspace and tenant, and sets it as the theme's logo. Allowed types are PNG, JPEG, GIF, WebP and SVG, up to 50 MB. Send either logoId or logoUrl, not both.—
configobjectNoAdditional theme configuration—

Update theme Build and above

Use this endpoint to update an existing theme.

cover-specific colour fields are ignored by this endpoint.

logoId and logoUrl work as in Create theme. Sending logoUrl replaces the theme's logo with a newly stored image; the previous logo stays in the library.

PUT/v1/headless/themes/{id}

Path parameters

FieldDescriptionOptions
idTheme ID—

Body parameters

FieldTypeRequiredDescOptions
namestringYesTheme name—
fontsobjectNoFont settings—
coloursobjectNoColour palette—
logoIdnumber | nullNoAsset ID of an existing logo in the same workspace and tenant, for example the logoId from a previous theme response or a logo uploaded in the app. To add a new logo from an image, send logoUrl instead.—
logoUrlstringNoAn https link to an image, or a base64 data: URL (data:image/png;base64,...). The server downloads and stores the image, creates a logo asset owned by the theme's workspace and tenant, and sets it as the theme's logo. Allowed types are PNG, JPEG, GIF, WebP and SVG, up to 50 MB. Send either logoId or logoUrl, not both.—
configobjectNoAdditional theme configuration—
defaultbooleanNoWhether this theme is the workspace default—

Delete theme Build and above

Use this endpoint to delete an existing theme.

DELETE/v1/headless/themes/{id}

Path parameters

FieldDescriptionOptions
idTheme ID—