Skip to main content

Platform Architecture

EveryBite is a nutrition intelligence platform that sits between restaurants and the applications guests use. We ingest nutrition data from multiple sources, process it with AI/ML, and serve it through APIs that power personalized dining experiences. This page walks through the architecture from top to bottom, starting with a high-level view and then drilling into each layer.
About these diagrams: The integrations shown (e.g., Olo, Thanx, PAR) are examples of supported platforms. Not all integrations are live for every deployment. Contact your EveryBite representative for current availability.

High-Level Overview

At its simplest, the EveryBite platform has five layers:

Layer 1: Consumers

Upstream: End users (guests, restaurant staff)Downstream: SmartMenu APIData Out: GraphQL queries, session IDs, guest preferences, search filters
Who uses EveryBite? Two types of consumers access the platform:

AI Agents

Large language models and conversational AI that help guests find food through natural language:
  • “Find me something vegan under 500 calories”
  • “What can I eat here if I’m allergic to peanuts?”
  • “Show me high-protein options”
AI agents connect through AI Tools, built on the Model Context Protocol (MCP). This provides tool definitions, context management, and session handling, allowing AI to call our APIs conversationally without building custom integrations.

Partner Apps

Traditional mobile and web applications built by our partners (ordering platforms, loyalty providers, restaurant chains). These connect directly to the SmartMenu API (GraphQL) with full control over queries and data fetching. Key difference: AI agents use MCP for conversational access. Partner apps use GraphQL for programmatic access. Both hit the same underlying SmartMenu API.

Layer 2: SmartMenu API

Upstream: Consumers (AI agents, partner apps)Downstream: EveryBite Platform (Core Services)Data In: GraphQL queries with filters (diets, allergens, calories), session IDs, chain IDsData Out: Dish results with match scores, nutrition panels, allergen lists, category counts
The single interface to all EveryBite data. The SmartMenu API is a GraphQL endpoint that serves two types of queries:

Initialization Queries

Called once when your app loadsallergens · diets · categories · nutrients

Runtime Queries

Called as users interactdishes · dishesCount · dishDetail

Initialization Queries

Called once when your app loads to populate filter UI. Key examples:

Runtime Queries

Called as users interact with your app. Key examples:
See the SmartMenu API Reference for the complete list of available queries and mutations.

Match Scoring

Every dish returned includes a matchStatus calculated against the guest’s preferences:

Layer 3: EveryBite Platform

Upstream: SmartMenu API (queries)Downstream: Data Platform (reads from database)Data In: Parsed GraphQL queries, session context, filter criteriaData Out: Personalized dish lists, calculated match scores, nutrition data, allergen classifications
Where data becomes personalized. The platform layer contains the core services that power personalization:

Core Services

Session & Personalization Engine


Layer 4: Data Platform

Upstream: Data Sources (external systems), EveryBite Platform (read requests)Downstream: Database (writes), Platform Services (reads)Data In: Raw nutrition files, PDF documents, API feeds from ordering/loyalty systems, manual correctionsData Out: Standardized dish records, validated nutrition panels, allergen classifications, diet tags
The engine behind accurate, real-time nutrition data. The Data Platform ingests data from ordering systems, nutrition providers, and loyalty platforms—then uses AI/ML to match, classify, and validate everything into a unified database. Each data source has its own dedicated pipeline: Each data source flows through its own pipeline into the unified database.
Potential Future Additions: Health Apps (Apple Health, Fitbit) for personalized nutrition goals, and Inventory for real-time availability.

Ordering Pipeline

The ordering system is the source of truth for what guests can actually order. We sync menu items, categories, modifiers, and real-time availability so nutrition data only appears for items that are actually on the menu. How it works:
  • LLM matching links ordering items to nutrition data (95%+ accuracy)
  • Unmatched items are flagged as exceptions and published to the Developer Portal
  • Partners review exceptions and update item names in their ordering system and/or nutrition solution
  • Changes sync automatically on the next data pull

Nutrition & Allergens Pipeline

