Lister les destinataires d'une diffusion
Tous les destinataires de la diffusion, une ligne par copie, triés par adresse : l'identifiant de la copie, son statut, quand elle a été envoyée et remise, si elle a rebondi ou a été signalée comme spam, combien de fois elle a été ouverte et cliquée, et si la personne s'est désabonnée après son départ.
Exécute le véritable appel sur votre espace de travail, avec votre propre clé.
GET /broadcasts/{id}/recipients
Tous les destinataires de la diffusion, une ligne par copie, triés par adresse : l'identifiant de la copie, son statut, quand elle a été envoyée et remise, si elle a rebondi ou a été signalée comme spam, combien de fois elle a été ouverte et cliquée, et si la personne s'est désabonnée après son départ.
Paramètres
idstringobligatoire- Dans le chemin. Un identifiant `brd_` issu de `POST /broadcasts` ou `GET /broadcasts`.
filterstring- Garde un seul groupe : `pending` (encore en file d'attente ou en cours d'envoi), `sent`, `delivered`, `opened`, `not_opened` (envoyées et jamais ouvertes), `clicked`, `bounced`, `complained`, `failed` (échouées ou annulées) ou `unsubscribed`.
qstring- Cherche dans l'adresse et le nom, sans tenir compte de la casse. Jusqu'à 200 caractères.
limitinteger- Lignes par page, de 1 à 200. 50 par défaut.
cursorstring- Le `nextCursor` de la page précédente, renvoyé tel quel, avec les mêmes `filter` et `q`. Il retient la position de la dernière ligne, si bien qu'une ligne qui change entre deux pages n'interrompt jamais le parcours.
Exemple
Exige emails:read. La réponse est une page de lignes broadcast_recipient.
curl "$OE/broadcasts/brd_5a8c1e3f7b2d94a06c8e1f3b/recipients?filter=opened&limit=50" -H "$AUTH"{ "object": "list", "data": [ { "object": "broadcast_recipient", "emailId": "msg_01dad25067bc4dac966d515d", "contactId": "6f1c2a8e-3b4d-4e9f-a1c7-2d5e8b0f9a34", "email": "[email protected]", "name": "Ada Lovelace", "status": "sent", "sentAt": "2026-09-23T12:00:09.000Z", "deliveredAt": "2026-09-23T12:00:11.000Z", "bouncedAt": null, "complainedAt": null, "failure": null, "opens": 3, "firstOpenAt": "2026-09-23T12:14:30.000Z", "clicks": 1, "firstClickAt": "2026-09-23T12:15:02.000Z", "unsubscribedAt": null } ], "hasMore": true, "nextCursor": "WyJhZGFAZXhhbXBsZS5jb20iLCJtc2dfMDFkYWQyNTA2N2JjNGRhYzk2NmQ1MTVkIl0"}Les ouvertures et les clics excluent les proxys d'images et les scanners de liens, et restent à 0 quand la diffusion a été envoyée avec le suivi désactivé.
status est l'état de la copie dans le journal d'envoi : queued, scheduled, sending, sent, failed ou cancelled. deliveredAt, bouncedAt et complainedAt sont les premiers email.delivered, email.bounced et email.complained la concernant, et failure indique pourquoi une copie a échoué.
unsubscribedAt est le moment où la personne s'est désabonnée de l'une des audiences de la diffusion après son départ, par son lien ou autrement. contactId est null quand le contact a été supprimé depuis.
emailId est l'identifiant msg_ de la copie. GET /broadcasts/{id}/recipients/{emailId} la lit avec son contenu, et GET /emails/{id} la lit comme un e-mail envoyé.
Refus
| Statut | Code | Quand |
|---|---|---|
| 400 | invalid_cursor | Sur la liste des destinataires, un cursor que cette liste n'a pas fourni. |
| 403 | insufficient_scope | La clé ne détient pas emails:read. |
| 404 | broadcast_not_found | L'id ne désigne aucune diffusion de cet espace de travail, ou la clé est limitée à certaines adresses ou certains domaines et la diffusion est partie d'une adresse qu'elle ne détient pas. |
| 404 | recipient_not_found | Sur GET /broadcasts/{id}/recipients/{emailId}, un emailId qui n'est pas une copie de cette diffusion. |