Delete Products

To delete *Product* objects, you must include a filter, such as `id:in` or any other supported query parameter. This requirement prevents you from inadvertently deleting every *Product* in a store with an unfiltered request. A `DELETE` request with no filter returns a `422` response. > #### Note > The maximum number of products you can delete at one time is 250. **Example**: To delete products with IDs 1, 2, and 3, use `DELETE /v3/catalog/products?id:in=1,2,3`. ### Delete all products No single request deletes an entire catalog; the filter requirement and the 250-product limit are both intentional safeguards against mass deletion. To remove every product, delete in batches until the catalog is empty: 1. Fetch a page of product IDs with `GET /v3/catalog/products?limit=250&include_fields=id`. 2. Delete that batch with `DELETE /v3/catalog/products?id:in={comma-separated IDs}`. 3. Repeat from step 1 until `GET /v3/catalog/products` returns an empty `data` array. Deletions take effect immediately, so each request in step 1 reflects the products removed by the previous batch. Keep requesting the first page rather than paging through offsets, since the list shrinks as you delete.

Authentication

X-Auth-Tokenstring
### OAuth scopes | UI Name | Permission | Parameter | |:--------|:-----------|:----------| | Products | modify | `store_v2_products` | | Products | read-only | `store_v2_products_read_only` | ### Authentication header | Header | Argument | Description | |:-------|:---------|:------------| | `X-Auth-Token` | `access_token` | For more about API accounts that generate `access_token`s, see our [Guide to API Accounts](/developer/docs/overview/api-fundamentals/api-accounts#api-accounts). | ### Further reading For example requests and more information about authenticating BigCommerce APIs, see [Authentication and Example Requests](/developer/docs/overview/api-fundamentals/api-accounts#x-auth-token-header-example-requests). For more about BigCommerce OAuth scopes, see our [Guide to API Accounts](/developer/docs/overview/api-fundamentals/api-accounts#oauth-scopes). For a list of API status codes, see [API Status Codes](/developer/api-reference/rest/overview#rest-http-status-codes).

Path parameters

store_hashstringRequired
Permanent ID of the BigCommerce store.

Headers

AcceptstringRequiredDefaults to application/json
The [MIME type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types) of the response body.

Query parameters

namestringOptional
Filter items by name.
skustringOptional

Filter items by main SKU. To filter by variant SKU, see Get all variants.

pricedoubleOptional
Filter items by price.
weightdoubleOptional
Filter items by weight.
conditionenumOptional
Filter items by condition.
Allowed values:
brand_idintegerOptional
Filter items by brand ID.
date_modifieddateOptional

Filter items by date_modified.

date_last_importeddateOptional

Filter items by date_last_imported.

is_visiblebooleanOptional
Filter items based on whether the product is currently visible on the storefront.
id:inlist of integersOptional

Pass a comma-separated list to filter by one or more product IDs.

inventory_levelintegerOptional

Filter items by inventory_level.

total_soldintegerOptional

Filter items by total_sold.

typeenumOptional
Filter items by type.
Allowed values:
categoriesintegerOptional

Filters by a single category ID, returning only products assigned exclusively to that category. A product that also belongs to one or more other categories will not be returned — to match products in a category regardless of their other memberships, use categories:in instead.

keywordstringOptional

Filter items by keywords found in the name, description, or sku fields, or in the brand name.

Response

The products matching the filter were deleted. No content is returned.

Errors

422
Unprocessable Entity Error