---
title: "Delete several folders from one submission, asynchronously"
method: POST
path: "/api/v1/assets/folders/_bulkdelete"
tags: ["Web Assets"]
---

# Delete several folders from one submission, asynchronously

`POST /api/v1/assets/folders/_bulkdelete`

## Request

- Base URL: `https://docs.anzworldline-solutions.com.au`
- URL: `https://docs.anzworldline-solutions.com.au/api/v1/assets/folders/_bulkdelete`
- Auth: none declared
- TypeScript: <https://skmtc.dev/anzworldline-solutions/apis/dotcms-rest-api/docs/api/v1/assets/folders/_bulkdelete/post.ts> (a function with typed inputs; its response is checked against the schema)

Accepts a list of folder paths and answers `202` with a job handle **before any folder is deleted**. The run is asynchronous, queued to the `folderBulkDelete` queue, and each folder's delete is recursive and permanent, exactly as the single-folder delete already is. Follow the run with `GET /api/v1/jobs/{jobId}/status`, cancel it with `POST /api/v1/jobs/{jobId}/cancel`, and watch it with `GET /api/v1/jobs/{jobId}/monitor`. The submitting author is notified on any terminal state.

One folder failing does not abort the run: every remaining folder is still attempted, and each failure is reported by path with a machine-readable reason.

## Request body

- FolderBulkDeleteForm
  - `assetPaths` string[]: The selected folders, in the same site-qualified path form the single-folder delete accepts

## Response `202`

Run queued

- ResponseEntityFolderBulkDeleteSubmitView
  - `errors` ErrorEntity[]
    - `errorCode` string
    - `message` string
    - `fieldName` string
  - `entity` FolderBulkDeleteSubmitResponse
    - `jobId` string
    - `statusUrl` string
    - `submitted` integer
  - `messages` MessageEntity[]
    - `message` string
  - `i18nMessagesMap` object
  - `permissions` string[]
  - `pagination` Pagination
    - `currentPage` integer
    - `perPage` integer
    - `totalEntries` integer

## Other responses

- `400`: No paths submitted, or more paths than the configured maximum
- `403`: The caller is not entitled to use this operation
- `409`: A submitted path overlaps an in-flight run's paths

## Changes

- **2026-10-30** `4fd8e917d458`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/anzworldline-solutions/apis/dotcms-rest-api/changes/api/v1/assets/folders/_bulkdelete/post.md)

---

[API](https://skmtc.dev/anzworldline-solutions/apis/dotcms-rest-api.md) - [All operations](https://skmtc.dev/anzworldline-solutions/apis/dotcms-rest-api/llms.txt) - [OpenAPI document](https://skmtc.dev/anzworldline-solutions/apis/dotcms-rest-api/revisions/4fd8e917d458?raw)
