---
title: "Delete assets"
description: "Permanently deletes multiple Asset Hub assets by ID in a single request."
contentType: "api-reference"
url: "https://developer.mindtickle.com/docs/asset-hub/assets/delete-assets/"
---

## Prerequisites

1. [Authentication and setup](/docs/getting-started/authentication-and-setup/): A valid access token.
2. [Create assets](/docs/asset-hub/assets/create-assets/): The assets must exist.

## Endpoint

```http
DELETE /api/assethub/v2/assets
```

Base URL: the standard REST host for your region. See [Base URLs](/docs/getting-started/authentication-and-setup/#base-urls).

Headers: `Authorization: Bearer ACCESS_TOKEN`, `Content-Type: application/json`.

## Request

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `asset_ids` | string[] | Required | List of reference asset IDs to delete. Maximum 50 assets per request. |
| `user_id` | string | Required | User ID of the user performing the operation. Used as the authorizer for the operation. |

### Request example

```json
{
  "asset_ids": ["123456789012345101", "123456789012345102", "123456789012345103"],
  "user_id": "123456789abcd104"
}
```

## Response

| Field | Type | Description |
| --- | --- | --- |
| `request_id` | string | Unique ID for the request. |
| `deleted` | string[] | List of asset IDs that were successfully deleted. |
| `failed` | array | List of assets that could not be deleted. Each object contains `asset_id` and `reason`. |

### Response example

```json
{
  "request_id": "req_101",
  "deleted": ["123456789012345101", "123456789012345103"],
  "failed": [
    {
      "asset_id": "123456789012345102",
      "reason": "Asset does not exist or has been deleted"
    }
  ]
}
```

## Notes

- **Limits:** Maximum 50 assets per request.
- **Partial success:** The response is HTTP 200 even if some assets fail to delete. Check the `failed` list in the response to identify any issues.
- **Validation:** If an `asset_id` is empty or invalid, it appears in the `failed` list with a specific reason, such as "Asset ID cannot be empty", rather than failing the entire request.

## Related

- [Archive assets](/docs/asset-hub/assets/archive-assets/): Archive assets instead of deleting them permanently.
- [List published assets in a hub](/docs/asset-hub/assets/list-published-assets-in-a-hub/): Find the asset IDs to delete.
