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

# Groupes WhatsApp

> Créez, gérez et envoyez des messages dans vos groupes WhatsApp via l'API.

Toutes les routes utilisent le header `x-api-key` et sont préfixées par `/sessions/:sessionId/`.

***

## Lister les groupes

`GET /v1/sessions/:sessionId/groups`

Liste tous les groupes WhatsApp de la session.

```bash cURL theme={null}
curl https://api.waaconnect.com/v1/sessions/uuid-session-12/groups \
  -H "x-api-key: wac_xxxxxxxxxxxxxxxx"
```

```json Réponse 200 theme={null}
[
  {
    "id": "1203630XXXXXXXX@g.us",
    "subject": "Equipe Marketing",
    "desc": "Groupe officiel marketing",
    "participants": [...]
  }
]
```

***

## Nombre de groupes

`GET /v1/sessions/:sessionId/groups-count`

Retourne uniquement le nombre de groupes.

```bash cURL theme={null}
curl https://api.waaconnect.com/v1/sessions/uuid-session-12/groups-count \
  -H "x-api-key: wac_xxxxxxxxxxxxxxxx"
```

```json Réponse 200 theme={null}
{ "count": 7 }
```

***

## Créer un groupe

`POST /v1/sessions/:sessionId/groups`

Crée un nouveau groupe WhatsApp.

<ParamField body="subject" type="string" required>
  Nom du groupe
</ParamField>

<ParamField body="participants" type="array" required>
  Numéros de téléphone (sans `+`) des membres à ajouter
</ParamField>

```bash cURL theme={null}
curl -X POST https://api.waaconnect.com/v1/sessions/uuid-session-12/groups \
  -H "x-api-key: wac_xxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{"subject": "Equipe Marketing", "participants": ["22997000000", "22996000000"]}'
```

***

## Rejoindre

`POST /v1/sessions/:sessionId/groups/join`

Rejoindre un groupe via son code d'invitation.

<ParamField body="inviteCode" type="string" required>
  Code d'invitation du groupe (sans le lien complet)
</ParamField>

```bash cURL theme={null}
curl -X POST https://api.waaconnect.com/v1/sessions/uuid-session-12/groups/join \
  -H "x-api-key: wac_xxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{"inviteCode": "AbCdEfGhIjkLmNoP"}'
```

***

## Détails

`GET /v1/sessions/:sessionId/groups/:groupId`

Retourne les métadonnées complètes d'un groupe.

<ParamField path="groupId" type="string" required>
  JID du groupe (ex : `1203630XXXXXXXX@g.us`)
</ParamField>

```bash cURL theme={null}
curl https://api.waaconnect.com/v1/sessions/uuid-session-12/groups/1203630XXXXXXXX@g.us \
  -H "x-api-key: wac_xxxxxxxxxxxxxxxx"
```

***

## Membres

`GET /v1/sessions/:sessionId/groups/:groupId/members`

Liste les membres d'un groupe.

```bash cURL theme={null}
curl https://api.waaconnect.com/v1/sessions/uuid-session-12/groups/1203630XXXXXXXX@g.us/members \
  -H "x-api-key: wac_xxxxxxxxxxxxxxxx"
```

```json Réponse 200 theme={null}
{
  "groupId": "1203630XXXXXXXX@g.us",
  "count": 3,
  "members": [
    { "id": "22997000000@s.whatsapp.net", "admin": "superadmin" },
    { "id": "22996000000@s.whatsapp.net", "admin": "admin" },
    { "id": "22991000000@s.whatsapp.net" }
  ]
}
```

***

## Modifier

`PATCH /v1/sessions/:sessionId/groups/:groupId`

Modifie le sujet ou la description du groupe.

<ParamField body="subject" type="string">
  Nouveau nom du groupe
</ParamField>

<ParamField body="description" type="string">
  Nouvelle description du groupe
</ParamField>

```bash cURL theme={null}
curl -X PATCH https://api.waaconnect.com/v1/sessions/uuid-session-12/groups/1203630XXXXXXXX@g.us \
  -H "x-api-key: wac_xxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{"subject": "Equipe Marketing 2026"}'
```

***

## Quitter

`DELETE /v1/sessions/:sessionId/groups/:groupId`

Quitter un groupe WhatsApp.

```bash cURL theme={null}
curl -X DELETE https://api.waaconnect.com/v1/sessions/uuid-session-12/groups/1203630XXXXXXXX@g.us \
  -H "x-api-key: wac_xxxxxxxxxxxxxxxx"
```

***

## Gérer les participants

`POST /v1/sessions/:sessionId/groups/:groupId/participants`

