---
title: "Flag a message for a human"
method: POST
path: "/api/emails/{address}/messages/{id}/escalate"
tags: ["Email"]
---

# Flag a message for a human

`POST /api/emails/{address}/messages/{id}/escalate`

## Request

- Base URL: `https://domani.run`
- URL: `https://domani.run/api/emails/{address}/messages/{id}/escalate`
- Auth: HTTP bearer

Escalate a message to the account's human (or clear the flag with clear=true). Sets needs_human on the message, holds its conversation in status needs_human, and fires the email.escalated webhook + in-app notification. The product primitive behind 'answer the easy ones, stop on the one the human must decide'.

## Path parameters

- `address` string, required
- `id` string, required

## Request body

- object
  - `reason` string: Why the human is needed - shown in the notification
  - `clear` boolean: Clear the flag instead of setting it (the human took over)

## Response `200`

Escalation state updated

- object
  - `id` string
  - `needs_human` boolean
  - `escalation_reason` string, nullable
  - `thread_key` string

## Other responses

- `404`: Mailbox or message not found

---

[API](https://skmtc.dev/domani/apis/domani-run-api.md) · [All operations](https://skmtc.dev/domani/apis/domani-run-api/llms.txt) · [OpenAPI document](https://skmtc.dev/domani/apis/domani-run-api/revisions/7679f8159533?raw)
