> ## Documentation Index
> Fetch the complete documentation index at: https://docs.publica.la/llms.txt
> Use this file to discover all available pages before exploring further.

# Delete a Bundle

Remove a bundle from your store, as deleting it from the dashboard does.

:::warning Deletion is permanent
A deleted bundle cannot be restored. To take a bundle off sale while keeping it, [unpublish it](./bundles-v3-update.md#publishing) instead.
:::

---

## Endpoint

```
DELETE /api/v3/bundles/{bundle}
```

---

## Path Parameters

| Parameter | Type   | Description                                                            |
| --------- | ------ | ---------------------------------------------------------------------- |
| `bundle`  | string | The bundle's `id`, or its `external_id` when `id_type=external` is set |

## Query Parameters

| Parameter | Type   | Default    | Description                                            |
| --------- | ------ | ---------- | ------------------------------------------------------ |
| `id_type` | string | `internal` | `internal` (bundle `id`) or `external` (`external_id`) |

---

## What Gets Deleted

- **The bundle**: get, update and delete answer `404` for it from then on, and list no longer returns it.
- **Its own cover**, when it had one.
- **Its composition**: its products leave the bundle. The products themselves stay in your catalog, untouched.
- **Its reserved stock**: the units it held for its buyers go back to the available stock of each physical product. See [Reserved stock](./bundles-v3-overview.md#reserved-stock).

---

## Request Examples

### By ID

```bash
curl -X DELETE "https://yourstore.publica.la/api/v3/bundles/318" \
  -H "X-User-Token: your-api-token" \
  -H "Accept: application/json"
```

### By `external_id`

```bash
curl -X DELETE "https://yourstore.publica.la/api/v3/bundles/rock-icons?id_type=external" \
  -H "X-User-Token: your-api-token" \
  -H "Accept: application/json"
```

---

## Response

`204 No Content` on success, with an empty body.

Repeating the delete answers `404`, because the bundle is already gone. When you retry a delete whose response was lost, take that `404` as done.

---

## Errors

| Status | Condition                                                                                                                                                                                            |
| ------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `401`  | Missing or invalid `X-User-Token`                                                                                                                                                                    |
| `403`  | Selling is disabled for the store (`Selling is disabled for this store.`), or the token does not belong to an administrator. A token without access gets `403` even for a bundle that does not exist |
| `404`  | The bundle does not exist in your store, checked before the query parameters are validated. The body is `{"message": "Not found"}`, also for a bundle of another store                               |
| `422`  | `id_type` other than `internal` or `external`                                                                                                                                                        |

---

## See Also

- [Bundles API Overview](./bundles-v3-overview.md): states and identifiers
- [Update a Bundle](./bundles-v3-update.md): unpublish a bundle instead of deleting it
- [List Bundles](./bundles-v3-list.md): find a bundle by `external_id`
