Skip to content

List Themes

Every theme the installation knows about, active ones first. Not paginated — the gallery is small and returned whole.

Endpoint

MethodPathPurpose
GET/api/admin/appearance/themesList themes

Response fields

FieldTypeDescription
codestringTheme code, used in every other Appearance path.
namestringDisplay name.
authorstring | nullTheme author.
versionstring | nullTheme version.
urlstring | nullTheme homepage.
demoUrlstring | nullLive demo.
screenshotstring | nullPreview image URL.
ratingstring | nullCatalog rating.
tagsarrayCatalog tags.
descriptionstring | nullCatalog description.
isInstalledbooleanWhether the theme's files are on the server.
statusstringactive, installed or available.
activeOnarrayChannels running the theme, each { id, name }. Empty when none.

Use cases

  • Build a theme pickerstatus is the only field you need to group the gallery: active themes are in use, installed can be activated now, available needs installing on the server first.
  • Find which theme a channel runs — read it from activeOn here, or from the channel's own theme field on Get channel.

Best practices

  • Only an installed theme can be activated. POST /appearance/themes/{code}/activate answers 404 for a theme whose isInstalled is false, so gate the activate control on that flag rather than on status alone.
  • Call impact before activate. A channel that already holds sections for another theme is worth warning about — Theme impact reports exactly how many.

Permissions

Requires appearance.themes.

Released under the MIT License.