---
title: "Delete an asset file permanently"
method: DELETE
path: "/api/v1/assets/{id}"
tags: ["Asset Management"]
---

# Delete an asset file permanently

`DELETE /api/v1/assets/{id}`

## Request

- Base URL: `https://api.imagestep.dev`
- URL: `https://api.imagestep.dev/api/v1/assets/{id}`
- Auth: API key in header `Authorization`

Deletes an asset and queues its stored objects for removal. There is no trash and no restore:
the delete is final. A retry with the same Idempotency-Key replays the answer; without one, a
second delete is `404 asset_not_found`. A published asset's `publicUrl` stops answering within
about two minutes.

USE THIS WHEN:
- Permanently removing one asset file by ID

DO NOT USE WHEN:
- Deleting multiple assets at once → use POST /api/v1/assets/delete
- Letting an asset lapse on its own → do nothing; it is deleted at its expiresAt

## Path parameters

- `id` string, required

## Headers

- `Idempotency-Key` string

## Response `204`

Deleted; no body

## Other responses

- `404`: `asset_not_found` — no such asset, or it is not yours
- `409`: Conflict — `error.code` is `idempotency_key_reuse` (the key already means a different request) or `request_in_progress` (the first request under this key has not settled yet; retryable).
- `429`: Rate limited — `error.code` is `rate_limited` and `retryable` is true. `Retry-After` says how many seconds to wait.

---

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