Ajouter, retirer, promouvoir ou rétrograder des membres.

<ParamField body="participants" type="array" required>
  Numéros de téléphone des membres concernés
</ParamField>

<ParamField body="action" type="string" required>
  Action à effectuer : `add`, `remove`, `promote`, `demote`
</ParamField>

**Actions disponibles**

| Valeur    | Description              |
| --------- | ------------------------ |
| `add`     | Ajouter des membres      |
| `remove`  | Retirer des membres      |
| `promote` | Donner les droits admin  |
| `demote`  | Retirer les droits admin |

```bash cURL theme={null}
curl -X POST https://api.waaconnect.com/v1/sessions/uuid-session-12/groups/1203630XXXXXXXX@g.us/participants \
  -H "x-api-key: wac_xxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{"participants": ["22997000000"], "action": "add"}'
```

```json Réponse 200 theme={null}
{
  "ok": true,
  "action": "add",
  "participants": ["22997000000@s.whatsapp.net"]
}
```

***

## Mode admins

`PATCH /v1/sessions/:sessionId/groups/:groupId/privacy`

Active ou désactive le mode "admins uniquement" pour l'envoi de messages.

<ParamField body="adminOnly" type="boolean" required>
  `true` = seuls les admins peuvent écrire dans le groupe
</ParamField>

```bash cURL theme={null}
curl -X PATCH https://api.waaconnect.com/v1/sessions/uuid-session-12/groups/1203630XXXXXXXX@g.us/privacy \
  -H "x-api-key: wac_xxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{"adminOnly": true}'
```

***

## Promouvoir

`POST /v1/sessions/:sessionId/groups/:groupId/promote`

Promouvoir des membres comme admin.

<ParamField body="participants" type="array" required>
  Numéros de téléphone des membres à promouvoir
</ParamField>

```bash cURL theme={null}
curl -X POST https://api.waaconnect.com/v1/sessions/uuid-session-12/groups/1203630XXXXXXXX@g.us/promote \
  -H "x-api-key: wac_xxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{"participants": ["22997000000"]}'
```

***

## Rétrograder

`POST /v1/sessions/:sessionId/groups/:groupId/demote`

Retirer les droits admin de membres.

<ParamField body="participants" type="array" required>
  Numéros de téléphone des membres à rétrograder
</ParamField>

```bash cURL theme={null}
curl -X POST https://api.waaconnect.com/v1/sessions/uuid-session-12/groups/1203630XXXXXXXX@g.us/demote \
  -H "x-api-key: wac_xxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{"participants": ["22997000000"]}'
```

***

## Code d'invitation

`GET /v1/sessions/:sessionId/groups/:groupId/invite-code`

Récupère le code d'invitation du groupe.

```bash cURL theme={null}
curl https://api.waaconnect.com/v1/sessions/uuid-session-12/groups/1203630XXXXXXXX@g.us/invite-code \
  -H "x-api-key: wac_xxxxxxxxxxxxxxxx"
```

```json Réponse 200 theme={null}
{
  "groupId": "1203630XXXXXXXX@g.us",
  "inviteCode": "AbCdEfGhIjkLmNoP"
}
```

***

## Envoyer dans le groupe

`POST /v1/sessions/:sessionId/groups/:groupId/send`

Envoie un message texte dans un groupe.

<ParamField body="message" type="string" required>
  Texte à envoyer dans le groupe
</ParamField>

```bash cURL theme={null}
curl -X POST https://api.waaconnect.com/v1/sessions/uuid-session-12/groups/1203630XXXXXXXX@g.us/send \
  -H "x-api-key: wac_xxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{"message": "Bonjour le groupe, point de 16h."}'
```

***

## Envoyer un média

`POST /v1/sessions/:sessionId/groups/:groupId/send-media`

Envoie un média dans un groupe.

<ParamField body="mediaType" type="string" required>
  Type : `image`, `video`, `audio`, `document`
</ParamField>

<ParamField body="url" type="string" required>
  URL publique du média
</ParamField>

<ParamField body="mimetype" type="string">
  Type MIME du fichier
</ParamField>

<ParamField body="caption" type="string">
  Légende affichée sous le média
</ParamField>

<ParamField body="filename" type="string">
  Nom du fichier (pour `document`)
</ParamField>

***

## Message interactif

`POST /v1/sessions/:sessionId/groups/:groupId/send-interactive`

Envoie un message interactif (boutons ou liste) dans un groupe.

Même structure que `POST /sessions/:sessionId/send-interactive`, sans le champ `chatId` (remplacé par `:groupId` dans l'URL).

```json Réponse 200 theme={null}
{ "ok": true, "id": "uuid-message-451" }
```
