---
title: "Bulk delete contentlets by identifier"
method: DELETE
path: "/api/v1/maintenance/_contentlets"
tags: ["Maintenance"]
---

# Bulk delete contentlets by identifier

`DELETE /api/v1/maintenance/_contentlets`

Permanently destroys contentlets and all their language siblings. Bypasses trash. Each contentlet is destroyed independently — one failure does not block others.

## Request body

- DeleteContentletsForm — List of contentlet identifiers to permanently destroy
  - `identifiers` string[], required — List of contentlet identifiers. All language siblings of each identifier will be permanently destroyed.

## Response `200`

Bulk deletion completed

- ResponseEntityDeleteContentletsResultView
  - `errors` ErrorEntity[]
    - `errorCode` string
    - `message` string
    - `fieldName` string
  - `entity` DeleteContentletsResultView
    - `deleted` integer, required — Number of contentlets successfully destroyed
    - `errors` string[], required — Identifiers of contentlets that failed to be destroyed
  - `messages` MessageEntity[]
    - `message` string
  - `i18nMessagesMap` object
  - `permissions` string[]
  - `pagination` Pagination
    - `currentPage` integer
    - `perPage` integer
    - `totalEntries` integer

## Other responses

- `400` — Bad request - missing or empty identifiers
- `401` — Unauthorized - authentication required
- `403` — Forbidden - CMS Administrator role required

---

[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)
