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
| Field | Type | Required | Description |
|---|---|---|---|
| display_name | string | null | No | Brand display name.Constraints: length 1 to 300 |
| logo_light_path | string | null | No | Logo for light themes: object path in the org-brand bucket, starting with the org id.Constraints: length 1 to 1024 |
| logo_dark_path | string | null | No | Logo for dark themes: object path in the org-brand bucket.Constraints: length 1 to 1024 |
| favicon_path | string | null | No | Favicon: object path in the org-brand bucket.Constraints: length 1 to 1024 |
| app_icon_path | string | null | No | App icon: object path in the org-brand bucket.Constraints: length 1 to 1024 |
| accent_hex | string | null | No | Accent color as uppercase #RRGGBB, replacing accent-default in every theme; null keeps the platform accent.Constraints: pattern ^#[0-9A-F]{6}$ |
| neutral_tint_hex | string | null | No | Optional neutral tint as uppercase #RRGGBB.Constraints: pattern ^#[0-9A-F]{6}$ |
| font_family | string | null | No | Font family from the approved list; null keeps the platform font.Constraints: length 1 to 300 |
| radius_scale | "Compact" | "Default" | "Rounded" | No | Corner radius scale. |
| email_sender_name | string | null | No | Sender name on emails sent for the org.Constraints: length 1 to 300 |
| support_email | string (email) | null | No | Support address shown on branded surfaces. |
| legal_entity_name | string | null | No | Legal entity named on generated documents and emails.Constraints: length 1 to 300 |
| suppress_powered_by | boolean | No | True 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
| Field | Type | Required | Description |
|---|---|---|---|
| id | string (uuid) | Yes | Identifier of the org branding. |
| org_id | string (uuid) | Yes | Identifier of the owning organization, derived from the parent row and never accepted from the caller. |
| created_at | string (date-time) | Yes | When the row was created. |
| created_by | string (uuid) | null | Yes | Identifier of the person who created the row; null when a seed, platform or system process created it. |
| updated_at | string (date-time) | Yes | When the row was last updated. |
| updated_by | string (uuid) | null | Yes | Identifier of the person who last updated the row; null when a seed, platform or system process updated it. |
| display_name | string | null | Yes | Brand display name.Constraints: length 1 to 300 |
| logo_light_path | string | null | Yes | Logo for light themes: object path in the org-brand bucket, starting with the org id.Constraints: length 1 to 1024 |
| logo_dark_path | string | null | Yes | Logo for dark themes: object path in the org-brand bucket.Constraints: length 1 to 1024 |
| favicon_path | string | null | Yes | Favicon: object path in the org-brand bucket.Constraints: length 1 to 1024 |
| app_icon_path | string | null | Yes | App icon: object path in the org-brand bucket.Constraints: length 1 to 1024 |
| accent_hex | string | null | Yes | Accent color as uppercase #RRGGBB, replacing accent-default in every theme; null keeps the platform accent.Constraints: pattern ^#[0-9A-F]{6}$ |
| neutral_tint_hex | string | null | Yes | Optional neutral tint as uppercase #RRGGBB.Constraints: pattern ^#[0-9A-F]{6}$ |
| font_family | string | null | Yes | Font family from the approved list; null keeps the platform font.Constraints: length 1 to 300 |
| radius_scale | "Compact" | "Default" | "Rounded" | Yes | Corner radius scale. |
| email_sender_name | string | null | Yes | Sender name on emails sent for the org.Constraints: length 1 to 300 |
| support_email | string (email) | null | Yes | Support address shown on branded surfaces. |
| legal_entity_name | string | null | Yes | Legal entity named on generated documents and emails.Constraints: length 1 to 300 |
| suppress_powered_by | boolean | Yes | True 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}'