---
title: "Extra option model"
description: "An ExtraOption belongs to one Extra through the literal extra_id field."
canonical: https://docs.ordering.co/api-reference/guides/extra-option-model/
---

# Extra option model

An `ExtraOption` belongs to one `Extra` through the literal `extra_id` field. It groups the selectable suboptions for that extra; it is not itself a product or a suboption.

## Operations

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

Both update methods map to the same action but remain separate operations. Requests require authentication; write access is limited to administrators and business managers, with managers scoped to associated businesses. The route must identify the correct business and extra.

## Shared concepts

The model includes fields such as `id`, `extra_id`, `name`, `image`, `conditioned`, `respect_to`, `min`, `max`, `rank`, `with_half_option`, `allow_suboption_quantity`, `limit_suboptions_by_max`, `enabled`, `external_id`, and `snooze_until`. Its relations are named `extra`, `suboptions`, and `metafields`.

See [load extra option relations](https://docs.ordering.co/api-reference/guides/extra-options-special-request/) and [the extra option suboption model](https://docs.ordering.co/api-reference/guides/extra-option-suboption-model/).

## Schema properties

**Schema:** `ExtraOption`

| Name                       | Type            | Description |
| -------------------------- | --------------- | ----------- |
| `allow_suboption_quantity` | boolean \| null | —           |
| `conditioned`              | boolean \| null | —           |
| `created_at`               | string \| null  | —           |
| `deleted_at`               | string \| null  | —           |
| `enabled`                  | boolean \| null | —           |
| `external_id`              | integer \| null | —           |
| `extra_id`                 | integer \| null | —           |
| `id`                       | integer \| null | —           |
| `image`                    | string \| null  | —           |
| `limit_suboptions_by_max`  | boolean \| null | —           |
| `max`                      | integer \| null | —           |
| `min`                      | integer \| null | —           |
| `name`                     | string \| null  | —           |
| `rank`                     | number \| null  | —           |
| `respect_to`               | integer \| null | —           |
| `snooze_until`             | any             | —           |
| `updated_at`               | string \| null  | —           |
| `with_half_option`         | boolean \| null | —           |
