API
予約とキャンセル
後で送る、時刻を変える、止める。
PATCHapi.openemail.uk/emails/{id}
このページの2件の呼び出しを、ご自身のキーで自分のワークスペースに対して実行します。
予約
scheduledAt は ISO-8601 の時刻、または PT2H のような期間を取り、最大 1 年先まで指定できます。予約されたメッセージは status: "scheduled" とともに 202 を返し、送信されるまではキャンセル可能なままです。
cancellableForSeconds は即時送信について同じことをします。コンポーザーの送信取り消し時間を、API の挙動を左右すべきでないユーザー設定にハードコードするのではなく、表に出したものです。この 2 つは排他です。予約されたメッセージはすでにキャンセル可能だからです。
送信を予約する
2 時間後です。レスポンスには、時刻変更や停止に必要な id が含まれます。
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 -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 -X POST "$OE/emails/msg_8cd0a316930b4482a8b8440b/cancel" -H "$AUTH"{ "object": "email", "id": "msg_8cd0a316930b4482a8b8440b", "status": "cancelled" }2 回キャンセルしてもエラーにはなりません。2 回目の呼び出しは同じキャンセル済みメッセージを返すので、再試行は安全です。
すでに送信されたものをキャンセルすると 409 email_not_cancellable になります。送信は取り消せず、それ以外の応答を返すのは嘘になります。