
# Lister les rôles d'environnement

`GET /v1/roles` · autorisation `roles:read`

Liste le catalogue de rôles de l'environnement, du plus ancien au plus récent. Seule la pagination vers l'avant est prise en charge : `before` et un `order` autre que `asc` renvoient `422`. Le curseur est lié à cette liste. Les rôles d'organisation ne font pas partie de cette liste. L'ensemble d'autorisations du rôle n'est pas renvoyé dans cette version.

## Requête

| Champ | Type | Obligatoire | Description |
|---|---|---|---|
| `limit` | query | non | 1 à 100, par défaut 20. |
| `after` | query | non | Curseur issu de `list_metadata.after`. |

Aucun corps de requête.

## Réponse

`200 OK` avec une page de rôles.

```json
{
  "data": [
    {
      "id": "rol_01j9xr7s1t2w6x8y0z2a4b6c8e",
      "organization_id": null,
      "key": "support",
      "name": "Support",
      "description": "",
      "is_privileged": false,
      "assignable_in_self_service": true,
      "permission_ids": [],
      "created_at": "2026-10-12T09:31:00.123456Z",
      "updated_at": "2026-10-12T09:31:00.123456Z",
      "version": 1
    }
  ],
  "list_metadata": {
    "before": null,
    "after": null
  }
}
```

## Erreurs

| HTTP | code | Quand |
|---|---|---|
| 400 | `invalid_cursor` | Le curseur est invalide ou appartient à une autre liste. |
| 422 | `validation_failed` | `limit` est hors plage, ou `before` ou un `order` autre que `asc` a été fourni. |
| 401 | `unauthenticated` | Le justificatif est absent, invalide ou révoqué. |
| 403 | `insufficient_permissions` | Le justificatif ne dispose pas de l'autorisation requise. |
| 429 | `rate_limited` | La limite de débit a été dépassée ; réessayez après la durée indiquée par `Retry-After`. |
| 503 | `service_unavailable` | Une dépendance est temporairement indisponible ; réessayez après la durée indiquée par `Retry-After`. |

## Exemple

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