---
title: "Cancel one exact reviewed action"
method: POST
path: "/v1/approvals/{id}/cancel"
tags: ["Approvals"]
---

# Cancel one exact reviewed action

`POST /v1/approvals/{id}/cancel`

## Request

- Base URL: `https://api.thrd.email`
- URL: `https://api.thrd.email/v1/approvals/{id}/cancel`
- Auth: API key in cookie `thrd_approver_session`

Human control-plane mutation. Cancellation is a terminal compare-and-set transition with durable polling and audit records.

## Path parameters

- `id` string, uuid, required

## Headers

- `x-csrf-token` string, required
- `Idempotency-Key` string, required

## Request body

- object

## Response `200`

Approval canceled

- object
  - `approval_id` string, uuid, required
  - `status` 'denied' | 'canceled', required
  - `receipt_id` string, uuid, required
  - `completed_at` string, date-time, required
  - `idempotent_replay` boolean, required

## Other responses

- `400`: Invalid ID, idempotency key or non-empty body
- `401`: Missing, invalid, expired or rotated human session
- `409`: Expired or conflicting approval transition
- `429`: Human mutation rate limit exceeded
- `503`: Approval authority unavailable

---

[API](https://skmtc.dev/thrd/apis/thrd-agent-email-api.md) · [All operations](https://skmtc.dev/thrd/apis/thrd-agent-email-api/llms.txt) · [OpenAPI document](https://skmtc.dev/thrd/apis/thrd-agent-email-api/revisions/d8a88129cd34?raw)
