Skip to main content
Complete reference for all SmartMenu API data types.

Core Types

Dish

The main dish object returned by SmartMenu search and dish queries.
type Dish {
  id: ID!
  name: String!
  description: String
  imageUrl: String
  servingSize: String
  servingSizeInGrams: Float
  createdAt: DateTime
  updatedAt: DateTime
  """
  Grouped nutrition information for this dish.
  """
  nutrition: DishNutrition
  """
  Controls whether this dish should be displayed in the widget.
  """
  displayOnWidget: Boolean
  """
  Indicates whether the dish has any ingredients and can be customized.
  """
  isCustomizable: Boolean!
  """
  A list of dish cuisines.
  """
  cuisines: [Cuisine]!
  """
  A list of dish allergens.
  """
  allergens: [Allergen]!
  """
  A list of dish diets.
  """
  diets: [Diet]!
  """
  A list of dish preparation types.
  """
  preparationTypes: [PreparationType]!
  """
  A list of dish styles.
  """
  styles: [Style]!
  """
  A list of added ingredients.
  """
  addedIngredients: [Ingredient]!
  """
  Dish menu.
  """
  menu: Menu
  """
  Original category name from the menu (denormalized for display/filtering).
  """
  originalCategoryName: String
}
FieldTypeDescription
idID!EveryBite unique identifier
nameString!Dish name
descriptionStringDish description
imageUrlStringURL to dish image
servingSizeStringHuman-readable serving size (e.g., “1 bowl”)
servingSizeInGramsFloatServing size in grams
createdAtDateTimeWhen the dish was created
updatedAtDateTimeLast update timestamp
nutritionDishNutritionGrouped nutrition information for the dish
displayOnWidgetBooleanWhether the dish is visible in the SmartMenu widget
isCustomizableBoolean!Whether the dish supports ingredient-level customization
cuisines[Cuisine]!Cuisines associated with the dish
allergens[Allergen]!Dish-level allergens
diets[Diet]!Diet classifications for the dish
preparationTypes[PreparationType]!How the dish is prepared (grilled, fried, etc.)
styles[Style]!Style tags for the dish
addedIngredients[Ingredient]!Ingredient list used for nutrition and allergens
menuMenuMenu this dish belongs to
originalCategoryNameStringOriginal menu category name from the partner system

DishNutrition

Nutrition facts for a dish, as returned by the Dish type.
type DishNutrition {
  caloriesTotal: Float
  caloriesFromFat: Float
  fatTotal: Float
  fatSaturated: Float
  fatTrans: Float
  cholesterol: Float
  sodium: Float
  carbohydrates: Float
  dietaryFiber: Float
  sugar: Float
  protein: Float
  vitaminA: Float
  vitaminC: Float
  calcium: Float
  iron: Float
}
FieldTypeUnitDescription
caloriesTotalFloatkcalTotal calories
caloriesFromFatFloatkcalCalories from fat
fatTotalFloatgTotal fat
fatSaturatedFloatgSaturated fat
fatTransFloatgTrans fat
cholesterolFloatmgCholesterol
sodiumFloatmgSodium
carbohydratesFloatgTotal carbohydrates
dietaryFiberFloatgDietary fiber
sugarFloatgSugars
proteinFloatgProtein
vitaminAFloatIUVitamin A
vitaminCFloatmgVitamin C
calciumFloatmgCalcium
ironFloatmgIron

Allergen

Allergen information returned for a dish.
type Allergen {
  id: ID!
  name: String!
  description: String
  confidence: Float
}
FieldTypeDescription
idID!Allergen identifier
nameString!Allergen name
descriptionStringHuman-readable description
confidenceFloatConfidence score (0.0 - 1.0)

Diet

Dietary classification for a dish.
type Diet {
  id: ID!
  name: String!
  description: String
  confidence: Float
}
FieldTypeDescription
idID!Diet identifier
nameString!Diet name
descriptionStringHuman-readable description
confidenceFloatConfidence score (0.0 - 1.0)

Ingredient

