Skip to main content
When a guest taps on a menu item, they expect the full picture: complete nutrition facts, allergen warnings, and dietary badges. The dish query returns a single dish by ID with all the fields you need to build a rich detail view.

Query

query GetDish {
  dish(id: "DISH_ID") {
    id
    name
    description
    imageUrl
    nutrition {
      caloriesTotal
      caloriesFromFat
      fatTotal
      fatSaturated
      fatTrans
      cholesterol
      sodium
      dietaryFiber
      carbohydrates
      sugar
      protein
      vitaminA
      vitaminC
      calcium
      iron
    }
    servingSize
    servingSizeInGrams
    createdAt
    updatedAt
    isCustomizable
    cuisines {
      id
      name
      parent {
        id
        name
      }
    }
    allergens {
      id
      name
      description
      confidence
    }
    diets {
      id
      name
      description
      confidence
    }
    preparationTypes {
      id
      name
      confidence
    }
    styles {
      id
      name
      description
      confidence
    }
    addedIngredients {
      id
      name
      brand
      description
      supplier
      amountGrams
      containsEgg
      containsFish
      containsMilk
      containsSesame
      containsShellfish
      containsWheat
      containsPeanut
      containsSoy
      containsTreeNut
    }
    menu {
      id
      name
    }
    originalCategoryName
  }
}
This query requires an API key scoped to your chain in the Authorization header. Optionally include X-Session-ID for analytics; you do not pass chain or session in the GraphQL query itself.

Parameters

ParameterTypeRequiredDescription
idIDYesOpaque EveryBite dish ID returned by the API.

Response Types

Dish

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
}

DishNutrition

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
}

Example

query DishExample {
  dish(id: "DISH_ID") {
    id
    name
    description
    originalCategoryName
    nutrition {
      caloriesTotal
      protein
      fatTotal
    }
    allergens {
      id
      name
      confidence
    }
    diets {
      id
      name
    }
  }
}
{
  "data": {
    "dish": {
      "id": "dish_001",
      "name": "Seasonal Harvest Salad",
      "description": "Mixed greens, candied pecans, goat cheese, dried cranberries, citrus vinaigrette",
      "originalCategoryName": "Salads",
      "nutrition": {
        "caloriesTotal": 400,
        "protein": 25,
        "fatTotal": 18
      },
      "allergens": [
        { "id": "allergen_dairy", "name": "Dairy", "confidence": 1.0 },
        { "id": "allergen_tree_nut", "name": "Tree Nut", "confidence": 1.0 }
      ],
      "diets": [
        { "id": "diet_vegetarian", "name": "Vegetarian" }
      ]
    }
  }
}