DashboardsBranding
Update dashboard branding
Replace the branding configuration for a dashboard.
PUT /app/dashboards/{id}/branding
Replaces the logos, header navigation links, primary accent color, and subscriber email settings for a dashboard's status dashboard. This is a full replacement. Requires the Custom Branding feature entitlement.
Path parameters
| Parameter | Description |
|---|---|
id | The UUID of the dashboard. |
Request
See API Basics for required headers.
Request body
This is a full replacement of the branding object. Logo slots use the Upload asset URL flow: include both the s3Key and assetUrl from that endpoint for each logo you set. Omit both fields for a slot to clear it.
| Field | Type | Description |
|---|---|---|
headerLogoUrl | string | Public asset URL for the header logo (assetUrl from the upload endpoint). Must be paired with headerLogoKey. |
headerLogoKey | string | The s3Key returned by the upload endpoint for the header logo. Must be paired with headerLogoUrl. |
mainLogoUrl | string | Public asset URL for the main logo. Must be paired with mainLogoKey. |
mainLogoKey | string | The s3Key for the main logo. Must be paired with mainLogoUrl. |
faviconUrl | string | Public asset URL for the favicon. Must be paired with faviconKey. |
faviconKey | string | The s3Key for the favicon. Must be paired with faviconUrl. |
emailLogoUrl | string | Public asset URL for the email logo. Must be paired with emailLogoKey. |
emailLogoKey | string | The s3Key for the email logo. Must be paired with emailLogoUrl. |
headerLinks | array | Up to 4 navigation links shown in the page header. Each item requires label (max 50 chars) and url (max 500 chars). Pass an empty array to remove all links. |
primaryColor | string | 6-digit hex accent color (e.g. #475569). Drives hyperlinks, primary buttons, and UI highlights on the status dashboard. Defaults to #475569 on new dashboards. |
emailFromName | string | Display name shown in the From field of subscriber emails sent on behalf of this dashboard (max 100 characters, no < or >, single line). Omit to use the platform default from name. Independent of the email sender address. |
emailPostalAddress | string | Single-line mailing address included in subscriber email footers (max 200 characters, no < or >, single line). Omit to use the platform default address and copyright. When set, the footer shows your organization name and this address instead of the platform defaults. |
Sample request
curl -X PUT https://api.statusdashboard.com/app/dashboards/a1b2c3d4-e5f6-7890-abcd-ef1234567890/branding \
-H "Authorization: Bearer bcf847abf5c6:def456" \
-H "Content-Type: application/json" \
-d '{
"headerLogoUrl": "https://assets.statusdashboard.com/tenant-assets/org-id/dash-id/headerLogo.png",
"headerLogoKey": "tenant-assets/org-id/dash-id/headerLogo.png",
"headerLinks": [
{ "label": "Home", "url": "https://acme.com" },
{ "label": "Support", "url": "https://acme.com/support" }
],
"primaryColor": "#1a73e8",
"emailFromName": "Acme Status",
"emailPostalAddress": "456 Tenant St, Oakland, CA 94612"
}'Sample response
Status: 200 OK
{
"headerLogoUrl": "https://assets.statusdashboard.com/tenant-assets/org-id/dash-id/headerLogo.png",
"headerLogoKey": "tenant-assets/org-id/dash-id/headerLogo.png",
"headerLinks": [
{ "label": "Home", "url": "https://acme.com" },
{ "label": "Support", "url": "https://acme.com/support" }
],
"primaryColor": "#1a73e8",
"emailFromName": "Acme Status",
"emailPostalAddress": "456 Tenant St, Oakland, CA 94612"
}Error responses
| Status | When |
|---|---|
400 | Validation failure — logo key/URL pair incomplete or not a platform branding asset, too many header links, label or URL too long, invalid URL, invalid primaryColor hex, or invalid emailFromName / emailPostalAddress (empty, too long, contains < or >, or contains line breaks). |
403 | Insufficient permissions, or the Custom Branding feature is not enabled. |
404 | Dashboard not found or does not belong to the caller's organization. |

