Uptimeify Docs

Wartung planen

Plant eine Wartung für Status-Seiten und Komponenten, mit Ankündigung, Erinnerung, Beginn- und Ende-Nachricht.

POST /api/status-pages/maintenances

state kommt aus der Uhr und wird nie gespeichert: scheduled vor scheduledFor, in_progress bis scheduledUntil, danach completed; cancelled, sobald abgesagt. Die Wartung beginnt und endet von selbst, dafür ist kein Aufruf nötig. Solange sie in_progress ist, zeigen ihre Komponenten auf der öffentlichen Seite maintenance (ein schlimmerer Zustand wie ein Ausfall bleibt); eine Wartung ohne Komponenten zeigt die ganze Seite in Wartung.

Abonnenten der Status-Seite (oder einer betroffenen Komponente) bekommen über ihren Kanal (E-Mail, Webhook, Slack, Teams) die Ereignisse maintenance_scheduled (beim Speichern und erneut, wenn ein bevorstehender Beginn verschoben wird), maintenance_reminder, maintenance_started, maintenance_completed, maintenance_update und maintenance_cancelled. Die Schalter unten bestimmen, welche davon verschickt werden; jedes Ereignis steht außerdem im RSS- und Atom-Feed der Seite. Der Versand beachtet die Abo-Verzögerung der Seite und wird zur Sendezeit entschieden: eine verschobene oder abgesagte Wartung verschickt ihre überholten Nachrichten nicht.

Eine Wartung hier informiert die Besucher deiner Status-Seiten. Sie pausiert keine Monitor-Alarme: dafür legst du im Monitoring ein Wartungsfenster an, das auch auf Seiten mit diesen Monitoren erscheint.

Zugriff

Organisations-admin und editor. Ein kundengebundener Nutzer oder API-Token erreicht nur Wartungen, deren Status-Seiten alle zu einem Kunden in seinem Bereich gehören; eine Seite ohne Kunde (customerId: null) ist Org-weiten Rollen vorbehalten. Eine Wartung einer anderen Organisation antwortet 404 (statusPageMaintenanceNotFound). IDs im Pfad nehmen die numerische ID oder die publicId. Die Änderung steht im Audit-Protokoll der Organisation.

Request-Body

FeldTypPflichtStandardBeschreibung
titlestringJa-Steht auf der Seite und in jeder Nachricht (1-200 Zeichen).
descriptionstring|nullNeinnullWas passiert und was Besucher merken (max. 5000 Zeichen).
scheduledForstringJa-Beginn, ISO 8601 mit Versatz (Z oder +01:00); gespeichert und zurückgegeben in UTC.
scheduledUntilstringJa-Ende, nach scheduledFor.
statusPageIdsarrayJa-Status-Seiten (ID oder publicId, 1-10), die die Wartung zeigen.
componentIdsarrayNein[]Betroffene Komponenten (ID oder publicId, bis 100) jeder Quelle: manuell, Monitor oder Drittanbieter. Jede muss zu einer der statusPageIds gehören. Eine Seite ohne genannte Komponente zeigt die Wartung seitenweit.
notifyOnSchedulebooleanNeintrueBeim Speichern an Abonnenten ankündigen, und erneut, wenn ein bevorstehender Beginn verschoben wird.
reminderMinutesBeforenumber|nullNeinnullAbonnenten so viele Minuten (5-10080) vor dem Beginn erinnern; null schickt keine Erinnerung.
notifyOnStartbooleanNeinfalseAbonnenten bei Beginn benachrichtigen.
notifyOnCompletebooleanNeintrueAbonnenten bei Ende benachrichtigen.

Unbekannte Felder werden abgewiesen. Eine Wartung, die ganz in der Vergangenheit liegt, wird ohne Ankündigung gespeichert.

Beispiel (cURL)

BASE_URL="https://uptimeify.io"
TOKEN="<dein-api-token>"

curl -X POST "$BASE_URL/api/status-pages/maintenances" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"title": "Database upgrade", "scheduledFor": "2026-11-03T23:00:00+01:00", "scheduledUntil": "2026-11-04T00:00:00+01:00", "statusPageIds": [1], "componentIds": [7], "reminderMinutesBefore": 60}'

Antwort

201 Created mit der Wartung:

{
  "id": 12,
  "publicId": "3f1c2a9e-5b7d-4c8e-9a1f-2b3c4d5e6f70",
  "organizationId": 4,
  "title": "Database upgrade",
  "description": "Checkout may be slow for a few minutes.",
  "scheduledFor": "2026-11-03T22:00:00.000Z",
  "scheduledUntil": "2026-11-03T23:00:00.000Z",
  "state": "scheduled",
  "notifyOnSchedule": true,
  "reminderMinutesBefore": 60,
  "notifyOnStart": false,
  "notifyOnComplete": true,
  "cancelledAt": null,
  "statusPageIds": [1],
  "componentIds": [7],
  "links": [
    {
      "statusPageId": 1,
      "statusPagePublicId": "0b6f3c1e-8d2a-4f5b-9c7e-1a2b3c4d5e6f",
      "statusPageName": "Acme Status",
      "componentId": 7,
      "componentPublicId": "5a1b2c3d-4e5f-4a6b-8c7d-9e0f1a2b3c4d",
      "componentName": "Checkout"
    }
  ],
  "updates": [],
  "createdAt": "2026-10-28T09:00:00.000Z",
  "updatedAt": "2026-10-28T09:00:00.000Z"
}

Felder

  • statusPageIds und componentIds geben die Anfrage wieder; links nennt jede Seite und Komponente (componentId: null = die ganze Seite).
  • updates sind die öffentlichen Updates, älteste zuerst (siehe Wartungs-Update veröffentlichen).

Häufige Fehler

  • 400 Bad Request (invalidRequestBody), wenn ein Feld fehlt, den falschen Typ hat oder unbekannt ist; data.issues nennt das Feld
  • 400 Bad Request (invalidDateRange), wenn scheduledUntil nicht nach scheduledFor liegt
  • 400 Bad Request (invalidIdentifier), wenn eine ID weder Zahl noch UUID ist
  • 400 Bad Request (statusPageComponentNotOnPage), wenn eine Komponente zu keiner der statusPageIds gehört
  • 401 Unauthorized, wenn du nicht angemeldet bist
  • 403 Forbidden (forbidden), wenn deine Rolle das nicht darf, oder für einen kundengebundenen Aufrufer auf einer Seite ohne Kunde oder eines anderen Kunden
  • 403 Forbidden (statusPagesModuleDisabled), wenn das Statusseiten-Modul nicht aktiviert ist
  • 404 Not Found (statusPageNotFound), wenn eine Status-Seite nicht existiert oder zu einer anderen Organisation gehört
  • 404 Not Found (statusPageComponentNotFound), wenn es eine Komponente nicht gibt

Auf dieser Seite