> For an agent: the map of this documentation is at https://escouade.io/en/mail/docs/llms.txt; every page exists in Markdown, at the same address with `.md` appended.

# `approve_message`

Approve a draft.

Human approval: the draft moves to the queue and will leave within the window, according to the quotas. Reserved for a key that holds the approve permission (a human in their assistant): an agent never approves its own sends. Refused if the recipient has been blocked since the draft was created. Pass revision (read in list_drafts): approval is then refused if the draft has changed since it was read.

## Access

- **Key**: an Escouade Mail key with `approve`.
- **Space**: any space, verified or not.
- **Changes nothing**: no, it acts.
- **Safe to replay**: use an `idempotency_key` where the tool offers one.

## Parameters

| Parameter | Type | Required | Description |
|---|---|---|---|
| `message_id` | string | yes | The draft (msg_…, see list_drafts). |
| `revision` | string | no | The version of the draft as it was read (revision field of list_drafts). If it has changed since, approval is refused (draft_changed). |

## Call it

```sh
curl -s https://api.subagent.fr/v1/approve_message \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer sak_…' \
  -d '{"message_id": "…"}'
```

The full page in French, with the response fields and every refusal the tool can return: [/mail/docs/reference/approve_message](https://escouade.io/mail/docs/reference/approve_message).
