Ir a la documentación
API

Programar y cancelar

Envíalo más tarde, muévelo o deténlo.

PATCHapi.openemail.uk/emails/{id}

Ejecuta cualquiera de las 2 llamadas de esta página contra tu espacio de trabajo, con tu propia clave.

Programación

scheduledAt admite un instante ISO-8601 o una duración como PT2H, hasta un año por delante. Un mensaje programado responde 202 con status: "scheduled" y se puede cancelar hasta el momento mismo en que se envía.

cancellableForSeconds hace lo mismo con un envío inmediato: la ventana de deshacer envío del redactor, expuesta en vez de fijada a un ajuste de usuario que no tiene por qué decidir el comportamiento de una API. Ambos son mutuamente excluyentes: un mensaje programado ya se puede cancelar.

Programar un envío

Dos horas por delante. La respuesta lleva el id que necesitarás para moverlo o detenerlo.

curl
curl -X POST "$OE/emails" -H "$AUTH" -H "Content-Type: application/json" \    -d '{      "from": "[email protected]",      "to": ["[email protected]"],      "subject": "Your September invoice",      "html": "<p>Invoice attached.</p>",      "scheduledAt": "PT2H"    }'
Respuesta
HTTP/1.1 202 Accepted  Location: /emails/msg_8cd0a316930b4482a8b8440b   {    "object": "email",    "id": "msg_8cd0a316930b4482a8b8440b",    "status": "scheduled",    "scheduledAt": "2026-09-01T10:19:41.345Z",    "cancellableUntil": "2026-09-01T10:19:41.345Z",    "messageId": null,    "transport": null,    "sentAt": null  }

202, no 200: todavía tiene que pasarle algo. Un envío inmediato responde 200 con status: "sent", así que quien llama puede ramificar solo con el código de estado.

Moverlo

PATCH /emails/{id}. Solo puede cambiar scheduledAt, y solo mientras esté en cola o programado.

curl
curl -X PATCH "$OE/emails/msg_8cd0a316930b4482a8b8440b" \    -H "$AUTH" -H "Content-Type: application/json" \    -d '{ "scheduledAt": "PT6H" }'
Respuesta
{    "object": "email",    "id": "msg_8cd0a316930b4482a8b8440b",    "status": "scheduled",    "scheduledAt": "2026-09-01T14:20:15.881Z"  }

Detenerlo

POST /emails/{id}/cancel.

curl
curl -X POST "$OE/emails/msg_8cd0a316930b4482a8b8440b/cancel" -H "$AUTH"
Respuesta
{ "object": "email", "id": "msg_8cd0a316930b4482a8b8440b", "status": "cancelled" }

Cancelar dos veces no es un error. La segunda llamada devuelve el mismo mensaje cancelado, así que reintentar es seguro.

Cancelar uno que ya ha salido es un 409 email_not_cancellable. No se puede des-enviar, y responder otra cosa sería mentir.