Update the workspace's theme settings
const url = 'http://localhost:8000/theme-settings';
const options = {
method: 'PUT',
headers: {
'API-Version': '2026-06-01.beta',
'API-Key': '<API-Key>',
'Content-Type': 'application/json'
},
body: '{"exact_theme_names":true}'
};
try {
const response = await fetch(url, options);
const data = await response.json();
console.log(data);
} catch (error) {
console.error(error);
}curl --request PUT \
--url http://localhost:8000/theme-settings \
--header 'API-Key: <API-Key>' \
--header 'API-Version: 2026-06-01.beta' \
--header 'Content-Type: application/json' \
--data '{ "exact_theme_names": true }'Changes the workspace’s theme naming policy. This changes what every realm on every cluster in the workspace
serves, so it additionally requires the API key to have been minted for a workspace owner or admin; a key
minted for any other role, including a cluster admin, gets 403 even with the themes:write scope.
Turning exact_theme_names on moves the workspace’s existing themes to their exact names in the background;
this does not block the response. A theme that cannot be moved right away (for example because its cluster is
busy updating) completes the move on its next content replace instead.
Turning it off changes nothing immediately: each theme keeps its current served folder until its next content replace, from which point the folder changes on every replace again.
Required scope: themes:write
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Header Parameters
Section titled “Header Parameters”Request Bodyrequired
Section titled “Request Bodyrequired”The workspace’s theme naming policy.
object
When true, every theme in the workspace is served from a folder named exactly like the theme, and that name never changes across content replaces. When false (the default), the served folder changes on each replace, unless the theme was created by a platform migration.
Example generated
{
"exact_theme_names": true
}Responses
Section titled “Responses”The request has succeeded.
The workspace’s theme naming policy.
object
When true, every theme in the workspace is served from a folder named exactly like the theme, and that name never changes across content replaces. When false (the default), the served folder changes on each replace, unless the theme was created by a platform migration.
Example generated
{
"exact_theme_names": true
}Access is unauthorized.
RFC 9457 Problem Details object.
object
Example generated
{
"type": "https://example.com",
"title": "example",
"status": 1,
"detail": "example",
"instance": "https://example.com"
}Access is forbidden.
RFC 9457 Problem Details object.
object
Example generated
{
"type": "https://example.com",
"title": "example",
"status": 1,
"detail": "example",
"instance": "https://example.com"
}Client error
object
object
Example generated
{
"type": "https://example.com",
"title": "example",
"status": 1,
"detail": "example",
"instance": "https://example.com",
"errors": [
{
"field": "example",
"detail": "example",
"code": "example",
"value": "example"
}
]
}Client error
RFC 9457 Problem Details object.
object
Example generated
{
"type": "https://example.com",
"title": "example",
"status": 1,
"detail": "example",
"instance": "https://example.com"
}Headers
Section titled “Headers”Server error
RFC 9457 Problem Details object.
object
Example generated
{
"type": "https://example.com",
"title": "example",
"status": 1,
"detail": "example",
"instance": "https://example.com"
}Server error
RFC 9457 Problem Details object.
object
Example generated
{
"type": "https://example.com",
"title": "example",
"status": 1,
"detail": "example",
"instance": "https://example.com"
}