Otter · Schema

ModifierGroup

Items are sold on the menu. Modifiers to items are items themselves and their relationship is defined by ModifierGroup.

RestaurantOrder ManagementDeliveryOnline OrderingMenu ManagementAnalytics

Properties

Name Type Description
id string The identifier that exists in the third party system. During a menu publish event, uuidV4 ids will be generated for new entities that do not yet exist in the internal menu.
name string Name of ModifierGroup.
minimumSelections integer Minimum number of selections customers can make in this ModifierGroup. 0 means no min limits.
maximumSelections integer Maximum number of selections customers can make in this ModifierGroup. 0 means no max limits.
maxPerModifierSelectionQuantity integer Maximum number of selections customers can make for each modifier item in this ModifierGroup. 0 means there is no limit to how many times they can select a single modifier item. If not specified, a va
defaultModifierSelectionData object
itemIds array Identifiers of each Item within this ModifierGroup.
description string The description for this modifier group.
type string Experimental: The type of this modifier group, for informative purposes. It can be one of the following values: `DEFAULT`, `UPSELL`, `INGREDIENT_REMOVAL`, `INGREDIENT_ADD`, `PREPARE_INSTRUCTIONS`, `SI
exposedThirdPartyInfos array Additional information about the menu that should be exposed to third party
View JSON Schema on GitHub

JSON Schema

public-api-modifier-group-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "ModifierGroup",
  "description": "Items are sold on the menu. Modifiers to items are items themselves and their relationship is defined by ModifierGroup.",
  "$id": "https://raw.githubusercontent.com/api-evangelist/otter/refs/heads/main/json-schema/public-api-modifier-group-schema.json",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "The identifier that exists in the third party system. During a menu publish event, uuidV4 ids will be generated for new entities that do not yet exist in the internal menu.",
      "example": "da0e4e94-5670-4175-897a-3b7dde45bed5"
    },
    "name": {
      "type": "string",
      "description": "Name of ModifierGroup.",
      "example": "Choose your type of bagel"
    },
    "minimumSelections": {
      "minimum": 0,
      "type": "integer",
      "description": "Minimum number of selections customers can make in this ModifierGroup. 0 means no min limits.",
      "format": "int32",
      "example": 0
    },
    "maximumSelections": {
      "minimum": 0,
      "type": "integer",
      "description": "Maximum number of selections customers can make in this ModifierGroup. 0 means no max limits.",
      "format": "int32",
      "example": 0
    },
    "maxPerModifierSelectionQuantity": {
      "minimum": 0,
      "default": 1,
      "type": "integer",
      "description": "Maximum number of selections customers can make for each modifier item in this ModifierGroup. 0 means there is no limit to how many times they can select a single modifier item. If not specified, a value of 1 will be used as the default value.",
      "format": "int32",
      "example": 0
    },
    "defaultModifierSelectionData": {
      "$ref": "https://raw.githubusercontent.com/api-evangelist/otter/refs/heads/main/json-schema/public-api-default-modifier-selection-data-schema.json"
    },
    "itemIds": {
      "type": "array",
      "default": [],
      "description": "Identifiers of each Item within this ModifierGroup.",
      "items": {
        "type": "string"
      }
    },
    "description": {
      "type": "string",
      "description": "The description for this modifier group.",
      "example": "Choose any of these delicious types of bagels"
    },
    "type": {
      "type": "string",
      "description": "Experimental: The type of this modifier group, for informative purposes. It can be one of the following values: `DEFAULT`, `UPSELL`, `INGREDIENT_REMOVAL`, `INGREDIENT_ADD`, `PREPARE_INSTRUCTIONS`, `SIZE_MODIFICATION`, `PACKAGING_INSTRUCTION` and `CONDIMENT`.",
      "example": "DEFAULT"
    },
    "exposedThirdPartyInfos": {
      "type": "array",
      "default": [],
      "description": "Additional information about the menu that should be exposed to third party",
      "items": {
        "$ref": "https://raw.githubusercontent.com/api-evangelist/otter/refs/heads/main/json-schema/public-api-exposed-third-party-info-schema.json"
      }
    }
  },
  "required": [
    "id",
    "name"
  ]
}

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/public-api-modifier-group"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.