---
title: "Remove assets from an unpushed bundle"
method: DELETE
path: "/api/v1/bundles/{bundleId}/assets"
tags: ["Publishing"]
---

# Remove assets from an unpushed bundle

`DELETE /api/v1/bundles/{bundleId}/assets`

Removes one or more assets from an unpushed bundle. Each asset is processed independently with per-asset results. Assets not found in the bundle return success=false.

## Path parameters

- `bundleId` string, required

## Request body

- RemoveAssetsFromBundleForm
  - `assetIds` string[], required — List of asset identifiers to remove from the bundle

## Response `200`

Removal completed (check per-asset success flags)

- ResponseEntityRemoveAssetsFromBundleView
  - `errors` ErrorEntity[]
    - `errorCode` string
    - `message` string
    - `fieldName` string
  - `entity` RemoveAssetResultView[]
    - `assetId` string, required — The asset identifier that was processed
    - `success` boolean, required — Whether the asset was successfully removed from the bundle
    - `message` string, required — Human-readable result message
  - `messages` MessageEntity[]
    - `message` string
  - `i18nMessagesMap` object
  - `permissions` string[]
  - `pagination` Pagination
    - `currentPage` integer
    - `perPage` integer
    - `totalEntries` integer

## Other responses

- `400` — Invalid request (e.g., blank bundleId, empty assetIds)
- `401` — Unauthorized - authentication required
- `403` — Forbidden - insufficient permissions
- `404` — Bundle not found
- `409` — Cannot remove assets while bundle is in BUNDLING, SENDING_TO_ENDPOINTS, or PUBLISHING_BUNDLE status
- `500` — Internal server error

---

[API](https://skmtc.dev/jostens/apis/dotcms-rest-api.md) · [All operations](https://skmtc.dev/jostens/apis/dotcms-rest-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/jostens/dotcms-rest-api/revisions/a088fe9f515c/schema)
