---
title: "Delete asset"
method: DELETE
path: "/v2/assets/{id}"
tags: ["Assets"]
---

# Delete asset

`DELETE /v2/assets/{id}`

Permanently delete an asset.

Returns 409 when the asset is still used by live course content — as a lesson's
content, a lesson content item, a lesson attachment, or a course promo video.
Otherwise the asset is deleted and 204 is returned.

**This is a hard delete.** Unlike web packages, assets are not soft-deleted: the
record is removed and its JW Platform video and stored file are torn down with
it. There is no recovery.

By-id rather than a batch envelope: the conflict outcome has no natural home in a
per-row batch result, and ``batch-responses.md`` warns against letting a
``ConflictError`` fall through the document-level path mid-batch. Matches
``DELETE /v2/web-packages/{id}``.

**Required OAuth scope:** `assets:write`

## Path parameters

- `id` string, required

## Response `204`

No Content

## Other responses

- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not Found
- `409` — Conflict
- `422` — Unprocessable Entity

## Changes

- **2026-09-01** `a3c13d9cb9b7` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/skilljar/apis/skilljar-api-v2/changes/v2/assets/:id/delete.md)

---

[API](https://skmtc.dev/skilljar/apis/skilljar-api-v2.md) · [All operations](https://skmtc.dev/skilljar/apis/skilljar-api-v2/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/skilljar/skilljar-api-v2/revisions/a3c13d9cb9b7/schema)
