Summary
List or create drafts. GET requires message_read. POST requires message_send or draft_write and accepts to, cc, bcc, reply_to, subject, text, html, attachments, labels, in_reply_to or forward_of, reply_all, and send_at. draft_write does not send mail. send_at sets the scheduled label and send_status scheduled. The same client_id returns the original draft. Idempotency-Key follows the send rules. A held source message is HTTP 409 message_held.
Request
{
"to": [
"ada@example.com"
],
"subject": "Hello",
"text": "Draft",
"send_at": "2026-10-10T15:00:00.000Z"
}Response
The OpenAPI document does not declare a JSON response schema for this call. The summary is the contract.Errors
- HTTP 409 message_held
Idempotency
Idempotency-Key is 1 to 256 characters of letters, digits, and - . _ ~. The same key and the same request within 24 hours returns the original response with HTTP 200 and Idempotent-Replayed: true. A different request is HTTP 409 idempotency_key_conflict. A second call while the first is running is HTTP 409 idempotency_request_in_progress. An empty or invalid key is HTTP 400 invalid_idempotency_key. client_id is checked first when both are set.