# Bulk Delete Media Items Delete multiple media items at once (supports ebooks, comics, manga). **Endpoint**: `POST /api/media-items/bulk-delete` **Auth**: Required **Content-Type**: `application/json` ## Request Body | Field | Type | Required | Description | |--------|------|-----------|-------------| | media_item_ids | array of UUID | Yes | Array of media item UUIDs to delete | ### Example Request ```json { "media_item_ids": [ "550e8400-e29b-41d4-a716-446655440001", "660e8400-e29b-41d4-a716-446655440002", "770e8400-e29b-41d4-a716-446655440003" ] } ``` ## Response (200 OK) ```json { "results": [ { "media_item_id": "550e8400-e29b-41d4-a716-446655440001", "status": "success" }, { "media_item_id": "660e8400-e29b-41d4-a716-446655440002", "status": "error", "error": "Media item not found" }, { "media_item_id": "770e8400-e29b-41d4-a716-446655440003", "status": "success" } ], "total": 3, "deleted": 2, "failed": 1 } ``` ## Response Fields | Field | Type | Description | |-------|------|-------------| | results | array | Individual result for each media item | | results[].media_item_id | string | UUID of the media item | | results[].status | string | "success" or "error" | | results[].error | string | Error message (only present if status is "error") | | total | number | Total number of media items processed | | deleted | number | Number of media items successfully deleted | | failed | number | Number of media items that failed to delete | ## Error Responses | Code | Description | |------|-------------| | 400 | Invalid request data or empty media_item_ids array | | 401 | Invalid or expired token | | 403 | User does not have permission | | 500 | Server error during deletion | ## Notes - **File deletion**: Successfully deleted media items will also have their associated files removed from disk - **Invalid UUIDs**: Invalid UUID formats are counted as failures in the results array - **Non-existent items**: Media items that don't exist are counted as failures (not errors) - **Partial success**: The operation continues even if some deletions fail