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

# Mass update catalog product status

`POST /catalog/products/mass-update-status`

## Request

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

Sets the status of a batch of products to the given value (0 or 1). Mirrors Bagisto monolith ProductController::massUpdate — best-effort, fires catalog.product.update.{before,after} per ID.

## Request body

- object
  - `indices` integer[], required
  - `value` 0 | 1, required

## Response `200`

Products updated.

## Other responses

- `400`: Empty or malformed indices, or value not 0/1.
- `401`: Missing or invalid admin token.
- `403`: Admin role lacks catalog.products.edit.
- `422`: Validation Error

---

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