---
title: "Release legal hold"
method: DELETE
path: "/v1/legal-holds/{hold_id}"
---

# Release legal hold

`DELETE /v1/legal-holds/{hold_id}`

## Request

- Base URL: `https://public-api.granola.ai`
- URL: `https://public-api.granola.ai/v1/legal-holds/{hold_id}`
- Auth: HTTP bearer

Releases a hold. Release is terminal: the hold is never deleted, there is no un-release, and a matter that reopens is a new hold. Releasing an already-released hold returns its original `released_at`.

## Path parameters

- `hold_id` string, required: The legal hold id. Case-insensitive.

## Response `200`

The released legal hold

- ReleaseLegalHoldOutput
  - `id` string, required
  - `object` 'legal_hold', required
  - `released` true, required
  - `released_at` string, date-time, required

## Other responses

- `400`: Bad request
- `401`: Unauthorized - Invalid API key
- `404`: Not found

## Changes

- **2026-10-19** `480617fbc624`: 1 warning
  - changed the pattern of the `path` request parameter `hold_id` from `^lgh_[a-zA-Z0-9]{14}$` to `^[Ll][Gg][Hh]_[a-zA-Z0-9]{14}$`
- **2026-09-26** `58997a2621d6`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/granola/apis/granola-api/changes/v1/legal-holds/:hold_id/delete.md)

---

[API](https://skmtc.dev/granola/apis/granola-api.md) - [All operations](https://skmtc.dev/granola/apis/granola-api/llms.txt) - [OpenAPI document](https://skmtc.dev/granola/apis/granola-api/revisions/24329b15cdfe?raw)
