---
title: "Bulk delete documents"
method: POST
path: "/internal/api/clients/{client_id}/dms/documents/bulk-delete"
tags: ["CLIENT", "Client Document Management", "DMS Documents"]
---

# Bulk delete documents

`POST /internal/api/clients/{client_id}/dms/documents/bulk-delete`

## Request

- Base URL: `https://api.signalshq.io` (the document declares no server; this is the origin it was published from)
- URL: `https://api.signalshq.io/internal/api/clients/{client_id}/dms/documents/bulk-delete`
- Auth: OAuth 2
  - Password
  - Token URL: `/auth/login`

Delete multiple documents

## Path parameters

- `client_id` string, uuid, required: Client ID

## Request body

- BulkDeleteRequest
  - `document_ids` string[], required: List of document IDs to delete
  - `reason` string, required: Reason for deleting documents

## Response `200`

Successful Response

- BulkOperationResponse: Response schema for bulk operations
  - `success_count` integer, required: Number of successful operations
  - `failure_count` integer, required: Number of failed operations
  - `total_count` integer, required: Total number of operations attempted
  - `errors` BulkOperationError[]: List of errors with detailed information about each failed operation
    - `entity_id` string, required: UUID of the entity (folder or document) that failed
    - `entity_type` string, required: Type of entity (folder or document)
    - `entity_name` string, nullable: Name of the entity that failed (if available)
    - `error` string, required: Error message describing why the operation failed
  - `details` BulkOperationDetails: Detailed breakdown of bulk operation results. Uses *_deleted for delete ops, *_moved for move ops.
    - `folders_deleted` integer, nullable: Number of folders successfully deleted (bulk-delete only)
    - `folders_failed` integer, nullable: Number of folders that failed (delete or move)
    - `documents_deleted` integer, nullable: Number of documents successfully deleted (bulk-delete only)
    - `documents_failed` integer, nullable: Number of documents that failed (delete or move)
    - `folders_moved` integer, nullable: Number of folders in the move request / successfully moved (bulk-move only)
    - `documents_moved` integer, nullable: Number of documents in the move request / successfully moved (bulk-move only)
  - `renamed_documents` object, nullable: Documents that were auto-renamed due to conflicts. Key: document_id (str), Value: RenamedDocumentInfo
  - `renamed_folders` object, nullable: Folders that were auto-renamed due to conflicts. Key: folder_id (str), Value: RenamedDocumentInfo
  - `warnings` string[]: Non-fatal warnings surfaced to the CPA. For move operations: populated when any moved item lands inside a shared folder, meaning the client immediately gains access to those items.

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/signalshq/apis/signals-api.md) - [All operations](https://skmtc.dev/signalshq/apis/signals-api/llms.txt) - [OpenAPI document](https://skmtc.dev/signalshq/apis/signals-api/revisions/2c22af3b5576?raw)