This is where the magic happens. We ingest nutrition data from multiple sources, use AI/ML to classify allergens and diet tags, and link everything to the menu items guests are ordering. The result: accurate, actionable nutrition information for every dish. All data flows through our seven-layer ingredient hierarchy: Menu → Dish → Recipe → Prep Recipe → Ingredient → Ingredient Data → Ingredient Specification. This deep structure is how we trace allergens through house-made components and deliver precise nutrition calculations. AI/ML Processing:
  • NLP extraction to parse ingredients (92%+ accuracy)
  • Allergen classifiers to detect FDA Big 9 (98%+ accuracy)
  • Diet tagging for Vegan/Vegetarian/Pescatarian (97%+ accuracy)

Loyalty Pipeline

Loyalty data helps us understand guests before they even set preferences. With consent, we use purchase history and stated preferences to personalize recommendations from the first interaction—and for new guests, behavioral modeling provides intelligent defaults. AI/ML Processing:
  • Audience segmentation and cohort analysis
  • Behavioral modeling for new guest personalization
  • Industry trends across platforms (app vs kiosk vs web)
  • Hot/cold insights: what’s trending, what’s declining

Pipeline Stages

Every pipeline follows the same journey from raw data to API-ready intelligence. This consistency ensures data quality and makes it easy to add new data sources as we grow.

Layer 5: Data Sources

Upstream: Restaurant operations, third-party providers, government databasesDownstream: Data Platform (ingestion)Data In: Restaurant menus, POS item catalogs, nutrition lab reports, customer loyalty dataData Out: Menu structures, nutrition facts, allergen declarations, purchase patterns
External systems that feed the platform. Data flows INTO EveryBite from three categories of external systems:

Ordering Systems

What they provide: Menu structure, item availability, pricing, location data

Loyalty Platforms

What they provide: Customer preferences, purchase history (with consent)

Nutrition Providers

What they provide: Nutrition facts, allergen classifications, ingredient lists

Key Architectural Principles

No Caching Policy

Partners must not cache API responses. Allergen data can change at any time, and stale data poses a health risk. We handle caching internally so you don’t have to.

Source of Truth

The ordering system (e.g., Olo) is the source of truth for availability. SmartMenu never returns dishes that aren’t in your system.

Exact Matching

Dishes are matched by name between ordering systems and our nutrition database. Mismatches appear in exception reports.

Session-Based

Preferences are applied per-session, not stored permanently (unless using Passport). Every request requires a session ID.

Detailed Layer Breakdown

AI Agents

AI-powered assistants that can interact with restaurant menu data through natural language. These include: AI agents connect via AI Tools, built on the Model Context Protocol (MCP), which provides tool definitions and context management for seamless integration.

Integration Layer

Two paths to integrate with EveryBite:

Option A: MCP Integration

For AI-powered applicationsUse the Model Context Protocol to give your AI agents access to menu data, nutrition information, and dietary filtering.
  • Tool definitions for common operations
  • Context management across conversations
  • Session handling built-in

Option B: GraphQL Direct

For traditional applicationsCall the SmartMenu API (GraphQL) directly from your mobile app, web app, or backend services.
  • Full control over queries
  • Flexible data fetching
  • Standard HTTP integration

SmartMenu API

The primary interface for accessing EveryBite data. Built on GraphQL, it provides:

Initialization Queries

Load filter options when your app starts:

Runtime Queries

Fetch personalized menu data:

Match Scoring

Every dish is scored against the guest’s preferences:
  • MATCH - Safe for the guest’s dietary needs
  • ALMOST_MATCH - Minor conflicts (e.g., can be modified)
  • NOT_MATCH - Does not meet preferences

EveryBite Platform

The core services that power personalization:

Data Platform

Where nutrition data is ingested, processed, and stored:

Ingest Sources

AI/ML Processing

Machine learning models that enhance and classify data:

Pipelines


External Systems

Data flows INTO the EveryBite platform from:

Ordering Systems

  • Olo
  • PAR
  • Toast (coming soon)
  • Square (coming soon)
Provides menu availability, pricing, item IDs

Loyalty Platforms

  • Spendgo
  • Thanx (in progress)
  • Punchh (coming soon)
Provides customer preferences, purchase history

Nutrition Providers

  • MenuCalc
  • Trustwell
  • USDA
Provides nutrition facts, allergen data

Next Steps

Quickstart

Make your first API call

Authentication

Set up API keys and headers

Core Concepts

Understand the data model

SmartMenu API

Full API documentation