{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/grubhub/main/json-schema/grubhub-item-schema.json",
  "title": "Item",
  "x-generated": "2026-09-17",
  "x-method": "derived",
  "x-source": "openapi/grubhub-connect-endpoints-openapi.yml#/components/schemas/Item",
  "required": [
    "name"
  ],
  "type": "object",
  "properties": {
    "name": {
      "maxLength": 256,
      "minLength": 0,
      "type": "string",
      "description": "The name of the item being delivered.",
      "example": "Cheeseburger"
    },
    "description": {
      "maxLength": 256,
      "minLength": 0,
      "type": "string",
      "description": "The description of the item.",
      "example": "Burger patty topped with cheese."
    },
    "quantity": {
      "minimum": 1,
      "type": "integer",
      "description": "The quantity of the item.",
      "format": "int32"
    },
    "sub_items": {
      "type": "array",
      "description": "Subitems included with the item.",
      "items": {
        "$ref": "#/$defs/SubItem"
      }
    },
    "item_sizing": {
      "$ref": "#/$defs/ItemSizing"
    }
  },
  "description": "The information associated with a delivery item.",
  "$defs": {
    "ItemDimensions": {
      "required": [
        "depth",
        "height",
        "unit",
        "width"
      ],
      "type": "object",
      "properties": {
        "unit": {
          "type": "string",
          "description": "Unit of measurement",
          "example": "INCHES",
          "enum": [
            "INCHES",
            "FEET"
          ]
        },
        "width": {
          "type": "number",
          "description": "Width of the item",
          "format": "double",
          "example": 10.0
        },
        "height": {
          "type": "number",
          "description": "Height of the item",
          "format": "double",
          "example": 5.0
        },
        "depth": {
          "type": "number",
          "description": "Depth of the item",
          "format": "double",
          "example": 3.0
        }
      },
      "description": "Dimensions of the item"
    },
    "ItemSizing": {
      "type": "object",
      "properties": {
        "weight": {
          "$ref": "#/$defs/ItemWeight"
        },
        "dimensions": {
          "$ref": "#/$defs/ItemDimensions"
        }
      },
      "description": "Information about item-level sizing"
    },
    "ItemWeight": {
      "required": [
        "unit",
        "weight"
      ],
      "type": "object",
      "properties": {
        "unit": {
          "type": "string",
          "description": "Unit of measurement",
          "example": "POUNDS",
          "enum": [
            "POUNDS"
          ]
        },
        "weight": {
          "type": "number",
          "description": "Weight of the item",
          "format": "double",
          "example": 5.0
        }
      },
      "description": "Weight of the item"
    },
    "SubItem": {
      "required": [
        "name"
      ],
      "type": "object",
      "properties": {
        "name": {
          "maxLength": 64,
          "minLength": 0,
          "type": "string",
          "description": "The name of the subitem.",
          "example": "Add cheese"
        },
        "description": {
          "maxLength": 128,
          "minLength": 0,
          "type": "string",
          "description": "The description of the subitem.",
          "example": "Single slice of American cheese."
        },
        "quantity": {
          "minimum": 0,
          "type": "integer",
          "description": "The quantity of this subitem, if applicable.",
          "format": "int32",
          "default": 0
        }
      },
      "description": "The information associated with a delivery subitem."
    }
  }
}