---
title: "Permanently delete assets"
method: DELETE
path: "/api/assets"
tags: ["assets"]
---

# Permanently delete assets

`DELETE /api/assets`

Hard-deletes each specified asset — the database record, the stored file, and all associated data (faces, album links, etc.). **Irreversible.** Prefer `trash_assets` for the user's standard delete action so accidents can be recovered.

## Query parameters

- `library_id` string, nullable — Library that owns the assets. Optional if the user has a single live (non-trashed) library; required when they have multiple.

## Request body

- AssetIdsRequest — Request body carrying a list of asset IDs for the bulk trash, restore, and permanent-delete endpoints.
  - `ids` string[], required — Asset IDs (each with the `asset_` prefix) to operate on. Up to 200 ids per request.

## Response `200`

Successful Response

- DeletionResponse — Empty acknowledgment returned when an operation succeeds.

## Other responses

- `401` — Missing, invalid, or expired credentials.
- `403` — The credentials are valid but not authorized for this operation — for example an API key whose action or library scope excludes it, or a credential type this operation does not accept.
- `404` — Not found
- `422` — Validation Error
- `429` — Rate limit exceeded. Retry after the interval in the `Retry-After` header.

---

[API](https://skmtc.net/gumnut-ai/apis/gumnut-api.md) · [All operations](https://skmtc.net/gumnut-ai/apis/gumnut-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/gumnut-ai/gumnut-api/revisions/f95c30b0b4e6/schema)
