---
title: "Erase a meeting recording"
method: DELETE
path: "/v1/meetings/recordings/{recording_id}"
tags: ["meetings"]
---

# Erase a meeting recording

`DELETE /v1/meetings/recordings/{recording_id}`

## Request

- Base URL: `https://api.patricia.app` (the document declares no server; this is the origin it was published from)
- URL: `https://api.patricia.app/v1/meetings/recordings/{recording_id}`
- Auth: HTTP bearer

Permanently erase a meeting recording: its transcript, its recap, the calendar invite list stored with it, everything Patricia remembered from it, its recap emails, the cached copy of the recap posted into Slack, and the copy Recall holds. This cannot be undone and it is not a hide: nothing is kept back for later recovery. The response says what was removed, and names the places it does not reach. Admin/owner only.

## Path parameters

- `recording_id` string, uuid, required: The recording id.

## Headers

- `X-Tenant-Id` string, nullable

## Response `200`

Successful Response

- MeetingErasureReceiptView: What an erasure actually removed — counts and outcomes, never content. ``status`` is the field to read first, because "erased" and "not_found" are the two answers a row count cannot tell apart: an erasure that matched nothing looks exactly like one that had nothing to match. ``complete`` says whether everything this erasure REACHES is gone, and ``known_residuals`` names the places it does not reach, so neither field has to carry the other's meaning.
  - `status` 'erased' | 'not_found', required: 'erased' when a recording existed and was removed; 'not_found' when there was none.
  - `complete` boolean, required: True when everything this erasure reaches is gone, Recall's master recording included. It does not speak for the stores in known_residuals, which no erasure reaches yet. Always false for a recording imported from a note taker, because the note taker's own copy is not reached (vendor_residual: note_taker_copy_not_reached).
  - `deleted` object: Rows removed per store: the recording, its derived memories, its recap emails, and the cached copy of the recap posted into chat.
  - `known_residuals` string[]: Stores holding meeting-derived content this erasure does not reach — the same list every time, so a residual is never a surprise.
  - `vendor_media_deleted` boolean: Whether Recall's stored media for this meeting was deleted AND verified gone. Always false for a recording imported from a note taker, which never had Recall media.
  - `vendor_residual` string, nullable: Why the vendor copy could not be confirmed deleted, when it could not be. 'note_taker_copy_not_reached' for a recording imported from a note taker, whose own copy in the note taker's account this erasure never reaches.

## Other responses

- `400`: Bad request
- `401`: Unauthorized
- `403`: Forbidden. Inspect response body `code` for the specific reason (for example: PERMISSION_DENIED, EMAIL_NOT_VERIFIED, TENANT_ACCESS_REQUIRED, ROLE_UNRESOLVED)
- `404`: Not found
- `422`: Validation error

---

[API](https://skmtc.dev/patricia/apis/patricia-api.md) · [All operations](https://skmtc.dev/patricia/apis/patricia-api/llms.txt) · [OpenAPI document](https://skmtc.dev/patricia/apis/patricia-api/revisions/0dfb44495ea1?raw)
