# Approvals

Source: https://docs.simail.ai/api/approvals/

> Read approval requests for your sends (metadata only). Agents can watch approvals; only humans decide.

When your send policy requires it, a send waits for a human (`status: "pending_approval"`). These
endpoints let an agent see where that stands. Deciding happens in the console, Telegram, Slack or by
email reply; see [Approvals & send policy](/approvals/).

```json
{
  "approval_id": "apr_01JZX4C0D1E2F3G4H5J6K7M8NG",
  "send_id": "out_01JZX4C0D1E2F3G4H5J6K7M8N9",
  "inbox_id": "shop-helper@simail.email",
  "thread_id": "thr_01JZX4C0D1E2F3G4H5J6K7M8NB",
  "status": "pending",
  "flags": ["first_contact"],
  "recipient_count": 1,
  "created_at": "2026-10-18T17:05:40Z",
  "expires_at": "2026-10-19T17:05:40Z",
  "decided_at": null
}
```

`status` is `pending`, `approved`, `rejected`, `expired` or `cancelled`. The response never includes
who decided or the message content.

## List approvals

`GET /v0/approvals`

Permission `approval_read`. Paginated; returns `{ count, limit, next_page_token?, approvals }`. Filter
with `status` and `inbox_ids`.

## Get an approval

`GET /v0/approvals/{approval_id}`

Permission `approval_read`.

## Deciding

There is no endpoint, permission or MCP tool that approves or rejects a send. A key that tries to
approve gets `403 human_required`. Events `approval.requested` and `approval.decided` report changes.
