Saltar para a documentação
API

Agendar e cancelar

Enviar mais tarde, mudar a hora ou parar.

PATCHapi.openemail.uk/emails/{id}

Executa qualquer uma das 2 chamadas desta página contra o seu espaço de trabalho, com a sua própria chave.

Agendamento

scheduledAt aceita um instante ISO-8601 ou uma duração como PT2H, até um ano à frente. Uma mensagem agendada responde 202 com status: "scheduled" e mantém-se cancelável até ao momento em que é enviada.

cancellableForSeconds faz o mesmo para um envio imediato: a janela de anulação do compositor, exposta em vez de fixada numa definição de utilizador que nada tem que decidir sobre o comportamento de uma API. Os dois excluem-se mutuamente: uma mensagem agendada já é cancelável.

Agendar um envio

Daqui a duas horas. A resposta traz o id de que vai precisar para a mudar de hora ou parar.

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"    }'
Resposta
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, não 200: ainda lhe tem de acontecer alguma coisa. Um envio imediato responde 200 com status: "sent", pelo que quem chama pode ramificar só pelo código de estado.

Mudar a hora

PATCH /emails/{id}. Só scheduledAt pode mudar, e só enquanto estiver em fila ou agendada.

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

Pará-la

POST /emails/{id}/cancel.

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

Cancelar duas vezes não é um erro. A segunda chamada devolve a mesma mensagem cancelada, pelo que repetir é seguro.

Cancelar uma que já saiu dá um 409 email_not_cancellable. Não pode ser desenviada, e responder outra coisa seria uma mentira.