---
title: "Mass delete catalog products"
method: POST
path: "/catalog/products/mass-delete"
tags: ["Admin Catalog: Products"]
---

# Mass delete catalog products

`POST /catalog/products/mass-delete`

## Request

- Base URL: `http://localhost:8000/api/admin`
- URL: `http://localhost:8000/api/admin/catalog/products/mass-delete`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/bagisto/apis/bagisto-admin-api/docs/catalog/products/mass-delete/post.ts> (a function with typed inputs; its response is checked against the schema)

Deletes a batch of products. Non-existent IDs are silently skipped. If any single delete throws an exception, the endpoint returns 500 with the underlying message — matching the Bagisto monolith ProductController::massDestroy behaviour.

## Request body

- object
  - `indices` integer[], required

## Response `200`

Products deleted.

## Other responses

- `400`: Empty or malformed indices.
- `401`: Missing or invalid admin token.
- `403`: Admin role lacks catalog.products.delete.
- `422`: Validation Error
- `500`: Underlying delete threw an exception (mirrors monolith behaviour).

---

[API](https://skmtc.dev/bagisto/apis/bagisto-admin-api.md) - [All operations](https://skmtc.dev/bagisto/apis/bagisto-admin-api/llms.txt) - [OpenAPI document](https://skmtc.dev/bagisto/apis/bagisto-admin-api/revisions/3198f11be70f?raw)
