---
title: "Update Status Page Design"
description: "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

| Parameter | Description |
|-----------|-------------|
| `id` | Status page ID or `publicId` (UUID) |

## Request Body (all optional)

### Layout

| Field | Type | Values | Default | Description |
|-------|------|--------|---------|-------------|
| `layout` | string | `classic` `cards` `minimal` `sleek` `board` `split` `timeline` `compact` | `classic` | Visual layout template |
| `pageWidth` | string | `sm` `md` `lg` `xl` | `lg` | Max content width: sm = 672 px, md = 896 px, lg = 1024 px, xl = 1280 px |

### Colors

| Field | Type | Values | Default | Description |
|-------|------|--------|---------|-------------|
| `colorScheme` | string | `light` `dark` `auto` | `auto` | Color mode. `auto` follows the visitor's system preference. |
| `accentColor` | string | hex, e.g. `#6366f1` | `#6366f1` | Brand accent color used for highlights, borders, and gradients |

### Typography & Style

| Field | Type | Values | Default | Description |
|-------|------|--------|---------|-------------|
| `fontFamily` | string | `system` `mono` | `system` | `system` = default sans-serif, `mono` = monospace |
| `cardRadius` | string | `none` `md` `xl` | `md` | Card corner radius: none = sharp, md = rounded, xl = pill |

### Header

| Field | Type | Values | Default | Description |
|-------|------|--------|---------|-------------|
| `headerStyle` | string | `simple` `centered` `hero` | `simple` | `simple` = left-aligned, `centered` = centered, `hero` = full gradient banner |
| `customTitle` | string | max 120 chars | `""` | Overrides the status page name in the header. Leave empty to use the page name. |
| `customSubtitle` | string | max 200 chars | `""` | Optional tagline below the title |

### Display options

| Field | Type | Default | Description |
|-------|------|---------|-------------|
| `showUptimeStats` | boolean | `true` | Show uptime percentage and service counts |
| `showServiceUrls` | boolean | `false` | Show the monitored URL below each service name |
| `showLastChecked` | boolean | `false` | Show the last check timestamp per service |
| `showHistory` | boolean | `true` | Show the recent incidents & maintenance section |
| `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

```bash
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

```bash
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

```json
{
  "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

