
# Récupérer un journal

`GET /v1/logs/{log_id}` · autorisation `logs:read`

Renvoie un enregistrement de journal, y compris `details`.

## Requête

| Paramètre | Dans | Obligatoire | Description |
|---|---|---|---|
| `log_id` | chemin | oui | Identifiant de l'enregistrement de journal, préfixé `evt_`. |

## Réponse

`200 OK` avec l'enregistrement. Les champs vides valent `null`.

Les champs `ip`, `ip_asn`, `user_agent` et `user_agent_family` ne sont présents que si la clé possède l'autorisation `audit-events:read_ip`, et `identifier_hint` uniquement si elle possède `users:read_pii`. Sans cette autorisation, le champ est omis entièrement (aucune valeur masquée). `ip_country` est toujours renvoyé.

```json
{
  "id": "evt_01j9xk3m7q8r2s4t6v8w0y2z4a",
  "occurred_at": "2026-10-01T08:15:42.120Z",
  "type": "authentication.password.failed",
  "outcome": "failure",
  "reason_code": "invalid_credentials",
  "user_id": "usr_0a1b2c3d4e5f6g7h8j9k0m1n2p",
  "org_id": null,
  "application_id": "app_01j9xk3m7q8r2s4t6v8w0y2z4b",
  "connection_id": "conn_01j9xk3m7q8r2s4t6v8w0y2z4c",
  "directory_id": null,
  "session_id": null,
  "identifier_hint": "a***@e***.com",
  "ip": "203.0.113.7",
  "ip_country": "DE",
  "ip_asn": 64500,
  "user_agent": "Mozilla/5.0 (X11; Linux x86_64)",
  "user_agent_family": "Firefox",
  "risk": null,
  "auth_context": null,
  "act_chain": null,
  "details": {"attempt": 3},
  "request_id": "0192a6c1-7d3e-7a10-9b2c-3d4e5f607182",
  "correlation_id": null,
  "trace_id": "4bf92f3577b34da6a3ce929d0e0e4736"
}
```

## Erreurs

Chaque erreur est un corps `application/problem+json` accompagné d'un `code` stable.

| HTTP | `code` | Quand |
|---|---|---|
| 401 | `unauthenticated` | La clé d'API est absente, invalide ou révoquée. |
| 403 | `insufficient_permissions` | La clé ne possède pas l'autorisation `logs:read`. |
| 404 | `not_found` | L'enregistrement n'existe pas, appartient à un autre environnement ou se situe en dehors de la période de conservation. |
| 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/logs/log_01j9xk3m7q8r2s4t6v8w0y2z4a \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY"
```

## Données personnelles

Cet endpoint contient des données personnelles : les journaux de l'environnement. [Données personnelles dans les API KeenAuth](/docs/policies/personal-data) décrit ce qui est stocké, la durée de conservation et la manière dont elles sont supprimées. N'envoyez aucune catégorie particulière de données personnelles (santé, données biométriques, religion, opinions politiques, orientation sexuelle) dans aucun champ.
