Bulk soft delete products

Soft deletes multiple products by setting their status to 'deleted'. Accepts up to 50 product IDs and returns lists of successful and failed soft deletions with detailed error reasons.

PATCH/api/v1/{team_slug}/{app_slug}/products/bulk/soft-delete
API
Management
Updated
Apr 26, 2026

management-api:PATCH:/api/v1/{team_slug}/{app_slug}/products/bulk/soft-delete

Soft deletes multiple products by setting their status to 'deleted'. Accepts up to 50 product IDs and returns lists of successful and failed soft deletions with detailed error reasons.

API ownership

  • API family: Management API
  • Best for: Trusted back-office workflows that create, update, organize, or delete merchant-owned data.
  • Do not use from: Browser-only storefront code or public clients.
  • Guide route: /apis/management/latest

The OpenAPI contract defines the method, path, parameters, request body, and responses for this operation.

Operation

  • Method: PATCH
  • Path: /api/v1/\{team_slug\}/\{app_slug\}/products/bulk/soft-delete
  • Summary: Bulk soft delete products
  • Description: Soft deletes multiple products by setting their status to 'deleted'. Accepts up to 50 product IDs and returns lists of successful and failed soft deletions with detailed error reasons.
  • OpenAPI contract: management-api
  • Operation ID: Not documented in the OpenAPI contract.

Operation key uses API family, method, and path because this OpenAPI contract does not publish an operation ID.

Parameters2 parameters
NameInRequiredTypeDescription
app_slugpathYesstringApp slug
team_slugpathYesstringTeam slug
Request bodyDocumented body
  • Required: Yes
  • Description: Product IDs to soft delete
  • Content: application/json (object)

Bulk Delete Products Payload

PropertyTypeRequiredDetails
product_idsstring[]YesminItems: 1, maxItems: 50

Generated example (synthetic):

{
  "product_ids": [
    "string"
  ]
}
Responses4 statuses
StatusDescriptionContent
200Products soft deleted successfullyapplication/json (object)
400Invalid request (e.g. bad UUID, validation error)application/json (object)
401Unauthorized accessapplication/json (object)
500Internal server errorapplication/json (object)

200 - object

Bulk Delete Products Response

PropertyTypeRequiredDetails
dataobjectNo-
detailsstring[]NoAdditional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes
successbooleanNo-
Bulk Delete Products
PropertyTypeRequiredDetails
failedobject[]No-
successfulstring[]No-
Bulk Delete Failed
PropertyTypeRequiredDetails
idstringNo-
reasonstringNo-

Generated example (synthetic):

{
  "data": {
    "failed": [
      {
        "id": "string",
        "reason": "string"
      }
    ],
    "successful": [
      "string"
    ]
  },
  "details": [
    "string"
  ],
  "success": false
}

400 - object

Error Message

PropertyTypeRequiredDetails
detailsstring[]No-
messagestringNo-
successbooleanNo-

Generated example (synthetic):

{
  "details": [
    "string"
  ],
  "message": "string",
  "success": false
}

401 - object

Error Message

PropertyTypeRequiredDetails
detailsstring[]No-
messagestringNo-
successbooleanNo-

Generated example (synthetic):

{
  "details": [
    "string"
  ],
  "message": "string",
  "success": false
}

500 - object

Error Message

PropertyTypeRequiredDetails
detailsstring[]No-
messagestringNo-
successbooleanNo-

Generated example (synthetic):

{
  "details": [
    "string"
  ],
  "message": "string",
  "success": false
}

Contract identity

Use these fields to confirm you are implementing the intended endpoint contract.

  • API family: Management API
  • Method: PATCH
  • Path: /api/v1/\{team_slug\}/\{app_slug\}/products/bulk/soft-delete
  • Operation ID: Not documented in the OpenAPI contract.
  • OpenAPI tag: Products, Bulk
  • OpenAPI summary: Bulk soft delete products

Bulk soft delete products

# Bulk soft delete products Soft deletes multiple products by setting their status to 'deleted'. Accepts up to 50 product IDs and returns lists of successful and failed soft deletions with detailed error reasons.
PATCH /api/v1/{team_slug}/{app_slug}/products/bulk/soft-delete
Purpose

