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

# Deny one exact reviewed action

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

## Request

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

Human control-plane mutation. The server derives immutable approver identity and persists the terminal result atomically.

## Path parameters

- `id` string, uuid, required

## Headers

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

## Request body

- object

## Response `200`

Approval denied

- 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)
