Maintenance Window erstellen
Erstellt ein neues Wartungsfenster. Unterstützt einen einzelnen Monitor (Legacy), mehrere Monitore, tag-basiertes (inkl. organisationsweit) oder kunden-weites Targeting.
POST /api/maintenance-windows
Body
{
"name": "Datenbank-Migration",
"startTime": "2026-07-10T22:00:00.000Z",
"endTime": "2026-07-11T01:00:00.000Z",
"targets": [
{ "type": "website", "id": 101 },
{ "type": "icmp", "id": 5 }
],
"tagIds": [7],
"description": "Geplante Schema-Migration",
"isRecurring": false,
"isActive": true
}Pflichtfelder
name(string): Eine freundliche Bezeichnung für das Fenster.startTime(ISO 8601 Datetime): Zeitpunkt, an dem das Fenster beginnt.endTime(ISO 8601 Datetime): Zeitpunkt, an dem das Fenster endet. Muss nachstartTimeliegen.- Mindestens ein Zielfeld (siehe unten).
Zielauswahl (gegenseitig ausschließende Modi)
Genau ein Targeting-Modus muss verwendet werden. targets und tagIds können innerhalb des Multi-Monitor-Modus kombiniert werden.
| Feld | Typ | Beschreibung |
|---|---|---|
websiteId | number | Legacy: einzelner Website-Monitor |
icmpMonitorId | number | Legacy: einzelner ICMP-Monitor |
smtpMonitorId | number | Legacy: einzelner SMTP-Monitor |
sshMonitorId | number | Legacy: einzelner SSH-Monitor |
ftpMonitorId | number | Legacy: einzelner FTP-Monitor |
imapPopMonitorId | number | Legacy: einzelner IMAP/POP-Monitor |
dnsMonitorId | number | Legacy: einzelner DNS-Monitor |
customerIpId | number | Legacy: einzelne Kunden-IP |
customerDomainId | number | Legacy: einzelne Kunden-Domain |
targets | { type, id }[] | Multi-Monitor: type ist eines von website | dns | icmp | smtp | ssh | ftp | imap_pop |
tagIds | number[] | Tag-basiert: siehe Nur-Tag-Modus (organisationsweit) |
customerId | number | Kunden-Ebene: deckt jeden Monitor dieses Kunden ab |
Nur-Tag-Modus (organisationsweit)
Wird tagIds ohne customerId, targets oder Legacy-Felder gesendet, entsteht ein organisationsweites Wartungsfenster. Es deckt dynamisch jeden Monitor der gesamten Organisation ab, der aktuell die angegebenen Tags trägt — über alle Kunden hinweg.
{
"name": "Infra-Tag-Freeze",
"startTime": "2026-07-10T22:00:00.000Z",
"endTime": "2026-07-11T01:00:00.000Z",
"tagIds": [7]
}- Erfordert Admin- oder Editor-Rolle. Readonly-Benutzer, die dies versuchen, erhalten
403 Forbidden. - Die Tag-Zugehörigkeit wird live zur Prüfzeit aufgelöst — nach der Fenstererstellung getaggte Monitore werden automatisch abgedeckt.
- Alle
tagIdsmüssen zur selben Organisation gehören; das Mischen von Tags verschiedener Organisationen gibt400 mixedTagOrganizationszurück.
Kombinationsregeln
- Mindestens ein Zielfeld ist erforderlich. Das Weglassen aller Felder ist ein Zod-Validierungsfehler (Standard-
400mit Validierungsantwort, keindata.code-Fehler). customerId(Kunden-Ebene-Modus) kann nicht mittargets,tagIdsoder Legacy-Feldern kombiniert werden. Das Kombinieren ist ein Zod-Validierungsfehler (Standard-400).- Alle Monitore in
targetsmüssen zum selben Kunden gehören; das Mischen von Kunden gibt{ data: { code: "mixedCustomers" } }zurück. - Alle
tagIdsmüssen zur selben Organisation gehören; das Mischen gibt{ data: { code: "mixedTagOrganizations" } }zurück.
Optionale Felder
| Feld | Typ | Beschreibung |
|---|---|---|
description | string | Freitext-Notizen (erscheinen in der Historie). |
isRecurring | boolean | Standard false. Auf true setzen, um recurrencePattern zu aktivieren. |
recurrencePattern | object | Erforderlich, wenn isRecurring true ist. Siehe Wiederholung. |
isActive | boolean | Standard true. Auf false setzen, um ein deaktiviertes Fenster zu erstellen. |
Wiederholung
{
"frequency": "weekly",
"interval": 1,
"daysOfWeek": [1, 3],
"dayOfMonth": null,
"endRecurrenceDate": "2026-12-31"
}| Feld | Werte |
|---|---|
frequency | daily | weekly | monthly |
interval | Ganzzahl ≥ 1 (Wiederholung alle N Perioden) |
daysOfWeek | Array von 0–6 (0 = Sonntag); verwendet wenn frequency weekly ist |
dayOfMonth | 1–31; verwendet wenn frequency monthly ist |
endRecurrenceDate | ISO-Datumsstring; optional, beendet die Wiederholung nach diesem Datum |
Dynamisches Tag-Verhalten
Die Tag-Abdeckung wird vom Monitoring-Worker live zum Zeitpunkt der Prüfung aufgelöst. Ein Monitor, der nach der Fenstererstellung getaggt wird, wird automatisch abgedeckt — ohne das Fenster zu aktualisieren. Das Entfernen eines Tags von einem Monitor beendet die Abdeckung sofort.
Beispiel (cURL)
BASE_URL="https://uptimeify.io"
TOKEN="<dein-api-token>"
curl -X POST "$BASE_URL/api/maintenance-windows" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Datenbank-Migration",
"startTime": "2026-07-10T22:00:00.000Z",
"endTime": "2026-07-11T01:00:00.000Z",
"targets": [
{ "type": "website", "id": 101 }
]
}'Antwort (Response)
{
"id": 42,
"publicId": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa",
"organizationId": 10,
"customerId": 1,
"name": "Datenbank-Migration",
"description": null,
"startTime": "2026-07-10T22:00:00.000Z",
"endTime": "2026-07-11T01:00:00.000Z",
"isRecurring": false,
"recurrencePattern": null,
"isActive": true,
"targets": [
{ "type": "website", "id": 101 }
],
"tags": [],
"websiteId": null,
"icmpMonitorId": null,
"smtpMonitorId": null,
"sshMonitorId": null,
"ftpMonitorId": null,
"imapPopMonitorId": null,
"dnsMonitorId": null,
"customerIpId": null,
"customerDomainId": null,
"createdAt": "2026-06-29T10:00:00.000Z",
"updatedAt": "2026-06-29T10:00:00.000Z"
}Häufige Fehler
| Status | Beschreibung |
|---|---|
400 (Validierung) | Kein Zielfeld angegeben, oder customerId mit anderen Zielfeldern kombiniert. Dies sind Zod-Validierungsfehler; der Response-Body ist ein Standard-Validierungsfehler, kein { data: { code } }. |
400 { data: { code: "mixedCustomers" } } | targets enthält Monitore verschiedener Kunden. |
400 { data: { code: "mixedTagOrganizations" } } | tagIds enthält Tags aus verschiedenen Organisationen. |
401 Unauthorized | Nicht angemeldet. |
403 Forbidden | Kein Zugriff auf die Organisation, das Ziel liegt außerhalb des Bereichs (globale Support-Konten können keine Wartungsfenster erstellen), oder der Benutzer ist readonly und versucht ein organisationsweites Nur-Tag-Fenster zu erstellen. |
404 { data: { code: "tagNotFound" } } | Eine tagId existiert nicht in der Organisation. |
Maintenance Windows
Erstelle und verwalte Wartungsfenster, um Alarme bei geplanten Arbeiten zu unterdrücken. Fenster können einen einzelnen Monitor, mehrere Monitore, einen gesamten Kunden oder alle Monitore mit einem bestimmten Tag abdecken.
Maintenance Window löschen
Löscht ein Wartungsfenster dauerhaft. Die aktive Alarm-Unterdrückung endet sofort.