Themes

Replace theme content

Replaces the theme's archive in place, keeping its identity and its realm and application assignments. The new content is deployed immediately and every realm and application using the theme is repointed at it, so the sign-in page is never left unbranded the way delete-then-re-upload would.

The replacement archive must contain every theme type the theme currently provides (theme_types); an archive that drops one is rejected with 400 Bad Request. Returns 409 Conflict for themes created by a platform migration — their content is pinned and cannot be replaced.

Maximum body size is 50 MB.

Required scope: themes:write

put/clusters/{cluster_id}/themes/{theme_id}/content

Request

  • Base URL: http://localhost:8000
  • URL: http://localhost:8000/clusters/{cluster_id}/themes/{theme_id}/content
  • Auth: API key in header API-Key

Path parameters

cluster_idstring uuid required
theme_idstring uuid required

Headers

API-Version'2026-06-01.beta' required

Response

The request has succeeded.

idstring uuid required
cluster_idstring uuid required
namestring required
descriptionstring
versionstring
theme_typesThemeType[] required

Keycloak theme types detected in the uploaded ZIP package.

status'deploying' | 'deployed' | 'undeploying' | 'failed' required
file_sizeinteger required

Size of the uploaded theme archive in bytes.

deployed_atstring date-time

Timestamp of the most recent successful deployment to Keycloak.

error_messagestring

Error detail from the last failed deployment.

directorystring

Directory name Keycloak serves this theme from. Use this exact value when setting a realm or application theme outside Skycloak. Valid once status is deployed. It changes when the theme content is replaced: realm theme settings that name the previous directory are moved automatically, but application themes set outside Skycloak are not and must be updated after a replace.

restart_requiredboolean

True when the theme's content was replaced under its exact name and Keycloak has not restarted since, so the previous content may still be served. Only workspaces that keep exact theme names replace content in place; for every other theme this is false.

created_atstring date-time required
updated_atstring date-time required

Changes

No recorded changes to this operation across all 1 revision of this API.