Aller à la documentation
API

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.

GETapi.openemail.uk/broadcasts/{id}/recipients

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
curl "$OE/broadcasts/brd_5a8c1e3f7b2d94a06c8e1f3b/recipients?filter=opened&limit=50" -H "$AUTH"
Réponse
{  "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

StatutCodeQuand
400invalid_cursorSur la liste des destinataires, un cursor que cette liste n'a pas fourni.
403insufficient_scopeLa clé ne détient pas emails:read.
404broadcast_not_foundL'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.
404recipient_not_foundSur GET /broadcasts/{id}/recipients/{emailId}, un emailId qui n'est pas une copie de cette diffusion.