Ausfall-Details abrufen
Gibt Details zu einem bestimmten Vorfall zurück.
GET /api/incidents/:incidentPublicId
Enthält neben den Incident-Basisdaten auch eine Timeline (Checks/Alert-Events) sowie optional einen Evidence-Check.
Authentifizierung
Erfordert eine gültige Session.
- Header:
Authorization: Bearer <token>
Parameter
incidentPublicId(Path, required): Öffentliche UUID des Incidents.
Beispiel (cURL)
BASE_URL="https://uptimeify.io"
TOKEN="<dein-api-token>"
curl -X GET "$BASE_URL/api/incidents/6bfec6f6-245a-47ce-843b-157d97d56f88" \
-H "Authorization: Bearer $TOKEN" \
-H "Accept: application/json"Hinweis: evidenceCheck kann null sein. screenshotUrl ist nur gesetzt, wenn hasScreenshot true ist.
Auflösung der Timeline
Jeder Eintrag in outageStartedCheck, failedChecks und recoveryChecks trägt ein Feld resolution:
raw: eine einzelne Prüfung an einem einzelnen Standort.location,statusCodeunderrorMessagesind die Werte, die dieser Standort gemeldet hat.1min: eine Minute aus dem Monitoring-Aggregat. Sie wird verwendet, sobald ein Vorfall älter ist als die Aufbewahrungsfrist der Rohdaten (48 Stunden).location,statusCodeunderrorMessagesind dannnull,responseTimeMsist der Mittelwert der Minute, und zwei zusätzliche Felder nennen die Standorte dahinter:totalLocationsundfailedLocations. Dieideines solchen Eintrags ist synthetisch (1min-<Zeitstempel>) und lässt sich nicht als Prüfung nachschlagen.
Die drei Listen werden unabhängig voneinander aufgelöst. Ein Vorfall, der die Grenze überspannt, kann für seinen jüngeren Teil raw-Einträge und für den älteren 1min-Einträge liefern.
Antwort (Auszug)
{
"incident": {
"id": 123,
"websiteId": 101,
"type": "downtime",
"status": "open",
"startedAt": "2026-02-26T12:10:00.000Z",
"resolvedAt": null,
"statusCode": null,
"errorMessage": "Timeout",
"responseTimeMs": null,
"falseAlarmAt": null,
"falseAlarmReason": null
},
"timeline": {
"outageStartedAt": "2026-02-26T12:08:00.000Z",
"outageStartedCheck": {
"id": "chk_01H...",
"checkedAt": "2026-02-26T12:08:00.000Z",
"status": "failure",
"statusCode": 503,
"errorMessage": "Timeout",
"responseTimeMs": null,
"location": { "id": 7, "code": "de-nbg", "name": "Nuremberg (DE)" },
"resolution": "raw"
},
"confirmationAt": "2026-02-26T12:10:00.000Z",
"failedChecks": [
{
"id": "1min-2026-02-26T12:09:00.000Z",
"checkedAt": "2026-02-26T12:09:00.000Z",
"status": "failure",
"statusCode": null,
"errorMessage": null,
"responseTimeMs": 246,
"location": null,
"resolution": "1min",
"totalLocations": 3,
"failedLocations": 2
}
],
"failedChecksTotal": 2,
"alertEvents": [
{
"id": 987,
"sentAt": "2026-02-26T12:11:00.000Z",
"type": "email",
"status": "sent",
"channelName": "Ops Email",
"errorMessage": null
}
],
"recoveryChecks": [],
"recoveryChecksTotal": 0
},
"evidenceCheck": {
"id": "chk_01H...",
"checkedAt": "2026-02-26T12:08:00.000Z",
"diagnostics": null,
"hasScreenshot": false,
"screenshotUrl": null
}
}Fehlalarm-Markierung
Ein Vorfall kann als Fehlalarm markiert werden (POST /api/incidents/{id}/false-alarm). Zwei
Felder auf incident geben diese Markierung wieder, nur lesend:
| Feld | Typ | Bedeutung |
|---|---|---|
falseAlarmAt | string | null | Wann markiert wurde, ISO 8601. null heißt: nicht markiert. |
falseAlarmReason | string | null | Der beim Markieren angegebene freie Grund, oder null. |
Die Markierung ist rücknehmbar, falseAlarmAt kann also wieder null werden. Sie ändert den
status nicht: ein als Fehlalarm markierter Vorfall ist trotzdem als Alarm hinausgegangen, und
genau das hält die Markierung fest.
Wer markiert hat, steht nicht in der Antwort.
Häufige Fehler
400 Incident public ID (UUID) requiredwenn:incidentPublicIdungültig ist401 Unauthorizedwenn du nicht angemeldet bist403 Forbiddenwenn der Incident existiert, du aber keinen Zugriff hast404 Incident not foundwenn der Incident nicht existiert