Listar los carriles de envío
Los dos carriles por los que viaja el correo, con sus cifras de rebotes y quejas.
Ejecuta cualquiera de las 2 llamadas en tu espacio de trabajo.
GET /sending/streams
Los dos carriles por los que viaja el correo, con sus cifras de rebotes y quejas.
Ejemplo
Requiere emails:read. El correo viaja por dos carriles con sus propias colas y su propia reputación: transactional para el correo de la app, como restablecimientos de contraseña y recibos, y broadcast para los boletines. Cada carril viene con sus cifras de los últimos 7 días y los limits a los que está sujeto el carril de envíos masivos.
curl "$OE/sending/streams" -H "$AUTH"{ "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 }}] }El carril de envíos masivos se pone en pausa solo cuando su tasa de rebote supera el 4% o su tasa de quejas el 0,2% en esos 7 días, una vez alcanzado minimumRecipients. pausedReason dice cuál, el propietario del espacio de trabajo recibe un correo, y el correo de la app sigue saliendo.
Mientras está en pausa, un mensaje enviado con stream en broadcast y un envío masivo nuevo son un 409 stream_paused, y los envíos masivos que ya están saliendo se retienen.
Elegir un carril
Requiere emails:send. stream en POST /emails, en cada mensaje de POST /emails/batch y en POST /templates/{id}/send elige el carril. Es transactional salvo que digas otra cosa, y cada copia de un envío masivo viaja por broadcast.
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" }'{ "object": "email", "id": "msg_5f1c9a0e7b2d4c6a8e3f1b7d", "status": "queued", "stream": "broadcast" }Por SMTP, la cabecera X-OpenEmail-Stream: broadcast hace lo mismo, y se quita antes de que salga el mensaje.
Reanudar un carril en pausa
Requiere domains:write y al propietario del espacio de trabajo. POST /sending/streams/broadcast/resume reanuda el carril: los mensajes retenidos salen de inmediato y la cuenta de 7 días empieza de nuevo desde ahora, así que limpia primero la audiencia.
curl -X POST "$OE/sending/streams/broadcast/resume" -H "$AUTH"{ "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 }}Un carril que no está en pausa es un 409 stream_not_paused.
Un token de acceso OAuth necesita un código de verificación para esta llamada. Hasta que la app haya verificado uno en los últimos 60 minutos, la llamada responde 403 step_up_required y no cambia nada. A una clave de API nunca se le pide. La página Autenticación muestra cómo pedir un código y verificarlo.