---
title: "Delete a product bill of materials"
method: DELETE
path: "/public/v1/products/{id}/bill-of-materials"
tags: ["Product"]
---

# Delete a product bill of materials

`DELETE /public/v1/products/{id}/bill-of-materials`

Removes a product's [bill of materials](#model-billofmaterials), with its inputs and additional costs. This is a soft delete: the bill stops appearing on the product, and new assemblies in the web app are no longer pre-filled from it. Existing assemblies keep their inputs, and no inventory, product cost or Metrc/BioTrack data changes. Create a new bill with [POST /public/v1/products/{id}/bill-of-materials](#upsert-a-product-bill-of-materials). Responds 204 with no body; 404 when the product doesn't exist for your company, is deleted, or has no bill of materials.

Requires the Core module (otherwise 403). Required permission: `products_permissions_edit` (plus access to the product under team restrictions).

## Path parameters

- `id` string, required

## Response `204`

No Content

## Other responses

- `400` — Invalid parameters
- `401` — Missing or invalid API token
- `403` — The API token lacks the required permission
- `404` — Not Found

## Changes

- **2026-10-07** `e8639f7dafed` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/distru/apis/distru-api/changes/public/v1/products/:id/bill-of-materials/delete.md)

---

[API](https://skmtc.dev/distru/apis/distru-api.md) · [All operations](https://skmtc.dev/distru/apis/distru-api/llms.txt) · [OpenAPI document](https://skmtc.dev/distru/apis/distru-api/revisions/e8639f7dafed?raw)
