
# Ein Audit-Ereignis abrufen

`GET /v1/audit-events/{event_id}` · Berechtigung `audit-events:read`

Gibt einen Audit-Datensatz aus einem der beiden Streams (`admin` oder `application`) zurück.

## Anfrage

| Parameter | In | Erforderlich | Beschreibung |
|---|---|---|---|
| `event_id` | path | ja | Audit-Datensatz-ID mit dem Präfix `evt_`. |

## Antwort

`200 OK` und der Datensatz in derselben Struktur wie ein Element von [Audit-Ereignisse auflisten](list.md). Leere Felder sind `null`.

`ip` und `user_agent` sind nur enthalten, wenn der Schlüssel die Berechtigung `audit-events:read_ip` besitzt (werden nur für Datensätze ausgefüllt, die jünger als 13 Monate sind); ohne sie werden die Felder vollständig weggelassen.

```json
{
  "id": "evt_01j9xk3m7q8r2s4t6v8w0y2z4a",
  "stream": "admin",
  "seq": 4182,
  "schema_version": 1,
  "action": "user.blocked",
  "category": "administration",
  "outcome": "success",
  "reason_code": null,
  "occurred_at": "2026-10-01T08:15:42.120Z",
  "received_at": "2026-10-01T08:15:42.131Z",
  "recorded_at": "2026-10-01T08:15:42.140Z",
  "clock_anomaly": false,
  "actor_type": "api_key",
  "actor_id": "key_01j9xk3m7q8r2s4t6v8w0y2z4d",
  "act_chain": null,
  "session_id": null,
  "auth_context": null,
  "elevation_ref": null,
  "org_id": null,
  "targets": [
    {"type": "user", "id": "usr_0a1b2c3d4e5f6g7h8j9k0m1n2p", "org_id": null, "name": null}
  ],
  "application_id": null,
  "ip": "203.0.113.7",
  "ip_prefix": "203.0.113.0/24",
  "ip_country": "DE",
  "ip_asn": 64500,
  "user_agent": "keenauth-go/1.4.0 (go/1.25.3)",
  "user_agent_family": "keenauth-go",
  "request_id": "0192a6c1-7d3e-7a10-9b2c-3d4e5f607182",
  "correlation_id": null,
  "trace_id": "4bf92f3577b34da6a3ce929d0e0e4736",
  "producer_service": "directory",
  "policy_ref": "perm:users:write",
  "changes": {"status": {"old": "active", "new": "blocked"}},
  "metadata": null,
  "prev_hash": "n4bQgYhMfWWaL-qgxVrQFaO_TxsrC4Is0V1sFbDwCgg",
  "org_prev_hash": null,
  "record_hash": "LCa0a2j_xo_5m0U8HTBBNBNCLXBkg7-g-YpeiGJm564"
}
```

## Fehler

Jeder Fehler ist ein `application/problem+json`-Body mit einem stabilen `code`.

| HTTP | `code` | Wann |
|---|---|---|
| 401 | `unauthenticated` | Der API-Schlüssel fehlt, ist ungültig oder wurde widerrufen. |
| 403 | `insufficient_permissions` | Dem Schlüssel fehlt `audit-events:read`. |
| 404 | `not_found` | Der Datensatz existiert nicht, gehört zu einer anderen Umgebung, liegt außerhalb des Aufbewahrungszeitraums oder die ID ist fehlerhaft. |
| 429 | `rate_limited` | Das Rate-Limit wurde überschritten; beachten Sie `Retry-After`. |
| 503 | `service_unavailable` | Eine Abhängigkeit ist vorübergehend nicht verfügbar; versuchen Sie es später erneut. |

## Beispiel

```bash
curl https://api.eu.keenauth.com/v1/audit-events/evt_01j9xk3m7q8r2s4t6v8w0y2z4a \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY"
```

```bash
keenauth audit-events get evt_01j9xk3m7q8r2s4t6v8w0y2z4a
```

## Personenbezogene Daten

Dieser Endpunkt verarbeitet personenbezogene Daten: Audit-Ereignisse. [Personenbezogene Daten in den KeenAuth-APIs](/docs/policies/personal-data) beschreibt, welche Daten gespeichert werden, wie lange sie aufbewahrt werden und wie sie gelöscht werden. Übermitteln Sie in keinem Feld besondere Kategorien personenbezogener Daten (Gesundheit, biometrische Daten, Religion, politische Meinungen, sexuelle Orientierung).
