Skip to content

UI Variables โ€‹

The UI customization surface: a set of typed variables (logos, colors, copy strings, feature toggles) grouped into categories, plus a couple of top-level endpoints for the bundled "style" and "menu" config that drives the UI shell. Where Themes capture branding as a whole package, UI Variables let you tweak individual values without swapping themes.

Scopes โ€‹

ScopeReach
ui:readReading style config, menu config, variables, categories, filters.
ui:writeCreating/updating/deleting variables and categories.

Top-level Endpoints โ€‹

Get Style Config โ€‹

GET /api/ui/

Returns the combined style configuration the UI shell uses on boot. This is essentially "active theme + active UI variables" composed into a single payload.

Required scope: ui:read

Response 200 โ€” ThemeRead

Get Menu Config โ€‹

GET /api/ui/menu

Returns the navigation menu configuration the UI shell uses to render its main menus.

Required scope: ui:read

Response 200 โ€” menu configuration payload.

UI Categories โ€‹

Categories group related UI variables (e.g., "Login screen", "Email footer", "Brand colors") for display in the admin UI.

List UI Categories โ€‹

GET /api/ui/categories/

Returns a page of UI categories.

Required scope: ui:read ยท also accepts API key

Query parameters โ€” standard pagination set; see Conventions โ€บ Pagination. Defaults: sort_by=created, sort_order=desc, hydrate=true.

Response 200 โ€” UiCategoryInDbCursorPage

Get UI Category Filter Metadata โ€‹

GET /api/ui/categories/filters

Returns filter/operator/sort options for List UI Categories.

Required scope: ui:read

Response 200 โ€” open metadata object.

Get UI Category by ID โ€‹

GET /api/ui/categories/{id}

Returns a single UI category record.

Required scope: ui:read ยท also accepts API key

Path parameters

NameTypeRequiredDescription
idstringyesCategory ID.

Response 200 โ€” UiCategoryRead

Create UI Category โ€‹

POST /api/ui/categories/

Creates a new UI category.

Required scope: ui:write

Request body โ€” UiCategoryWriteCreate

Response 201 โ€” UiCategoryRead

Update UI Category by ID โ€‹

PUT /api/ui/categories/categories/{id}

Replaces the UI category.

WARNING

The path segment /categories/categories/ is doubled โ€” this is intentional in the current API and should be sent verbatim. The same applies to UI Variables (see below).

Required scope: ui:write

Path parameters

NameTypeRequiredDescription
idstringyesCategory ID.

Request body โ€” UiCategoryWriteReplace

Response 200 โ€” UiCategoryRead

Patch UI Category โ€‹

PATCH /api/ui/categories/categories/{id}

Partial UI category update. Path segment is doubled โ€” see the warning under Update UI Category by ID.

Required scope: ui:write

Path parameters

NameTypeRequiredDescription
idstringyesCategory ID.

Request body โ€” UiCategoryWriteUpdate

Response 200 โ€” UiCategoryRead

Delete UI Category by ID โ€‹

DELETE /api/ui/categories/categories/{id}

Removes the UI category. Path segment is doubled โ€” see the warning under Update UI Category by ID.

Required scope: ui:write

Path parameters

NameTypeRequiredDescription
idstringyesCategory ID.

Response 204 โ€” empty.

UI Variables โ€‹

Individual configurable values that the UI shell consumes.

List UI Variables โ€‹

GET /api/ui/variables/

Returns a page of UI variables.

Required scope: ui:read ยท also accepts API key

Query parameters โ€” standard pagination set; see Conventions โ€บ Pagination. Defaults: sort_by=created, sort_order=desc, hydrate=true.

Response 200 โ€” UiVariableInDbCursorPage

Get UI Variable Filter Metadata โ€‹

GET /api/ui/variables/filters

Returns filter/operator/sort options for List UI Variables.

Required scope: ui:read

Response 200 โ€” open metadata object.

Get UI Variable by ID โ€‹

GET /api/ui/variables/{id}

Returns a single UI variable.

Required scope: ui:read ยท also accepts API key

Path parameters

NameTypeRequiredDescription
idstringyesVariable ID.

Response 200 โ€” UiVariableRead

Create UI Variable โ€‹

POST /api/ui/variables/

Creates a new UI variable.

Required scope: ui:write

Request body โ€” UiVariableWriteCreate

Response 201 โ€” UiVariableRead

Update UI Variable by ID โ€‹

PUT /api/ui/variables/variables/{id}

Replaces a UI variable. Path segment is doubled โ€” /variables/variables/{id} is the literal path.

Required scope: ui:write

Path parameters

NameTypeRequiredDescription
idstringyesVariable ID.

Request body โ€” UiVariableWriteReplace

Response 200 โ€” UiVariableRead

Patch UI Variable โ€‹

PATCH /api/ui/variables/variables/{id}

Partial UI variable update. Path segment is doubled.

Required scope: ui:write

Path parameters

NameTypeRequiredDescription
idstringyesVariable ID.

Request body โ€” UiVariableWriteUpdate

Response 200 โ€” UiVariableRead

Delete UI Variable by ID โ€‹

DELETE /api/ui/variables/variables/{id}

Deletes a UI variable. Path segment is doubled.

Required scope: ui:write

Path parameters

NameTypeRequiredDescription
idstringyesVariable ID.

Response 204 โ€” empty.

See also โ€‹

  • Themes โ€” whole-package branding (selected via POST /api/themes/{id_or_name}/activate).
  • Mail Templates โ€” branded transactional emails.

S-Launch