Individual ingredient with detailed nutrition and allergen tracking. This is a simplified view of our deeper seven-layer ingredient hierarchy that traces dishes back through recipes, prep recipes, and ingredient specifications.
type Ingredient {
  id: ID!
  name: String!
  brand: String
  description: String
  supplier: String
  caloriesTotalPer100g: String
  caloriesFromFatPer100g: String
  fatTotalPer100g: String
  fatSaturatedPer100g: String
  fatTransPer100g: String
  cholesterolPer100g: String
  carbohydratesPer100g: String
  sugarPer100g: String
  proteinPer100g: String
  vitaminAPer100g: String
  vitaminCPer100g: String
  calciumPer100g: String
  ironPer100g: String
  containsEgg: Boolean
  containsFish: Boolean
  containsMilk: Boolean
  containsSesame: Boolean
  containsShellfish: Boolean
  containsWheat: Boolean
  containsPeanut: Boolean
  containsSoy: Boolean
  containsTreeNut: Boolean
  isIncluded: Boolean!
  isKeyIngredient: Boolean!
  quantity: String!
  unit: String!
  amountGrams: Float!
}
FieldTypeDescription
idID!Ingredient identifier
nameString!Ingredient name
brandStringBrand name (if available)
descriptionStringIngredient description
supplierStringIngredient supplier
caloriesTotalPer100gStringCalories per 100g
caloriesFromFatPer100gStringCalories from fat per 100g
fatTotalPer100gStringTotal fat per 100g
fatSaturatedPer100gStringSaturated fat per 100g
fatTransPer100gStringTrans fat per 100g
cholesterolPer100gStringCholesterol per 100g
carbohydratesPer100gStringCarbohydrates per 100g
sugarPer100gStringSugar per 100g
proteinPer100gStringProtein per 100g
vitaminAPer100gStringVitamin A per 100g
vitaminCPer100gStringVitamin C per 100g
calciumPer100gStringCalcium per 100g
ironPer100gStringIron per 100g
containsEggBooleanWhether the ingredient contains egg
containsFishBooleanWhether the ingredient contains fish
containsMilkBooleanWhether the ingredient contains milk
containsSesameBooleanWhether the ingredient contains sesame
containsShellfishBooleanWhether the ingredient contains shellfish
containsWheatBooleanWhether the ingredient contains wheat
containsPeanutBooleanWhether the ingredient contains peanuts
containsSoyBooleanWhether the ingredient contains soy
containsTreeNutBooleanWhether the ingredient contains tree nuts
isIncludedBoolean!Whether this ingredient is included in the base configuration
isKeyIngredientBoolean!Whether this is a featured/key ingredient
quantityString!Quantity (human readable)
unitString!Quantity unit (e.g., “oz”, “g”)
amountGramsFloat!Quantity converted to grams

WidgetCategory

Menu category used by SmartMenu widgets.
type WidgetCategory {
  name: String!
  count: Int
  ordinal: Int
}
FieldTypeDescription
nameString!Category name
countIntNumber of dishes in this category
ordinalIntDisplay order in the UI

Enums

AllergenType

FDA Big 9 allergens.
enum AllergenType {
  DAIRY
  EGG
  FISH
  SHELLFISH
  TREE_NUT
  PEANUT
  WHEAT
  SOY
  SESAME
}
ValueDescription
DAIRYMilk and milk products
EGGEggs and egg products
FISHFish (cod, salmon, etc.)
SHELLFISHShellfish (shrimp, crab, etc.)
TREE_NUTTree nuts (almonds, walnuts, etc.)
PEANUTPeanuts
WHEATWheat and wheat products
SOYSoy and soy products
SESAMESesame seeds

DietType

Dietary classifications.
enum DietType {
  VEGAN
  VEGETARIAN
  PESCATARIAN
}
ValueDescription
VEGANNo animal products
VEGETARIANNo meat or fish
PESCATARIANFish but no meat

MatchStatus

Result of matching dish against preferences.
enum MatchStatus {
  MATCH
  ALMOST_MATCH
  NOT_MATCH
}
ValueDescription
MATCHFully meets all preferences
ALMOST_MATCHPartial match with exceptions
NOT_MATCHDoes not meet critical preferences

Input Types

PreferencesInput

Dietary preferences for filtering.
input PreferencesInput {
  diets: [DietType!]
  excludeAllergens: [AllergenType!]
  excludeIngredients: [String!]
  includeIngredients: [String!]
  calorieRange: RangeInput
  nutrientRanges: NutrientRangesInput
  nutrientPreferences: [NutrientPreference!]
}

RangeInput

Numeric range for filtering.
input RangeInput {
  min: Int
  max: Int
}

NutrientRangesInput

Nutrient-specific ranges.
input NutrientRangesInput {
  protein: RangeInput
  carbohydrates: RangeInput
  fatTotal: RangeInput
}

PaginationInput

Cursor-based pagination.
input PaginationInput {
  first: Int    # Number of results (max 100)
  after: String # Cursor from previous page
}

StartSessionInput

Session initialization parameters.
input StartSessionInput {
  """
  Partner guest identifier.
  """
  guestId: String

  """
  EveryBite Passport identifier.
  """
  passportId: String

  """
  Guest email address.
  """
  email: String
}

Response Types

SearchResult

Search results with grouped matches.
type SearchResult {
  matches: [SearchMatch!]!
  almostMatches: [SearchMatch!]!
  notMatches: [SearchMatch!]!
  counts: SearchCounts!
  pageInfo: PageInfo!
}

SearchMatch

Individual dish with match status.
type SearchMatch {
  dish: Dish!
  matchStatus: MatchStatus!
  matchReasons: [String!]
}

SearchCounts

Summary counts for search results.
type SearchCounts {
  matches: Int!
  almostMatches: Int!
  notMatches: Int!
  total: Int!
}

PageInfo

Pagination information.
type PageInfo {
  hasNextPage: Boolean!
  hasPreviousPage: Boolean!
  startCursor: String
  endCursor: String
}

SmartMenuFilterOptions

Available filter options for a chain’s SmartMenu widget.
type SmartMenuFilterOptions {
  diets: [WidgetDietaryPreference!]!
  allergens: [WidgetAllergen!]!
  nutrients: [SmartMenuNutrientPreference!]!
}

Session

Session initialization response.
type Session {
  """
  Stable, server-generated session identifier.
  """
  sessionId: String!
}

Scalar Types

DateTime

ISO 8601 date-time string.
"2026-01-19T11:00:00.000Z"

ID

Unique identifier (string format).
"dish_001"
"nutr_abc123"