
# Obtenir une clé d'API

`GET /v1/api-keys/{key_id}` · permission `api-keys:read`

Renvoie les métadonnées d'une clé d'API. La clé brute n'est jamais renvoyée.

`last_used_at` est écrit au plus une fois par minute, il peut donc être en retard d'une minute au maximum sur la dernière requête ; `last_used_ip` est le réseau /24 (IPv4) ou /48 (IPv6) de cette requête, jamais l'adresse complète. L'environnement reçoit un événement `api_key.expiry_warned` 30, 7 et 1 jours avant `expires_at` (une fois par seuil ; les clés révoquées et en cours de rotation n'en reçoivent aucun).

## Requête

| Paramètre | Emplacement | Description |
|---|---|---|
| `key_id` | chemin | Identifiant de la clé d'API (`key_…`). |

## Réponse

`200 OK`. L'objet clé.

```json
{
  "id": "key_0000000000000000000000001z",
  "name": "ci",
  "type": "restricted",
  "permissions": ["users:read"],
  "allowed_cidrs": [],
  "last4": "xxxx",
  "created_by": "key_…",
  "created_at": "2026-10-01T10:00:00Z",
  "expires_at": "2027-10-01T10:00:00Z",
  "last_used_at": null,
  "last_used_ip": null,
  "rotated_from": null,
  "revoked_at": null,
  "revoke_reason": null
}
```

## Erreurs

| HTTP | `code` | Quand |
|---|---|---|
| 401 | `unauthenticated` | La clé est absente, invalide ou révoquée. |
| 403 | `insufficient_permissions` | La clé n'a pas la permission requise. |
| 404 | `not_found` | La clé n'existe pas dans cet environnement. |

## Exemple

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