ドキュメント本文へスキップ
API

予約とキャンセル

後で送る、時刻を変える、止める。

PATCHapi.openemail.uk/emails/{id}

このページの2件の呼び出しを、ご自身のキーで自分のワークスペースに対して実行します。

予約

scheduledAt は ISO-8601 の時刻、または PT2H のような期間を取り、最大 1 年先まで指定できます。予約されたメッセージは status: "scheduled" とともに 202 を返し、送信されるまではキャンセル可能なままです。

cancellableForSeconds は即時送信について同じことをします。コンポーザーの送信取り消し時間を、API の挙動を左右すべきでないユーザー設定にハードコードするのではなく、表に出したものです。この 2 つは排他です。予約されたメッセージはすでにキャンセル可能だからです。

送信を予約する

2 時間後です。レスポンスには、時刻変更や停止に必要な id が含まれます。

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"    }'
レスポンス
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  }

200 ではなく 202 です。まだ何かが起きる必要があります。即時送信は status: "sent" とともに 200 を返すので、呼び出し側はステータスコードだけで分岐できます。

時刻を変える

PATCH /emails/{id} です。変更できるのは scheduledAt だけで、キューに入っているか予約済みの間に限られます。

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

止める

POST /emails/{id}/cancel です。

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

2 回キャンセルしてもエラーにはなりません。2 回目の呼び出しは同じキャンセル済みメッセージを返すので、再試行は安全です。

すでに送信されたものをキャンセルすると 409 email_not_cancellable になります。送信は取り消せず、それ以外の応答を返すのは嘘になります。