
# Lister les blocages de désactivation en masse

`GET /v1/directories/{directory_id}/deprovision-holds` · autorisation `directories:read`

Liste les blocages de désactivation en masse du répertoire, ouverts et tranchés, du plus récent au plus ancien : le nombre de désactivations retenues, le statut et la décision ; les utilisateurs retenus ne sont jamais renvoyés. Un blocage ouvert est approuvé ou rejeté avec `POST /v1/directories/{directory_id}/deprovision-holds/{hold_id}:approve` ou `:reject` ; après 72 heures, il est approuvé à l'expiration du délai. Seule la pagination vers l'avant existe ; le curseur est lié au répertoire.

## Requête

| Champ | Type | Obligatoire | Description |
|---|---|---|---|
| `directory_id` | path | oui | ID du répertoire 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 blocages.

```json
{
  "data": [
    {
      "id": "0190a1b2-c3d4-7e5f-8a9b-0c1d2e3f4a5b",
      "status": "approved",
      "opened_at": "2026-10-20T09:00:00Z",
      "pending_count": 42,
      "decided_by": "api_key:key_01j9xr6s8t0v2w4x6y8z0a2b4d",
      "decided_at": "2026-10-20T10:00:00Z"
    }
  ],
  "list_metadata": {
    "before": null,
    "after": null
  }
}
```

`status` vaut `open`, `approved` ou `rejected`. `decided_by` vaut `api_key:<ID de la clé>`, `admin_portal_link:apl_…` ou `timeout` ; ce champ et `decided_at` valent `null` tant que le blocage est ouvert.

## Erreurs

| HTTP | code | Quand |
|---|---|---|
| 400 | `invalid_cursor` | Le curseur est invalide ou appartient à un autre répertoire. |
| 404 | `not_found` | Le répertoire 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 indiquée par `Retry-After`. |
| 503 | `service_unavailable` | La synchronisation des répertoires est temporairement indisponible ou non configurée dans ce déploiement ; réessayez après la période indiquée par `Retry-After`. |

## Exemple

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

## Données personnelles

Ce point de terminaison traite des données personnelles : des utilisateurs de répertoire (SCIM). [Données personnelles dans les API KeenAuth](/docs/policies/personal-data) décrit ce qui est stocké, combien de temps ces données sont conservées et comment elles sont supprimées. N'envoyez de catégories particulières de données personnelles (santé, données biométriques, religion, opinions politiques, orientation sexuelle) dans aucun champ.
