---
title: "Product Ingredients Model"
description: "Ingredients belong directly to a product. Unlike shared extras, an ingredient is not automatically shared with other products."
canonical: https://docs.ordering.co/api-reference/guides/product-ingredients-model/
---

# Product Ingredients Model

Ingredients belong directly to a product. Unlike shared extras, an ingredient is not automatically shared with other products.

## Operations

| Action | Method   | Resource                                                                                             |
| ------ | -------- | ---------------------------------------------------------------------------------------------------- |
| List   | `GET`    | `/business/{business_id}/categories/{category_id}/products/{product_id}/ingredients`                 |
| Find   | `GET`    | `/business/{business_id}/categories/{category_id}/products/{product_id}/ingredients/{ingredient_id}` |
| Create | `POST`   | `/business/{business_id}/categories/{category_id}/products/{product_id}/ingredients`                 |
| Update | `POST`   | `/business/{business_id}/categories/{category_id}/products/{product_id}/ingredients/{ingredient_id}` |
| Delete | `DELETE` | `/business/{business_id}/categories/{category_id}/products/{product_id}/ingredients/{ingredient_id}` |

Use the `categories` path segment when addressing a category product. The documented update operation uses `POST`.

## Shared fields and access

Creation requires a non-empty `name`; image input is optional and follows the shared image policy. This summary is not a complete schema.

Business managers are scoped through businesses associated with their user, and controller queries verify the business/category/product hierarchy.
