:::endpoint POST /v1/me/mail/drafts

The same message as a [send](/docs/api/mail/send), before it leaves. A draft may
be half a thought, so only `address_id` is required.

Keep the `id` that comes back and send it as `draft_id` on the next save, and on
the send. Without it every save writes a second draft and the writer leaves a
trail of copies behind them.

## Request

```bash
curl -X POST https://api.proppertrading.com/v1/me/mail/drafts \
  -H "Authorization: Bearer ptat_9f2c1a44_3b8e7d2f5c9a1b4e6d8f0a2c4e6b8d1f" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: 2c4e6a80-1b3d-4f5a-8c9e-0d1f2a3b4c5d" \
  -d '{
    "address_id": 32,
    "to": ["jamie@example.com"],
    "subject": "Re: Payout request",
    "body": "<p>Your payout is</p>",
    "draft_id": 1576
  }'
```

Same fields as [Send a message](/docs/api/mail/send). Only `address_id` is
required; `to`, `subject` and `body` may all be empty.

## Response

```json
{
    "data": {
        "id": 1576,
        "object": "mail_message",
        "thread_id": 1432,
        "address_id": 32,
        "folder": "drafts",
        "subject": "Re: Payout request",
        "to_recipients": [{ "email": "jamie@example.com", "name": null }],
        "cc_recipients": [],
        "message_at": "2026-08-19T18:04:08.000000Z"
    },
    "meta": { "request_id": "req_01kz4bkr1aj1gv63d8fv3133ey" }
}
```

## Autosaving

Every save is a POST and needs its own `Idempotency-Key`. Generate a fresh one
per save: reusing one would replay the previous answer instead of storing what
has been typed since.

A draft is an ordinary message in the `drafts` folder, so it appears in
[the list](/docs/api/mail/messages) and can be
[erased](/docs/api/mail/erase) like anything else.

## Errors

| Status | Code                      | Meaning                                            |
| ------ | ------------------------- | -------------------------------------------------- |
| 400    | `missing_idempotency_key` | Every POST needs one                               |
| 400    | `not_a_draft`             | `draft_id` points at a message that is not a draft |
| 403    | `insufficient_scope`      | This device does not hold `mail:write`             |
| 404    | `resource_not_found`      | The mailbox or the draft is not one of yours       |
| 422    | `validation_failed`       | `address_id` missing, or a field is malformed      |