Komponente erstellen
Fügt einer Status-Seite einen Monitor, einen Drittanbieter oder eine von Hand gepflegte Komponente hinzu.
POST /api/status-pages/{id}/components
Zugriff
Organisations-admin und editor. Ein kundengebundener Nutzer oder API-Token erreicht nur Seiten eines Kunden in seinem Bereich; eine Seite ohne Kunde (customerId: null) beantwortet ihm 403 (forbidden). Eine Seite einer anderen Organisation antwortet 404 (statusPageNotFound). IDs im Pfad nehmen die numerische ID oder die publicId. Die Änderung steht im Audit-Protokoll der Organisation.
Request-Body
| Feld | Typ | Pflicht | Standard | Beschreibung |
|---|---|---|---|---|
sourceKind | string | Ja | - | monitor (Zustand kommt von einem Monitor), dependency (Zustand kommt von einem Drittanbieter, den wir beobachten) oder manual (du setzt den Zustand). |
monitorType | string | Bei monitor | - | http, dns, icmp, smtp, ssh, tcp, ftp oder imap_pop. Bei manual nicht erlaubt. |
monitorId | number | Bei monitor | - | Numerische Monitor-ID. Seite mit Kunde: ein Monitor dieses Kunden. Seite ohne Kunde: jeder Monitor deiner Organisation. Bei manual nicht erlaubt. |
dependencySlug | string | Bei dependency | - | Slug eines aktiven Anbieters aus GET /api/public/dependencies. Bei den anderen Arten nicht erlaubt. |
manualStatus | string | Nein | operational | Nur manual: operational, degraded, partial_outage, major_outage oder maintenance. |
name | string | Bei manual | Monitor- oder Anbietername | Anzeigename (1-120 Zeichen). |
description | string|null | Nein | null | Max. 1000 Zeichen. |
groupId | number|string|null | Nein | null | ID oder publicId einer Gruppe dieser Seite. |
sort | number | Nein | hinter der letzten Komponente | Position, 0-100000. |
showUptime | boolean | Nein | true | Verfügbarkeitsbalken dieser Komponente anzeigen. |
Ein Monitor kann auf derselben Seite nur einmal Komponente sein. hiddenMonitors blendet nie eine ausdrückliche Komponente aus. Wird ein Monitor gelöscht, verschwinden seine Komponenten automatisch von jeder Status-Seite.
Eine dependency-Komponente zeigt den Gesamtstatus, den wir für diesen Anbieter in unserer öffentlichen Abhängigkeits-Überwachung veröffentlichen: operational, degraded, partial_outage, major_outage, maintenance oder unknown, solange wir den Anbieter nicht sehen (als Warnung gezeigt, zählt aber nicht zum Gesamtzustand der Seite). Ein offener, mit der Komponente verknüpfter Vorfall hebt ihren Zustand an. Ein Anbieter kann auf derselben Seite nur einmal Komponente sein; eine Verfügbarkeitsleiste gibt es nicht. Ändert sich der Status des Anbieters, werden die Abonnenten der Seite (oder dieser Komponente) benachrichtigt wie bei einem Monitor-Vorfall. Weder Monitor noch Kunde sind nötig.
Beispiel (cURL)
BASE_URL="https://uptimeify.io"
TOKEN="<dein-api-token>"
curl -X POST "$BASE_URL/api/status-pages/1/components" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"sourceKind": "monitor",
"monitorType": "http",
"monitorId": 101,
"groupId": 3
}'Eine manuelle Komponente:
curl -X POST "$BASE_URL/api/status-pages/1/components" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"sourceKind": "manual",
"name": "Payment provider",
"description": "Card payments at checkout"
}'Ein Drittanbieter:
curl -X POST "$BASE_URL/api/status-pages/1/components" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"sourceKind": "dependency",
"dependencySlug": "stripe"
}'Antwort
201 Created mit der neuen Komponente:
{
"id": 7,
"publicId": "0b6f3c1e-8d2a-4f5b-9c7e-1a2b3c4d5e6f",
"statusPageId": 1,
"groupId": 3,
"sort": 0,
"name": "Main Site",
"description": null,
"showUptime": true,
"sourceKind": "monitor",
"monitorType": "http",
"monitorId": 101,
"manualStatus": null,
"dependencySlug": null,
"createdAt": "2026-10-27T09:00:00.000Z",
"updatedAt": "2026-10-27T09:00:00.000Z"
}Häufige Fehler
400 Bad Request(invalidRequestBody), wenn ein Pflichtfeld fehlt oder ein Feld nicht zusourceKindpasst (zum BeispielmanualStatusan einer Monitor-Komponente);data.issuesnennt das Feld400 Bad Request(statusPageComponentMonitorCustomerMismatch), wenn der Monitor einem anderen Kunden gehört als die Status-Seite400 Bad Request(invalidIdentifier), wenn eine ID im Pfad weder Zahl noch UUID ist401 Unauthorized, wenn du nicht angemeldet bist403 Forbidden(forbidden), wenn deine Rolle das nicht darf, oder für einen kundengebundenen Aufrufer auf einer Seite ohne Kunde oder eines anderen Kunden403 Forbidden(statusPagesModuleDisabled), wenn das Statusseiten-Modul nicht aktiviert ist404 Not Found(statusPageNotFound), wenn die Status-Seite nicht existiert oder zu einer anderen Organisation gehört404 Not Found(monitorNotFound), wenn der Monitor nicht existiert oder zu einer anderen Organisation gehört404 Not Found(providerNotFound), wenndependencySlugkein aktiver Anbieter ist404 Not Found(statusPageComponentGroupNotFound), wenngroupIdkeine Gruppe dieser Seite ist409 Conflict(statusPageComponentMonitorConflict), wenn der Monitor schon Komponente dieser Seite ist409 Conflict(statusPageComponentDependencyConflict), wenn der Anbieter schon Komponente dieser Seite ist409 Conflict(statusPageLimitReached, mitdata.max), wenn die Seite schon 100 Komponenten hat