---
search:
  tags:
    - Products
    - DELETE
seo:
  description: >-
    Deletes the product, its variants, their prices, and every event… Reference
    for the DELETE /api/v1/products/{id} endpoint in the Bloomcount Public API
    API.
sidebar:
  label: Delete a product
  badge: DELETE
title: Delete a product
type: openapi-operation
---
Deletes the product, its variants, their prices, and **every event line that used them**. That last part is why
this refuses by default: a product still on an event returns `409 product_on_event_items:<count>` naming how many
lines would go with it. Pass `?force=true` to delete anyway, which is what the app's own delete does.

`404 product_not_found` when the ID doesn't belong to the caller's tenant.

<Operation source="reference" id="delete-api-v1-products-id" />
