> ## Documentation Index
> Fetch the complete documentation index at: https://docs.msgflash.com/llms.txt
> Use this file to discover all available pages before exploring further.

# DELETE Retirer des membres

> Retire plusieurs contacts d'un groupe.

## Endpoint

```txt theme={null}
DELETE /api/v1/contacts/groups/{groupId}/members
```

## Paramètres path

| Nom       | Type | Requis | Description  |
| --------- | ---- | ------ | ------------ |
| `groupId` | UUID | oui    | ID du groupe |

## Body

| Champ        | Type    | Requis | Description                         |
| ------------ | ------- | ------ | ----------------------------------- |
| `contactIds` | UUID\[] | oui    | 1 à 10000 IDs de contacts à retirer |

## Réponse succès `200`

```json theme={null}
{
  "data": {
    "removed": 1,
    "notInGroup": 1
  }
}
```

## Réponse async `202`

Quand `contactIds.length >= 100`, l'opération passe en arrière-plan.

```json theme={null}
{
  "data": {
    "mode": "async",
    "jobId": "job_def456",
    "status": "pending",
    "operation": "remove_from_group",
    "requestedCount": 280,
    "groupId": "uuid-group",
    "progress": 0,
    "message": "Bulk operation queued. Check status via GET /api/contacts/bulk-jobs/job_def456"
  }
}
```

## Notes

* `< 100` contacts : réponse synchrone
* `>= 100` contacts : réponse asynchrone en HTTP `202`
* Poller `GET /api/v1/contacts/bulk-jobs/{jobId}/progress` toutes les `2s`
