---
title: "Soft-delete an artifact (optionally cascading documents)."
method: DELETE
path: "/v1/storage/artifacts/{id}"
tags: ["Storage"]
---

# Soft-delete an artifact (optionally cascading documents).

`DELETE /v1/storage/artifacts/{id}`

Reference-aware delete. Default `policy=artifact_only` returns 409 `artifact_in_use` if any active document references the artifact; `policy=with_documents` cascades a soft-delete to those documents first. No `force` parameter is supported.

## Path parameters

- `id` string, uuid, required

## Query parameters

- `policy` 'artifact_only' | 'with_documents' — Delete behaviour when documents reference the artifact. `artifact_only` (default) returns 409 `artifact_in_use` if any non-deleted documents reference it. `with_documents` cascades a soft-delete to those documents first.

## Response `200`

Artifact deleted (or delete failed at the backend).

- object — Result of `DELETE /v1/storage/artifacts/:id`.
  - `artifact_id` string, uuid, required
  - `cascaded_document_ids` string[]
  - `status` 'deleted' | 'delete_failed', required

## Other responses

- `400` — Input validation error
- `404` — Artifact not found.
- `409` — Artifact is referenced by active documents (`error_code: artifact_in_use`) OR another caller holds an active delete claim and this caller never ran the delete (`error_code: delete_in_flight`, `retryable: true`).
- `500` — Internal server error

---

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