Dishes
The name and the description of a dish
A dish title is delivered as two fields:
name— the name of the dish, e.g.Seitan Döner Tellerdescription— its components, rendered below the name, e.g.Rotkohl Salat Zwiebeln, Cocktail Sauce. It isnullfor dishes that have no components.
Both are translated: name and description return the language of the
request, while name_i18n / description_i18n return every language.
These used to be a single, comma-separated string in name. If you rely on
that older format, ask for it explicitly with name(mode: LONG):
{
dish(where: { id: "…" }) {
name # Seitan Döner Teller
description # Rotkohl Salat Zwiebeln, Cocktail Sauce
# asking for the same field twice needs an alias
fullTitle: name(mode: LONG) # Seitan Döner Teller, Rotkohl Salat Zwiebeln, Cocktail Sauce
}
}
mode accepts SHORT (the name alone) and LONG (name and description
joined with , ). It works on name_i18n and name_i18n_json too.
API clients that existed before this change still receive the joined title
from a plain name, so nothing broke for them. Pass mode explicitly to be
independent of that setting — name(mode: SHORT) is the recommended way to
move over one query at a time. Get in touch once you no longer need the old
format, and we will switch the default for your client.
Fetching dishes for a specific menu category
You can fetch the queries for a specific menu category.
Parameters
$outletId: The ID of the outlet to fetch the menu categories for.$categoryId: The ID of the menu category to fetch the offers for.
Query
query GetDishesForMenuCategory($outletId: String!, $categoryId: String!) {
outlet(where: { id: $outletId }) {
calendar {
week {
menuCategory(categoryId: $categoryId) {
category {
name
}
daily {
date {
dateLocal
weekday
}
menuItems {
category {
name
}
... on OutletMenuItemDish {
dish {
name
description
imageUrl
allergens {
allergen {
name
}
}
isVegan
isVegetarian
}
}
}
}
}
}
}
}
}
Graphiql
Fetching all dishes in all categories
This query returns all dishes in all categories for a specific outlet.
Parameters
outletId: The ID of the outlet to fetch the menu categories for.$categoryId: The ID of the menu category to fetch the offers for.
Query
query GetAllDishesForOutlet($outletId: String!) {
outlet(where: { id: $outletId }) {
calendar {
week {
menuCategory(categoryId: $categoryId) {
category {
name
}
daily {
date {
dateLocal
weekday
}
menuItems {
category {
name
}
... on OutletMenuItemDish {
dish {
name
description
imageUrl
allergens {
allergen {
name
}
}
isVegan
isVegetarian
}
}
}
}
}
}
}
}
}
Graphiql
Fetching for weeks
You can fetch the menus or dishes for a whole Week. A week starts from Monday to Sunday.
Next/Previous week
Parameters
outletId: The ID of the outlet to fetch the menu categories for.week: (optional) The week to fetch. Can benext,prev,prev2or a specific week like13for the 13th week of the year.year: (optional) The yearYYYY.
Query
next week
query GetNextWeek($outletId: String!) {
outlet(where: { id: $outletId }) {
calendar {
week(week: "next") {
...
}
}
}
}
last week
query GetPrevWeek($outletId: String!) {
outlet(where: { id: $outletId }) {
calendar {
week(week: "prev") {
...
}
}
}
}
two weeks ago
query GetPrev2Week($outletId: String!) {
outlet(where: { id: $outletId }) {
calendar {
week(week: "prev2") {
...
}
}
}
}
specific week
query GetWeek($outletId: String!, $week: String!, $year: String!) {
outlet(where: { id: $outletId }) {
calendar {
week(week: $week, year: $year) {
...
}
}
}
}
Graphiql
fetching additional weekly infos
You can fetch additional weekly infos for a specific outlet.
Parameters
outletId: The ID of the outlet to fetch the weekly infos for.
Query
query GetWeeklyInfos($outletId: String!) {
outlet(where: { id: $outletId }) {
calendar {
week {
info {
info
validFrom
validTo
}
}
}
}
}
Graphiql
Allergens
Allergens on Dish
On each Dish menu item you get all allergens this dish contains:
List all Allergens
To list all allergens you can use the following query: