---
title: "One-tap acknowledge (token)"
method: POST
path: "/escalations/v1/ack"
tags: ["Escalations"]
---

# One-tap acknowledge (token)

`POST /escalations/v1/ack`

## Request

- Base URL: `https://api.run402.com`
- URL: `https://api.run402.com/escalations/v1/ack`
- Auth: none declared

The phone path. No session and no account: the token from the page link IS the proof, exactly like a magic link. It is hashed at rest and ACK-ONLY — it cannot read the escalation, resolve it, or reach any other row, so a forwarded link costs at most a wrongly-attributed acknowledgement. Idempotent; dies once the escalation is resolved.

## Request body

- object
  - `token` string, required

## Response `200`

Acknowledged (or an idempotent replay).

- EscalationAckResult
  - `escalation_id` string, uuid
  - `status` 'acknowledged' | 'resolved'
  - `acknowledged_at` string, date-time, nullable
  - `changed` boolean: False on an idempotent replay — the ORIGINAL acknowledgement is reported.
  - `reason` string: Shown on the confirm page so the human sees what they just took ownership of.

## Other responses

- `400`: Invalid input (missing/over-cap reason, malformed email, bad level or status).
- `404`: Unknown, expired, or already-resolved link — one shape, because a token is not an oracle.

---

[API](https://skmtc.dev/run402/apis/run402-api.md) · [All operations](https://skmtc.dev/run402/apis/run402-api/llms.txt) · [OpenAPI document](https://skmtc.dev/run402/apis/run402-api/revisions/893607557f50?raw)
