---
title: "Update a status page component"
method: PUT
path: "/api/status-pages/{id}/components/{componentId}"
tags: ["Status Pages"]
---

# Update a status page component

`PUT /api/status-pages/{id}/components/{componentId}`

## Request

- Base URL: `https://demo.supercheck.dev`
- URL: `https://demo.supercheck.dev/api/status-pages/{id}/components/{componentId}`
- Auth: HTTP bearer

Partially update a component. Requires `status_page:update`. When `monitorIds` is present the monitor links are replaced atomically. If `monitorIds` lists at least one monitor and `status` is omitted, the status is re-derived from the linked monitors; clearing all monitors keeps the current status.

## Request body

- StatusPageComponentUpdateRequest: Any subset of fields. Omitted fields are preserved.
  - `name` string
  - `description` string, nullable
  - `monitorIds` string[]: Monitors of the current project to link. Duplicates are collapsed. On update, replaces the whole set.
  - `status` 'operational' | 'degraded_performance' | 'partial_outage' | 'major_outage' | 'under_maintenance': Manual status. When omitted while monitors are linked, the status is derived from the monitors.
  - `showcase` boolean: Show the component on the public page.
  - `onlyShowIfDegraded` boolean
  - `position` integer
  - `aggregationMethod` 'worst_case' | 'best_case' | 'weighted_average' | 'majority_vote'
  - `autoCreateIncidents` boolean
  - `serviceId` string, uuid, nullable: AI SRE service in the current project.
  - `monitorWeights` object: Weight per monitor ID (max 100 entries); default weight is 1.
  - `failureThreshold` integer

## Response `200`

Updated component

- object
  - `component` StatusPageComponentDto
    - `id` string, uuid
    - `name` string
    - `description` string, nullable
    - `position` integer
    - `monitorIds` string[]
    - `status` 'operational' | 'degraded_performance' | 'partial_outage' | 'major_outage' | 'under_maintenance'
    - `showcase` boolean, nullable
    - `onlyShowIfDegraded` boolean, nullable
    - `aggregationMethod` 'worst_case' | 'best_case' | 'weighted_average' | 'majority_vote'
    - `failureThreshold` integer
    - `autoCreateIncidents` boolean
    - `serviceId` string, uuid, nullable

## Other responses

- `400`: Invalid body or IDs, or a monitor/service is not found in this project
- `401`: Authentication required or token invalid
- `403`: Insufficient permissions
- `404`: Resource not found

## Changes

- **2026-10-25** `9d4e9599f8c5`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/supercheck-io/apis/supercheck-api/changes/api/status-pages/:id/components/:componentId/put.md)

---

[API](https://skmtc.dev/supercheck-io/apis/supercheck-api.md) - [All operations](https://skmtc.dev/supercheck-io/apis/supercheck-api/llms.txt) - [OpenAPI document](https://skmtc.dev/supercheck-io/apis/supercheck-api/revisions/7fa0162c07bd?raw)
