Theme settings

Get theme settings

Returns the project's theme settings: the global design tokens, colors, typography and other settings configured in Studio. The shape of theme depends on the theme's schema; it is an empty object when nothing is configured.

  • locale (for example fr-fr) adds staticTranslations: the theme's static text (cart labels, button text and so on) resolved for that locale. Each key uses the translated value when available and falls back to the default. An exact locale match is tried first, then the language prefix. An empty locale returns 400. Discover locales with GET /projects/{projectId}/languages.
  • format=portable-text (or Accept: application/portable-text+json) replaces every HTML string inside theme or staticTranslations with a Portable Text block array; everything else is unchanged.
  • view=own (default) returns this project's own theme plus its revision, the baseline for PATCH. view=effective returns the parent theme merged under this project's overrides with inheritance metadata; it is read-only and carries no revision.

Required scope: content:read

get/projects/{projectId}/theme-settings

Request

  • Base URL
    https://studio.weaverse.io/api/v1/content
  • Auth
    HTTP bearer

Path parameters

projectIdstring required

Query parameters

localestring

Locale code (e.g. "fr-fr"). When provided, the response includes a staticTranslations field with resolved translation values. Tries exact locale match first, then falls back to language prefix.

format'weaverse' | 'portable-text'

Output format for rich-text fields.

  • weaverse (default): rich text returned as HTML strings — original behavior, no migration needed.
  • portable-text: rich text returned as structured Portable Text blocks for multi-channel rendering and AI consumption.

Equivalent to setting Accept: application/portable-text+json on the request. The query parameter takes precedence over the header when both are provided. An invalid value returns 400 INVALID_PARAMS.

view'own' | 'effective'

own: this project's theme bucket plus its revision (the PATCH baseline). effective: the parent theme merged under this project's overrides plus inheritance metadata; read-only, carries no revision.

Response

Theme settings with optional static translations

object'theme_settings' | 'theme_settings_effective'

theme_settings for view=own; theme_settings_effective for view=effective

projectIdstring
themeobject

Theme configuration JSON. Empty object if not configured.

staticTranslationsobject nullable

Nested translation keys with resolved values for the requested locale. Only present when locale query parameter is provided. Uses translated value when available, falls back to default value.

revisionstring date-time nullable

Project revision captured together with the theme in this response (they are cached as one snapshot). Pass back as expectedRevision on PATCH: if the settings changed since this snapshot — including when the snapshot itself was served from cache — the PATCH is rejected with 409 STALE_PROJECT; re-read and reapply.

Changes

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