Skip to content

Create an org branding

Settings module

POST/org-brandingorgBrandings.create

White label brand settings for Atlas, Gateway, email and Compass. Creates an org branding. Requires `Idempotency-Key`; a replay returns the original response. The organization is derived from the credential or the parent row, never from the body.

  • Requires the capability org.white_label.write.
  • OAuth scopes: org.
  • Send an Idempotency-Key header. A replay with the same key returns the original response.
  • Error statuses: 400, 401, 409, 422, 429. Errors are RFC 9457 problem details.

Request body: OrgBrandingCreate

orgBrandings.create: OrgBrandingCreate
FieldTypeRequiredDescription
display_namestring | nullNoBrand display name.Constraints: length 1 to 300
logo_light_pathstring | nullNoLogo for light themes: object path in the org-brand bucket, starting with the org id.Constraints: length 1 to 1024
logo_dark_pathstring | nullNoLogo for dark themes: object path in the org-brand bucket.Constraints: length 1 to 1024
favicon_pathstring | nullNoFavicon: object path in the org-brand bucket.Constraints: length 1 to 1024
app_icon_pathstring | nullNoApp icon: object path in the org-brand bucket.Constraints: length 1 to 1024
accent_hexstring | nullNoAccent color as uppercase #RRGGBB, replacing accent-default in every theme; null keeps the platform accent.Constraints: pattern ^#[0-9A-F]{6}$
neutral_tint_hexstring | nullNoOptional neutral tint as uppercase #RRGGBB.Constraints: pattern ^#[0-9A-F]{6}$
font_familystring | nullNoFont family from the approved list; null keeps the platform font.Constraints: length 1 to 300
radius_scale"Compact" | "Default" | "Rounded"NoCorner radius scale.
email_sender_namestring | nullNoSender name on emails sent for the org.Constraints: length 1 to 300
support_emailstring (email) | nullNoSupport address shown on branded surfaces.
legal_entity_namestring | nullNoLegal entity named on generated documents and emails.Constraints: length 1 to 300
suppress_powered_bybooleanNoTrue hides Powered by XOS; it takes effect only while the plan includes white label.
{
  "display_name": "Northwind Live",
  "logo_light_path": "0192f1e2-7c3a-7b4d-9e8f-1a2b3c4d5e6f/logo-light.svg",
  "logo_dark_path": "0192f1e2-7c3a-7b4d-9e8f-1a2b3c4d5e6f/logo-light.svg",
  "favicon_path": "0192f1e2-7c3a-7b4d-9e8f-1a2b3c4d5e6f/logo-light.svg",
  "app_icon_path": "0192f1e2-7c3a-7b4d-9e8f-1a2b3c4d5e6f/logo-light.svg",
  "accent_hex": "#1F6FEB",
  "neutral_tint_hex": "#1F6FEB",
  "font_family": "Inter",
  "radius_scale": "Compact",
  "email_sender_name": "Northwind Live",
  "support_email": "alex.rivera@northwindlive.example",
  "legal_entity_name": "Northwind Live LLC",
  "suppress_powered_by": false
}

Response 201: OrgBranding

orgBrandings.create: OrgBranding
FieldTypeRequiredDescription
idstring (uuid)YesIdentifier of the org branding.
org_idstring (uuid)YesIdentifier of the owning organization, derived from the parent row and never accepted from the caller.
created_atstring (date-time)YesWhen the row was created.
created_bystring (uuid) | nullYesIdentifier of the person who created the row; null when a seed, platform or system process created it.
updated_atstring (date-time)YesWhen the row was last updated.
updated_bystring (uuid) | nullYesIdentifier of the person who last updated the row; null when a seed, platform or system process updated it.
display_namestring | nullYesBrand display name.Constraints: length 1 to 300
logo_light_pathstring | nullYesLogo for light themes: object path in the org-brand bucket, starting with the org id.Constraints: length 1 to 1024
logo_dark_pathstring | nullYesLogo for dark themes: object path in the org-brand bucket.Constraints: length 1 to 1024
favicon_pathstring | nullYesFavicon: object path in the org-brand bucket.Constraints: length 1 to 1024
app_icon_pathstring | nullYesApp icon: object path in the org-brand bucket.Constraints: length 1 to 1024
accent_hexstring | nullYesAccent color as uppercase #RRGGBB, replacing accent-default in every theme; null keeps the platform accent.Constraints: pattern ^#[0-9A-F]{6}$
neutral_tint_hexstring | nullYesOptional neutral tint as uppercase #RRGGBB.Constraints: pattern ^#[0-9A-F]{6}$
font_familystring | nullYesFont family from the approved list; null keeps the platform font.Constraints: length 1 to 300
radius_scale"Compact" | "Default" | "Rounded"YesCorner radius scale.
email_sender_namestring | nullYesSender name on emails sent for the org.Constraints: length 1 to 300
support_emailstring (email) | nullYesSupport address shown on branded surfaces.
legal_entity_namestring | nullYesLegal entity named on generated documents and emails.Constraints: length 1 to 300
suppress_powered_bybooleanYesTrue hides Powered by XOS; it takes effect only while the plan includes white label.
{
  "id": "0192f1e2-7c3a-7b4d-9e8f-1a2b3c4d5e6f",
  "org_id": "0192f1e2-7c3a-7b4d-9e8f-1a2b3c4d5e6f",
  "created_at": "2026-10-08T14:30:00Z",
  "created_by": "0192f1e2-7c3a-7b4d-9e8f-1a2b3c4d5e6f",
  "updated_at": "2026-10-08T14:30:00Z",
  "updated_by": "0192f1e2-7c3a-7b4d-9e8f-1a2b3c4d5e6f",
  "display_name": "Northwind Live",
  "logo_light_path": "0192f1e2-7c3a-7b4d-9e8f-1a2b3c4d5e6f/logo-light.svg",
  "logo_dark_path": "0192f1e2-7c3a-7b4d-9e8f-1a2b3c4d5e6f/logo-light.svg",
  "favicon_path": "0192f1e2-7c3a-7b4d-9e8f-1a2b3c4d5e6f/logo-light.svg",
  "app_icon_path": "0192f1e2-7c3a-7b4d-9e8f-1a2b3c4d5e6f/logo-light.svg",
  "accent_hex": "#1F6FEB",
  "neutral_tint_hex": "#1F6FEB",
  "font_family": "Inter",
  "radius_scale": "Compact",
  "email_sender_name": "Northwind Live",
  "support_email": "alex.rivera@northwindlive.example",
  "legal_entity_name": "Northwind Live LLC",
  "suppress_powered_by": false
}

