Aller à la documentation
API

Planifier et annuler

Envoyer plus tard, déplacer l'envoi ou l'arrêter.

PATCHapi.openemail.uk/emails/{id}

Exécute n'importe lequel des 2 appels de cette page sur votre espace de travail, avec votre propre clé.

La planification

scheduledAt accepte un instant ISO 8601 ou une durée comme PT2H, jusqu'à un an à l'avance. Un message planifié répond 202 avec status: "scheduled" et reste annulable jusqu'au moment où il part.

cancellableForSeconds fait la même chose pour un envoi immédiat : c'est la fenêtre d'annulation d'envoi de la fenêtre de rédaction, exposée plutôt que figée sur un réglage utilisateur qui n'a pas à décider du comportement d'une API. Les deux s'excluent mutuellement : un message planifié est déjà annulable.

Planifier un envoi

Dans deux heures. La réponse porte l'id dont vous aurez besoin pour le déplacer ou l'arrêter.

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"    }'
Réponse
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, pas 200 : quelque chose doit encore lui arriver. Un envoi immédiat répond 200 avec status: "sent", si bien qu'un appelant peut se décider sur le seul code de statut.

Le déplacer

PATCH /emails/{id}. Seul scheduledAt peut changer, et seulement tant que le message est en file d'attente ou planifié.

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

L'arrêter

POST /emails/{id}/cancel.

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

Annuler deux fois n'est pas une erreur. Le second appel renvoie le même message annulé : une nouvelle tentative est donc sans risque.

Annuler un message déjà parti donne un 409 email_not_cancellable. Il ne peut pas être désenvoyé, et répondre autre chose serait un mensonge.