
# Lister les groupes d'un annuaire

`GET /v1/directories/{directory_id}/groups` · autorisation `directories:read`

Liste les groupes que le fournisseur d'identité a provisionnés dans l'annuaire, ordonnés par identifiant : identifiant, identifiant externe, nom d'affichage et nombre de membres ; jamais un membre. Utilisez l'`id` d'un groupe comme `directory_group_id` dans `POST /v1/directories/{directory_id}/role-mappings`. Seule la pagination vers l'avant existe ; le curseur est lié à l'annuaire.

## Requête

| Champ | Type | Obligatoire | Description |
|---|---|---|---|
| `directory_id` | path | oui | Identifiant de l'annuaire SCIM (`dir_…`). |
| `limit` | query | non | 1–100, valeur par défaut 20. |
| `after` | query | non | Le curseur issu de `list_metadata.after`. |

Il n'y a pas de corps de requête.

## Réponse

`200 OK` avec une page de groupes.

```json
{
  "data": [
    {
      "id": "dsg_01j9xn3p5q7r9s1t3v5w7x9y1a",
      "external_id": "00g1a2b3c4",
      "name": "Engineering",
      "member_count": 12
    }
  ],
  "list_metadata": {
    "before": null,
    "after": null
  }
}
```

## Erreurs

| HTTP | code | Quand |
|---|---|---|
| 400 | `invalid_cursor` | Le curseur est invalide ou appartient à un autre annuaire ou filtre. |
| 404 | `not_found` | L'annuaire n'existe pas dans cet environnement. |
| 422 | `validation_failed` | `limit` est hors plage, ou `before` ou `order` a été fourni (`unsupported`). |
| 401 | `unauthenticated` | L'identifiant est absent, invalide ou révoqué. |
| 403 | `insufficient_permissions` | L'identifiant 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 période `Retry-After`. |
| 503 | `service_unavailable` | La synchronisation des annuaires est temporairement indisponible ou non configurée dans ce déploiement ; réessayez après la période `Retry-After`. |

## Exemple

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