Update Status Page Design

PATCH /api/status-pages/:id/design

Update Status Page Design

PATCH /api/status-pages/:id/design

Updates the visual design configuration of a status page. Only the fields you provide are changed — all other settings keep their current values. Requires admin role.

Path Parameter

ParameterDescription
idStatus page ID or publicId (UUID)

Request Body (all optional)

Layout

FieldTypeValuesDefaultDescription
layoutstringclassic cards minimal sleek board split timeline compactclassicVisual layout template
pageWidthstringsm md lg xllgMax content width: sm = 672 px, md = 896 px, lg = 1024 px, xl = 1280 px

Colors

FieldTypeValuesDefaultDescription
colorSchemestringlight dark autoautoColor mode. auto follows the visitor's system preference.
accentColorstringhex, e.g. #6366f1#6366f1Brand accent color used for highlights, borders, and gradients

Typography & Style

FieldTypeValuesDefaultDescription
fontFamilystringsystem monosystemsystem = default sans-serif, mono = monospace
cardRadiusstringnone md xlmdCard corner radius: none = sharp, md = rounded, xl = pill
FieldTypeValuesDefaultDescription
headerStylestringsimple centered herosimplesimple = left-aligned, centered = centered, hero = full gradient banner
customTitlestringmax 120 chars""Overrides the status page name in the header. Leave empty to use the page name.
customSubtitlestringmax 200 chars""Optional tagline below the title

Display options

FieldTypeDefaultDescription
showUptimeStatsbooleantrueShow uptime percentage and service counts
showServiceUrlsbooleanfalseShow the monitored URL below each service name
showLastCheckedbooleanfalseShow the last check timestamp per service
showHistorybooleantrueShow the recent incidents & maintenance section
showPoweredBybooleantrueShow "Powered by …" badge in the footer

Example — switch to dark timeline layout

curl -X PATCH "$BASE_URL/api/status-pages/db58058e-4b58-4d97-a314-3bb8e279a182/design" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "layout": "timeline",
    "colorScheme": "dark",
    "accentColor": "#f59e0b",
    "pageWidth": "lg"
  }'

Example — minimal, no branding, full width

curl -X PATCH "$BASE_URL/api/status-pages/db58058e-4b58-4d97-a314-3bb8e279a182/design" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "layout": "minimal",
    "colorScheme": "light",
    "pageWidth": "xl",
    "showPoweredBy": false,
    "showUptimeStats": false,
    "customTitle": "System Status",
    "customSubtitle": "Live overview of all services"
  }'

Response

{
  "designConfig": {
    "layout": "timeline",
    "colorScheme": "dark",
    "accentColor": "#f59e0b",
    "headerStyle": "simple",
    "fontFamily": "system",
    "cardRadius": "md",
    "pageWidth": "lg",
    "customTitle": "",
    "customSubtitle": "",
    "showPoweredBy": true,
    "showUptimeStats": true,
    "showServiceUrls": false,
    "showLastChecked": false,
    "showHistory": true
  }
}

Common errors

  • 400 Bad Request — invalid field value (e.g. unknown layout name or malformed hex color)
  • 401 Unauthorized — not authenticated
  • 403 Forbidden — not an admin
  • 404 Not found — status page does not exist