---
title: "Ausfall-Details abrufen"
description: "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)

```bash
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`, `statusCode` und `errorMessage` sind 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`, `statusCode` und `errorMessage` sind dann `null`, `responseTimeMs` ist der Mittelwert der Minute, und zwei zusätzliche Felder nennen die Standorte dahinter: `totalLocations` und `failedLocations`. Die `id` eines 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)

```json
{
  "incident": {
    "id": 123,
    "websiteId": 101,
    "type": "downtime",
    "status": "open",
    "startedAt": "2026-02-26T12:10:00.000Z",
    "resolvedAt": null,
    "statusCode": null,
    "errorMessage": "Timeout",
    "responseTimeMs": 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
  }
}
```

## Häufige Fehler

- `400 Incident public ID (UUID) required` wenn `:incidentPublicId` ungültig ist
- `401 Unauthorized` wenn du nicht angemeldet bist
- `403 Forbidden` wenn der Incident existiert, du aber keinen Zugriff hast
- `404 Incident not found` wenn der Incident nicht existiert

