---
title: "Delete Video"
method: DELETE
path: "/videos"
---

# Delete Video

`DELETE /videos`

Permanently deletes one or more videos from your account. **A JSON body is required** even when deleting a single video — the endpoint accepts either a single object or an array of objects, each containing a `video_id`. After this call returns, the video status is set to `DELETING` and the asset cleanup happens asynchronously (a worker eventually drops the files from storage).

## Request body

- union
  - object
    - `video_id` string, uuid, required — UUID of the video to delete.
  - object[]
    - `video_id` string, uuid, required

## Response `200`

Videos were marked for deletion. Asset cleanup is asynchronous.

- object
  - `message` string — Confirmation message listing the deleted video_id(s).

## Other responses

- `400` — Validation error, or the video is already in `DELETING` status.
- `401` — Missing or invalid `Authorization` header. The Panda API token goes directly in the header without the `Bearer` prefix.
- `500` — Internal error. The handler currently returns a generic 500 for **all** unexpected failures, including: missing or malformed JSON body (the body is required even for single-video deletes — see the request body section), database / cascade failures (DRM group cleanup, playlist cleanup, live unlinking, usage update). When this happens, check CloudWatch logs in `/aws/lambda/api-videos-production-ms-videos` for the actual error.

---

[API](https://skmtc.net/pandavideo/apis/api-v2.md) · [All operations](https://skmtc.net/pandavideo/apis/api-v2/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/pandavideo/api-v2/versions/4fbd3c623ca9/schema)
