
# Obtenir un événement d'audit

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

Renvoie un enregistrement d'audit provenant de l'un des flux (`admin` ou `application`).

## Requête

| Paramètre | Dans | Obligatoire | Description |
|---|---|---|---|
| `event_id` | path | oui | Identifiant de l'enregistrement d'audit, préfixé par `evt_`. |

## Réponse

`200 OK` et l'enregistrement, dans la même structure qu'un élément de [Lister les événements d'audit](list.md). Les champs vides valent `null`.

`ip` et `user_agent` ne sont présents que si la clé possède l'autorisation `audit-events:read_ip` (renseignés uniquement pour les enregistrements de moins de 13 mois) ; sans cette autorisation, les champs sont entièrement omis.

```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"
}
```

## Erreurs

Chaque erreur est un corps `application/problem+json` avec un `code` stable.

| HTTP | `code` | Quand |
|---|---|---|
| 401 | `unauthenticated` | La clé API est absente, invalide ou révoquée. |
| 403 | `insufficient_permissions` | La clé ne possède pas `audit-events:read`. |
| 404 | `not_found` | L'enregistrement n'existe pas, appartient à un autre environnement, est hors de la fenêtre de conservation, ou l'identifiant est mal formé. |
| 429 | `rate_limited` | La limite de débit a été dépassée ; respectez `Retry-After`. |
| 503 | `service_unavailable` | Une dépendance est temporairement indisponible ; réessayez plus tard. |

## Exemple

```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
```

## Données personnelles

Ce point de terminaison traite des données personnelles : des événements d'audit. [Données personnelles dans les API KeenAuth](/docs/policies/personal-data) décrit ce qui est stocké, pendant combien de temps il est conservé et comment il est supprimé. Ne transmettez de catégories particulières de données personnelles (santé, données biométriques, religion, opinions politiques, orientation sexuelle) dans aucun champ.
