Uptimeify Docs
Whitelabel

Upload Branding Asset

Uploads a logo or favicon as a base64 data URL. Assets are stored in S3 and the branding record is updated automatically. Requires admin role.

POST /api/organization/whitelabel/branding/upload

Logo types: logo, logoLight, logoDark: accepts PNG, JPEG, WebP, SVG (max 2 MB). Favicon types: favicon, faviconLight, faviconDark: accepts PNG, SVG, ICO (max 512 KB).

Legacy logo is treated as logoLight, and favicon as faviconLight.

Request Body

FieldTypeRequiredDescription
kindstringYeslogo, logoLight, logoDark, favicon, faviconLight, faviconDark
fileNamestringYesOriginal file name (1-200 chars)
dataUrlstringYesBase64 data URL (data:*/*;base64,...)

Example (cURL)

curl -X POST "$BASE_URL/api/organization/whitelabel/branding/upload" \
  -H "Cookie: $SESSION_COOKIE" \
  -H "Content-Type: application/json" \
  -d '{
    "kind": "logoLight",
    "fileName": "logo.svg",
    "dataUrl": "data:image/svg+xml;base64,PHN2Zy..."
  }'

Response

{
  "success": true,
  "uploaded": {
    "kind": "logo",
    "objectKey": "branding/org-1/logo/light/1710000000-logo.svg",
    "contentType": "image/svg+xml",
    "bytes": 1234,
    "publicUrl": "https://s3.deinkunde.com/branding/org-1/logo/light/1710000000-logo.svg?..."
  },
  "branding": {
    "productName": "Acme Monitor",
    "hideProductName": false,
    "logoUrl": "https://s3.deinkunde.com/...",
    "themePrimary": "#43B1AE",
    "updatedAt": "2026-04-15T12:00:00.000Z"
  }
}

Common errors

  • 400 Invalid dataUrl when the data URL format is wrong
  • 400 Unsupported contentType when the content type is not allowed for the asset kind
  • 413 File too large when exceeding size limits
  • 503 Whitelabel asset storage is not configured when S3 is not set up

On this page