Uptimeify Docs
Status pages

Update Status Page 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.

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

Path Parameter

ParameterDescription
idStatus page ID or publicId (UUID)

Request Body (all optional)

Layout

FieldTypeValuesDefaultDescription
layoutstringstatusboard classic cards minimal sleek board split timeline compactstatusboardVisual layout template. statusboard is the default for status pages created from 7 September 2026; pages created before that keep the layout they had.
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
showHistorybooleantrueMaster switch for the incidents and maintenance area
historyDaysinteger30Window of the uptime bars, in days (1-3650). Incidents and maintenance have their own windows, see below.

Incidents and maintenance

Incidents and maintenance are two separate sections, each with its own switch, its own item count and its own window.

FieldTypeDefaultDescription
showIncidentsbooleantrueShow the incidents section
incidentLimitinteger5How many incidents are listed (1-50)
incidentDaysinteger30How far back resolved incidents are listed, in days (1-3650). An open incident is always shown, however old it is.
showMaintenancebooleantrueShow the maintenance section
maintenanceLimitinteger5How many maintenance windows are listed (1-50)
maintenanceDaysinteger30How far back completed maintenance is listed, in days (1-3650). Announced maintenance is always shown, however far off it is.

showIncidents and showMaintenance are the same setting as showRecentIncidents and showRecentMaintenance on the status page itself: writing either of those two through POST /api/status-pages or PATCH /api/status-pages/:id also updates the design config, so both stay in step. | showPoweredBy | boolean | true | Show a "Powered by <your product name>" line in the footer. It names your organization's product name and never Uptimeify; with no product name set, nothing is rendered. |

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,
    "historyDays": 30,
    "showIncidents": true,
    "incidentLimit": 5,
    "incidentDays": 30,
    "showMaintenance": true,
    "maintenanceLimit": 5,
    "maintenanceDays": 30
  }
}

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

On this page