Code samples

curl -X POST "$XOS_BASE_URL/org-branding" \
  -H "Authorization: Bearer $XOS_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"display_name":"Northwind Live","logo_light_path":"0192f1e2-7c3a-7b4d-9e8f-1a2b3c4d5e6f/logo-light.svg","logo_dark_path":"0192f1e2-7c3a-7b4d-9e8f-1a2b3c4d5e6f/logo-light.svg","favicon_path":"0192f1e2-7c3a-7b4d-9e8f-1a2b3c4d5e6f/logo-light.svg","app_icon_path":"0192f1e2-7c3a-7b4d-9e8f-1a2b3c4d5e6f/logo-light.svg","accent_hex":"#1F6FEB","neutral_tint_hex":"#1F6FEB","font_family":"Inter","radius_scale":"Compact","email_sender_name":"Northwind Live","support_email":"alex.rivera@northwindlive.example","legal_entity_name":"Northwind Live LLC","suppress_powered_by":false}'
const { data } = await xos.orgBrandings.create({
    "display_name": "Northwind Live",
    "logo_light_path": "0192f1e2-7c3a-7b4d-9e8f-1a2b3c4d5e6f/logo-light.svg",
    "logo_dark_path": "0192f1e2-7c3a-7b4d-9e8f-1a2b3c4d5e6f/logo-light.svg",
    "favicon_path": "0192f1e2-7c3a-7b4d-9e8f-1a2b3c4d5e6f/logo-light.svg",
    "app_icon_path": "0192f1e2-7c3a-7b4d-9e8f-1a2b3c4d5e6f/logo-light.svg",
    "accent_hex": "#1F6FEB",
    "neutral_tint_hex": "#1F6FEB",
    "font_family": "Inter",
    "radius_scale": "Compact",
    "email_sender_name": "Northwind Live",
    "support_email": "alex.rivera@northwindlive.example",
    "legal_entity_name": "Northwind Live LLC",
    "suppress_powered_by": false
  });
response = xos.org_brandings.create({"display_name": "Northwind Live", "logo_light_path": "0192f1e2-7c3a-7b4d-9e8f-1a2b3c4d5e6f/logo-light.svg", "logo_dark_path": "0192f1e2-7c3a-7b4d-9e8f-1a2b3c4d5e6f/logo-light.svg", "favicon_path": "0192f1e2-7c3a-7b4d-9e8f-1a2b3c4d5e6f/logo-light.svg", "app_icon_path": "0192f1e2-7c3a-7b4d-9e8f-1a2b3c4d5e6f/logo-light.svg", "accent_hex": "#1F6FEB", "neutral_tint_hex": "#1F6FEB", "font_family": "Inter", "radius_scale": "Compact", "email_sender_name": "Northwind Live", "support_email": "alex.rivera@northwindlive.example", "legal_entity_name": "Northwind Live LLC", "suppress_powered_by": False})
xos org-brandings create --data '{"display_name":"Northwind Live","logo_light_path":"0192f1e2-7c3a-7b4d-9e8f-1a2b3c4d5e6f/logo-light.svg","logo_dark_path":"0192f1e2-7c3a-7b4d-9e8f-1a2b3c4d5e6f/logo-light.svg","favicon_path":"0192f1e2-7c3a-7b4d-9e8f-1a2b3c4d5e6f/logo-light.svg","app_icon_path":"0192f1e2-7c3a-7b4d-9e8f-1a2b3c4d5e6f/logo-light.svg","accent_hex":"#1F6FEB","neutral_tint_hex":"#1F6FEB","font_family":"Inter","radius_scale":"Compact","email_sender_name":"Northwind Live","support_email":"alex.rivera@northwindlive.example","legal_entity_name":"Northwind Live LLC","suppress_powered_by":false}'