Aller à la documentation
API

Lister les voies d’envoi

Les deux voies qu’emprunte le courrier, avec leurs chiffres de rejets et de plaintes.

GET/sending/streams

Exécute l'un des 2 appels sur votre espace de travail.

GET /sending/streams

Les deux voies qu’emprunte le courrier, avec leurs chiffres de rejets et de plaintes.

Exemple

Nécessite emails:read. Le courrier emprunte deux voies qui ont leurs propres files d’attente et leur propre réputation : transactional pour le courrier applicatif comme les réinitialisations de mot de passe et les reçus, et broadcast pour les newsletters. Chaque voie vient avec ses chiffres des 7 derniers jours et les limits auxquelles la voie des diffusions est tenue.

curl
curl "$OE/sending/streams" -H "$AUTH"
Réponse
{ "object": "list", "data": [{  "object": "sending_stream",  "stream": "broadcast",  "status": "active",  "pausedAt": null,  "pausedReason": null,  "resumedAt": null,  "window": {    "since": "2026-10-04T09:41:00.000Z",    "until": "2026-10-11T09:41:00.000Z",    "recipients": 18240,    "bounced": 212,    "complained": 9,    "bounceRate": 0.0116,    "complaintRate": 0.0005  },  "limits": { "bounceRate": 0.04, "complaintRate": 0.002, "minimumRecipients": 500, "windowDays": 7 }}] }

La voie des diffusions se met en pause d’elle-même quand son taux de rejet dépasse 4% ou son taux de plainte 0,2% sur ces 7 jours, une fois minimumRecipients atteint. pausedReason dit lequel, le propriétaire de l’espace de travail reçoit un e-mail, et le courrier applicatif continue de partir.

Tant qu’elle est en pause, un message envoyé avec stream à broadcast et une nouvelle diffusion donnent un 409 stream_paused, et les diffusions déjà en cours sont retenues.

Choisir une voie

Nécessite emails:send. stream sur POST /emails, sur chaque message de POST /emails/batch et sur POST /templates/{id}/send choisit la voie. C’est transactional sauf indication contraire, et chaque copie d’une diffusion passe par broadcast.

curl
curl -X POST "$OE/emails" -H "$AUTH" -H "Content-Type: application/json" \  -d '{ "from": "[email protected]", "to": "[email protected]", "subject": "What is new in October", "text": "Three things shipped this month.", "stream": "broadcast" }'
Réponse
{ "object": "email", "id": "msg_5f1c9a0e7b2d4c6a8e3f1b7d", "status": "queued", "stream": "broadcast" }

En SMTP, l’en-tête X-OpenEmail-Stream: broadcast fait la même chose, et il est retiré avant le départ du message.

Reprendre une voie en pause

Nécessite domains:write et le propriétaire de l’espace de travail. POST /sending/streams/broadcast/resume reprend la voie : les messages retenus partent aussitôt et le décompte sur 7 jours repart de maintenant, nettoyez donc l’audience d’abord.

curl
curl -X POST "$OE/sending/streams/broadcast/resume" -H "$AUTH"
Réponse
{  "object": "sending_stream",  "stream": "broadcast",  "status": "active",  "pausedAt": null,  "pausedReason": null,  "resumedAt": null,  "window": {    "since": "2026-10-04T09:41:00.000Z",    "until": "2026-10-11T09:41:00.000Z",    "recipients": 18240,    "bounced": 212,    "complained": 9,    "bounceRate": 0.0116,    "complaintRate": 0.0005  },  "limits": { "bounceRate": 0.04, "complaintRate": 0.002, "minimumRecipients": 500, "windowDays": 7 }}

Une voie qui n’est pas en pause donne un 409 stream_not_paused.

Un jeton d'accès OAuth a besoin d'un code de vérification pour cet appel. Tant que l'application n'en a pas vérifié un dans les 60 dernières minutes, l'appel répond 403 step_up_required et ne change rien. On ne le demande jamais à une clé API. La page Authentification montre comment demander un code et le vérifier.

Référence