
# Lister les clés d'API

`GET /v1/api-keys` · permission `api-keys:read`

Liste les clés d'API de gestion de l'environnement, de la plus récente à la plus ancienne (`order=asc` inverse l'ordre) ; les clés révoquées et expirées sont incluses. La clé brute n'est jamais renvoyée, uniquement des métadonnées.

## Requête

| Paramètre | Emplacement | Description |
|---|---|---|
| `limit` | query | Taille de page, 1 à 100. |
| `after` | query | Curseur de la page suivante (`list_metadata.after`). |
| `before` | query | Curseur de la page précédente (`list_metadata.before`). |
| `order` | query | `desc` (par défaut, plus récente d'abord) ou `asc`. |

## Réponse

`200 OK`. `last_used_ip` est tronquée à un préfixe /24 (IPv4) ou /48 (IPv6).

```json
{
  "data": [
    {
      "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
    }
  ],
  "list_metadata": { "before": null, "after": null }
}
```

## Erreurs

| HTTP | `code` | Quand |
|---|---|---|
| 400 | `invalid_cursor` | Le curseur est invalide. |
| 401 | `unauthenticated` | La clé est absente, invalide ou révoquée. |
| 403 | `insufficient_permissions` | La clé n'a pas la permission requise. |
| 422 | `validation_failed` | Un paramètre de requête est invalide (par exemple `limit` hors de 1–100). |

## Exemple

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