Soft deletes multiple products by setting their status to 'deleted'.

Required inputs

app_slug path team_slug path

Primary response

200 ยท Products soft deleted successfully

Operation key

management-api:PATCH:/api/v1/{team_slug}/{app_slug}/products/bulk/soft-delete

## API ownership - API family: Management API - Best for: Trusted back-office workflows that create, update, organize, or delete merchant-owned data. - Do not use from: Browser-only storefront code or public clients. - Guide route: [/apis/management/latest](/apis/management/latest) The OpenAPI contract defines the method, path, parameters, request body, and responses for this operation. ## Operation - Method: `PATCH` - Path: `/api/v1/{team_slug}/{app_slug}/products/bulk/soft-delete` - Summary: Bulk soft delete products - Description: Soft deletes multiple products by setting their status to 'deleted'. Accepts up to 50 product IDs and returns lists of successful and failed soft deletions with detailed error reasons. - OpenAPI contract: management-api - Operation ID: Not documented in the OpenAPI contract. - Stable operation key: `management-api:PATCH:/api/v1/{team_slug}/{app_slug}/products/bulk/soft-delete` Operation key uses API family, method, and path because this OpenAPI contract does not publish an operation ID. ## Parameters | Name | In | Required | Type | Description | | --- | --- | --- | --- | --- | | app_slug | path | Yes | string | App slug | | team_slug | path | Yes | string | Team slug | ## Request body - Required: Yes - Description: Product IDs to soft delete - Content: application/json (object) ### Bulk Delete Products Payload | Property | Type | Required | Details | | --- | --- | --- | --- | | `product_ids` | string[] | Yes | minItems: 1, maxItems: 50 | **Generated example (synthetic):** ```json { "product_ids": [ "string" ] } ``` ## Responses | Status | Description | Content | | --- | --- | --- | | 200 | Products soft deleted successfully | application/json (object) | | 400 | Invalid request (e.g. bad UUID, validation error) | application/json (object) | | 401 | Unauthorized access | application/json (object) | | 500 | Internal server error | application/json (object) | ### 200 - object #### Bulk Delete Products Response | Property | Type | Required | Details | | --- | --- | --- | --- | | `data` | object | No | - | | `details` | string[] | No | Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes | | `success` | boolean | No | - | ##### Bulk Delete Products | Property | Type | Required | Details | | --- | --- | --- | --- | | `failed` | object[] | No | - | | `successful` | string[] | No | - | ##### Bulk Delete Failed | Property | Type | Required | Details | | --- | --- | --- | --- | | `id` | string | No | - | | `reason` | string | No | - | **Generated example (synthetic):** ```json { "data": { "failed": [ { "id": "string", "reason": "string" } ], "successful": [ "string" ] }, "details": [ "string" ], "success": false } ``` ### 400 - object #### Error Message | Property | Type | Required | Details | | --- | --- | --- | --- | | `details` | string[] | No | - | | `message` | string | No | - | | `success` | boolean | No | - | **Generated example (synthetic):** ```json { "details": [ "string" ], "message": "string", "success": false } ``` ### 401 - object #### Error Message | Property | Type | Required | Details | | --- | --- | --- | --- | | `details` | string[] | No | - | | `message` | string | No | - | | `success` | boolean | No | - | **Generated example (synthetic):** ```json { "details": [ "string" ], "message": "string", "success": false } ``` ### 500 - object #### Error Message | Property | Type | Required | Details | | --- | --- | --- | --- | | `details` | string[] | No | - | | `message` | string | No | - | | `success` | boolean | No | - | **Generated example (synthetic):** ```json { "details": [ "string" ], "message": "string", "success": false } ``` ## Contract identity Use these fields to confirm you are implementing the intended endpoint contract. - API family: Management API - Method: `PATCH` - Path: `/api/v1/{team_slug}/{app_slug}/products/bulk/soft-delete` - Operation ID: Not documented in the OpenAPI contract. - Stable operation key: `management-api:PATCH:/api/v1/{team_slug}/{app_slug}/products/bulk/soft-delete` - OpenAPI tag: Products, Bulk - OpenAPI summary: Bulk soft delete products