---
title: "Product extras model"
description: "An Extra is a business-level group of product choices. It is the parent of extra options; an option is the parent of its selectable suboptions."
canonical: https://docs.ordering.co/api-reference/guides/extras-model/
---

# Product extras model

An `Extra` is a business-level group of product choices. It is the parent of extra options; an option is the parent of its selectable suboptions. Keep those three identities separate when building paths or payloads.

## Operations

| Action | Method   | Resource                                    |
| ------ | -------- | ------------------------------------------- |
| List   | `GET`    | `/business/{business_id}/extras`            |
| Find   | `GET`    | `/business/{business_id}/extras/{extra_id}` |
| Create | `POST`   | `/business/{business_id}/extras`            |
| Update | `PUT`    | `/business/{business_id}/extras/{extra_id}` |
| Delete | `DELETE` | `/business/{business_id}/extras/{extra_id}` |

These operations require authentication. Write access is limited to administrators and business managers; managers are scoped to businesses associated with their user.

## Shared concepts

The model includes identifiers and visible fields such as `id`, `business_id`, `name`, `description`, `enabled`, `external_id`, `rank`, and `snooze_until`. Its `options` relation contains `ExtraOption` records; `metafields` contains metadata attached specifically to the `Extra` model.

See [load options for product extras](https://docs.ordering.co/api-reference/guides/extras-special-request/) for relation-loading behavior and [the extra option model](https://docs.ordering.co/api-reference/guides/extra-option-model/) for the next identity in the hierarchy.
