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

# Envoi groupé

> Un même texte vers des numéros, des listes de contacts ou un fichier.

Ajoutez `"type": "bulk"` et visez des numéros saisis, des listes de contacts du projet, un fichier — l’un, l’autre, ou tous à la fois.

```http theme={null}
POST /api/v1/sms/messages
x-api-key: <votre clé>
Idempotency-Key: promo-octobre-2026

{
  "type": "bulk",
  "sender": "DEXCHANGE",
  "content": "Bonjour {{nom}}, -20 % ce week-end.",
  "to": ["77 123 45 67", "76 555 44 33"],
  "groupIds": ["6702…"]
}
```

* **Un SMS par numéro**, quelle que soit sa source : un doublon est compté et écarté.
* **Limites** : 10 000 numéros saisis par requête, 20 listes, 200 000 destinataires au total après dédoublonnage. Au-delà de 10 000 numéros, passez par un fichier.
* **Viser une liste** (`groupIds`) demande aussi la portée `contact:read`.

## Variables

| Variable | Valeur |
| - | - |
| `{{nom}}` ou `{{name}}` | le nom du contact |
| `{{telephone}}`, `{{phone}}` ou `{{numero}}` | son numéro |
| `{{ville}}`, `{{…}}` | tout attribut du contact, par son nom |

Une variable sans valeur rend une chaîne vide.

## Depuis un fichier

Un fichier CSV ou XLSX (20 Mo au plus) se dépose d’abord, puis se cite par son `fileId` :

```bash theme={null}
curl -X POST https://api.dexnotify.com/api/v1/sms/messages/files \
  -H "x-api-key: $DEXNOTIFY_CLE" \
  -F file=@clients.csv \
  -F 'mapping={"phone":"Téléphone","name":"Nom"}'
```

```json theme={null}
{ "type": "bulk", "sender": "DEXCHANGE", "content": "Bonjour {{nom}} !", "fileId": "6714…" }
```

Un fichier sert à un seul envoi, et disparaît après 24 h s’il n’a pas servi.

## Estimer d’abord

`POST /api/v1/sms/messages/estimate`, avec le même corps, rend le nombre de destinataires, les doublons, les numéros exclus et pourquoi, les unités par pays, et si le solde suffit.

> [!TIP]
>
> Pour une campagne marketing — désinscription, mention STOP, rapport, programmation depuis le dashboard — préférez les [campagnes SMS](https://docs.dexnotify.com/campagnes/introduction.md) : elles écartent d’elles-mêmes les contacts désinscrits.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.