---
title: "Clear a keep or reject (undo)"
method: DELETE
path: "/v1/hooks/{hook_id}/decision"
tags: ["hooks"]
---

# Clear a keep or reject (undo)

`DELETE /v1/hooks/{hook_id}/decision`

## Request

- Base URL: `https://api.hookdetector.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.hookdetector.com/v1/hooks/{hook_id}/decision`
- Auth: none declared

Undo a verdict: the hook goes back to having none, so it leaves GET /v1/keeps and
its export row carries no verdict. Answers {"hook_id", "verdict": null}. Clearing a
hook that has no decision is the same 200, so a retried undo is safe. Free. MCP:
clear_decision.

## Path parameters

- `hook_id` string, uuid, required

## Headers

- `authorization` string, nullable: Bearer hd_... from POST /v1/accounts or POST /v1/keys

## Response `200`

Successful Response

- DecisionClearedOut
  - `hook_id` string, required
  - `verdict` unknown, required

## Other responses

- `401`: missing, invalid, revoked or expired API key (code key_expired)
- `403`: the key lacks the scope this call needs (insufficient_scope), or its credit_limit is spent (key_credit_limit_reached)
- `404`: not found on this account
- `413`: request body over the size cap
- `422`: invalid input
- `500`: our fault; names the request id

---

[API](https://skmtc.dev/hookdetector/apis/hook-detector.md) · [All operations](https://skmtc.dev/hookdetector/apis/hook-detector/llms.txt) · [OpenAPI document](https://skmtc.dev/hookdetector/apis/hook-detector/revisions/b136a2804d2b?raw)
