Skip to main content

Menu API

The Menu API gives you access to restaurant menu data with powerful search, filtering, and nutrition calculation capabilities.

What You Can Do

Data Objects

The Menu API returns these core objects:
ObjectDescriptionDetails
DishA menu itemName, description, image, nutrition, allergens, diets
NutritionNutrition factsCalories, macros, vitamins, minerals
RestaurantA locationAddress, hours, coordinates, menus
CategoryMenu groupingStir-Fry, Salads, Drinks, etc.

Quick Example

Fetch dishes with dietary filters:
query GetFilteredDishes {
  dishes(
    menuKey: "your_menu_key",
    filters: {
      diets: [Vegan],
      excludeAllergens: [Peanut, Dairy],
      calorieRange: { max: 600 }
    },
    pagination: { first: 20 }
  ) {
    results {
      dish {
        id
        name
        calories
        imageUrl
        allergens { type, displayName }
      }
      matchStatus
    }
    counts {
      matches
      partialMatches
      notAMatch
    }
  }
}

Workflow

A typical integration follows this pattern:
1

Fetch Filter Options

Get available diets, allergens, nutrients, and categories for your menu.
query { filterOptions(menuKey: "...") { ... } }
2

Build Filter UI

Create toggles, checkboxes, and sliders based on available options.
3

Query Dishes

Fetch dishes with the diner’s selected filters.
query { dishes(menuKey: "...", filters: {...}) { ... } }
4

Display Results

Show dishes with match status, nutrition, and allergen warnings.
5

Handle Customization

For build-your-own dishes, use the Nutrition Calculator for real-time updates.

Authentication

All Menu API requests require a Menu Key:
Authorization: Bearer your_menu_key
See Authentication for details on key types and access levels.

Endpoints

EndpointProductionSandbox
GraphQLhttps://api.everybite.com/graphqlhttps://api.everybite-stage.com/graphql

Rate Limits

Key TypeRequests/minRequests/day
Restaurant6010,000
Chain300100,000
Brand1,000Unlimited

Next Steps