---
title: "DELETE /v1/matters/{matterId}/holds/{holdId}"
method: DELETE
path: "/v1/matters/{matterId}/holds/{holdId}"
tags: ["matters"]
---

# DELETE /v1/matters/{matterId}/holds/{holdId}

`DELETE /v1/matters/{matterId}/holds/{holdId}`

## Request

- Base URL: `https://vault.googleapis.com`
- URL: `https://vault.googleapis.com/v1/matters/{matterId}/holds/{holdId}`
- Auth: OAuth 2 and OAuth 2
  - Implicit: `https://accounts.google.com/o/oauth2/auth`
  - Scopes: `https://www.googleapis.com/auth/ediscovery`
  - Authorization code: `https://accounts.google.com/o/oauth2/auth`
  - Token URL: `https://accounts.google.com/o/oauth2/token` scopes: `https://www.googleapis.com/auth/ediscovery`
- TypeScript: <https://skmtc.dev/google/apis/vault/docs/v1/matters/:matterId/holds/:holdId/delete.ts> (a function with typed inputs; its response is checked against the schema)

Removes the specified hold and releases the accounts or organizational unit covered by the hold. If the data is not preserved by another hold or retention rule, it might be purged.

## Path parameters

- `matterId` string, required
- `holdId` string, required

## Response `200`

Successful response

- Empty: A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); }

## Changes

- **2026-10-10** `ddd37fff1925`: 1 breaking
  - removed the media type `*/*` for the response with the status `200`

[Operation history](https://skmtc.dev/google/apis/vault/changes/v1/matters/:matterId/holds/:holdId/delete.md)

---

[API](https://skmtc.dev/google/apis/vault.md) - [All operations](https://skmtc.dev/google/apis/vault/llms.txt) - [OpenAPI document](https://skmtc.dev/google/apis/vault/revisions/726c68a20360?raw)
