Skip to main content
PUT
This is a whole-layer replace, not a merge. The layer you send becomes the complete set of overrides. Any field you leave out, or send as null, has no override and falls back to the platform default. To clear one override, send the layer you last read with that field removed or set to null. If you omit layer entirely, every override is cleared. The layer is sparse and uses the same camelCase shape GET /branding returns, so you can read it, edit it and send it back. Unknown keys are refused with 400 and named in the message, so a typo never saves silently. The whole request body is limited to 256 KiB, so large inline images count against that limit. Concurrency. revision is required. Send the revision from your last read (0 if branding has never been saved). If anyone has saved or reset branding since, the request fails with 409 and nothing is changed; read again and retry. A successful save returns the new state with revision increased by one. What becomes public. identity, assets, theme and surfaces are shown to anyone who loads your website widget. domains and legal are not sent to the widget. Attribution. The layer has no field for third-party attribution notices. They cannot be set, changed or removed through this API. Replacing branding requires the owner or admin role. Other roles receive 403. See Branding.

Value rules

integer
required
The revision from your last read, a whole number of at least 0. A stale value returns 409.
object
The complete set of overrides. Every section and every field is optional.

Response

Returns 200 OK with the stored branding.
object
required
Your organization’s overrides. Sparse: only fields you have set appear, and an organization with no overrides returns {}. Anything absent falls back to the platform default.
integer
required
Concurrency revision. 0 until the first save; each save or reset adds one. Send it back on PUT /branding or DELETE /branding.
boolean
required
true once branding has been saved or reset at least once. false means the organization has always used the platform default.
string | null
required
When branding was last saved or reset, ISO 8601 in UTC. null if never.
string | null
required
Identifier of the user or API key that last saved or reset branding. null if never.
Last modified on September 26, 2026