---
title: "Get a product"
method: GET
path: "/public/v1/products/{id}"
tags: ["Product"]
---

# Get a product

`GET /public/v1/products/{id}`

Get a single product by ID. Unlike the list endpoint, the response always
includes the product's `bill_of_materials` (or null if it has none).

Returns 404 if no product with that ID exists in your company, or if the
authenticated user cannot see it under their team restrictions — the two
cases are indistinguishable from the response.

Required permission: `products_permissions_view`.

## Path parameters

- `id` string, required

## Query parameters

- `include_packages_with_active_quantity_by_location` boolean
- `include_batches_with_active_quantity_by_location` boolean

## Response `200`

A single product

## Other responses

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

---

[API](https://skmtc.dev/distru/apis/distru-api.md) · [All operations](https://skmtc.dev/distru/apis/distru-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/distru/distru-api/revisions/eb775b7b6ee0/schema)
