---
title: "Delete an asset"
method: DELETE
path: "/v1/assets/{asset_id}"
tags: ["assets"]
---

# Delete an asset

`DELETE /v1/assets/{asset_id}`

## Request

- Base URL: `https://api.ethiack.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.ethiack.com/v1/assets/{asset_id}`
- Auth: none declared

Delete an asset.

Soft-deletes the asset and clears what would otherwise dangle off
it -- scope pivots, network-service links, draft findings and the
stored attachment -- through :class:`DeleteAssetWorkflow`. Submitted
findings and scan-asset snapshots are kept. Calling
``AssetService.soft_delete`` here instead would flip the asset's own
flag and leave every dependent behind.

Args:
    asset_id (int): Primary key of the asset.
    db (AsyncSession): Request-scoped database session.
    context (ActiveContext): Resolved caller identity and scope.

Returns:
    SuccessResponse: The legacy delete envelope, echoing the removed id.

Raises:
    NotFoundError: No such asset is visible to the caller.

## Path parameters

- `asset_id` integer, required

## Response `200`

Successful Response

- SuccessResponse: Standard response for successful write operations. Matches the ``SuccessResponse`` contract from api-3. Attributes: code (int): HTTP status code. description (str): Human-readable result description. id (int | str | None): Created/affected resource ID. success (bool): Always ``True`` for successful responses.
  - `code` integer, required
  - `description` string, required
  - `id` union
    - integer
    - string
  - `success` boolean

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/ethiack/apis/ethiack-api.md) - [All operations](https://skmtc.dev/ethiack/apis/ethiack-api/llms.txt) - [OpenAPI document](https://skmtc.dev/ethiack/apis/ethiack-api/revisions/4eaba89bfebf?raw)
