Technical Docs
  • Introduction
  • Guides
    • Getting Started
    • Attribution Guidelines
    • Core Concepts
      • Adherence Score
      • Programs, Diets, and Rulesets
      • User Profile
      • Datasets
    • Tutorials and Walkthroughs
      • Creating a Meal Plan
      • Food Log Guide
      • Pagination
      • Executing Multiple Mutations
  • Knowledge Base
    • How-to guides
      • How to add desserts to your meal plan
      • How to log your custom recipe
      • How to generate a Meal Plan based on a template
    • Common errors
      • Meal Plan generation
    • FAQs
      • Getting Started on Suggestic
      • API and Authentication
      • Device Compatibility
      • Meal Plan
      • Nutrition
      • Programs
      • Recipes
  • HELPFUL RESOURCES
    • Deprecated Features
    • Glossary
    • Integrations
      • Building a No-code Meal Planning Application
        • Step 1: Creating the Integromat Scenario and Google Forms Connection
        • Step 2: Creating a User, Generating a Meal Plan, and Retrieving It
        • Step 3: Crafting Our PDF and Connecting PDFMonkey
        • Step 4: Sending The Document to Our User
  • Packages and SDKs
    • Node Package (NPM)
  • GraphQL
    • GraphQL Overview
    • Authentication
    • Calling GraphQL
    • GraphQL Playground
  • Changelog
    • 2025
      • March
  • Suggestic API Reference
    • Search
      • Food Log
        • Branded Foods Search
        • Common Foods Search
        • My Branded Food Search
        • My Common Foods Search
        • Food Search
        • Legacy
          • Autocomplete
          • Barcode Search
      • Recipe Search
        • Recipe Search
        • Recipe Search by Name or Ingredients
        • Recipe Search by Ingredients
      • Meal Plan Template Search
      • Profile Search
      • Restaurant Search
        • Restaurant Search by Location
        • Restaurant Search
    • Queries
      • Appointments
        • Upcoming Appointments
        • Past Appointments
        • Appointments Types
      • Assessments
        • Assessment Answers
        • Display Assessments
        • Supplement Recommendations
        • User Assessments
      • Content
        • Content Library
        • Content Categories
        • Content Tags
        • Journey
      • Food Log
        • Frequently Logged
        • Food Log Entries
        • Macros Aggregation
        • Micronutrients Aggregation
        • Macro Goals
        • Recently Logged
        • User's Foods and Recipes
          • User's Recipes
        • Legacy
          • Food Log Entries (Legacy)
          • Own Food Items
          • Own Food Item
          • Own Food Item by Id
          • Own Items
          • Own Recipe
          • Own Recipes
      • Lab Tests
        • Biomarker Categories
        • Biomarker Units
        • Biomarker Catalog
        • Biomarkers
        • Biomarker Results
        • Historical Biomarker Results
        • Historical Results by Biomarker
        • Lab Test Reports
        • Recommended Supplements
        • Recommended Articles
      • Meal Plan
        • Meal Plan
        • Custom Meal Plan
        • Simplified Meal Tracking
          • Meal Tracker
        • Meal Plan Config
        • Meal Planner (deprecated)
      • Program
        • All Programs
        • Program Details
      • Recipes
        • Equivalent Recipes (Macros)
        • Equivalent Recipes (Calories)
        • Recipe by Id
        • Recipes By MealTime
        • Recipes By Tag
        • Recipe Swap Options
        • Popular Recipes
        • Favorite Recipes
        • Premium Program Recipes
      • Restaurants
        • Restaurant By Id
        • Menu Items
        • Menu Item By Id
        • Menu Item by Program
        • Recommend Menu Items
      • Restrictions
        • Restrictions
        • Restriction by ID
      • Shopping List
        • Shopping List by Aisle
        • Shopping List by Recipes
      • Subscriptions
        • Subscription List
      • Supplement Plans
        • Supplement plan list
        • Supplement list
      • Tracking
        • Activity and Exercise
        • Checklists
          • Intake Checklist
        • Daily Recap
          • Get Daily Recap
          • Get Daily Recaps
          • Get Daily Recap Questions
          • Get Daily Mood Summary
        • Inisghts
        • Wellness Score
        • Sleep
          • Sleep Time
          • Sleep Quality Score
        • Steps
        • Water and Hydration
        • Heart Rate
        • HRV
        • Weight Tracker
      • USDA Food
      • Users
        • Users
        • User Profile
      • WGPT
        • Assistants
        • Journey
        • Guardrails
    • Mutations
      • Appointments
        • Update Appointment Credits
      • Assessments
        • New User Assessments
        • Set User Answers
      • Content
        • Mark Content as Read
      • Feedback
      • Food Log
        • Log Entries
          • Food Log
            • Add a Food Log Entry
            • Delete a Food Log Entry
          • Meal Log (Legacy)
            • Create Log Entry
            • Update Log Entry
            • Remove Log Entry
        • User's Foods and Recipes
          • Create a User Recipe
          • Create my Branded Food
          • Create my Common Foods
          • Update a User Recipe
          • Delete a User Recipe
          • Legacy: "Own" Recipe
            • Create "Own" Recipe
            • Update "Own" Recipe
            • Remove "Own" Recipe
        • AI Food Log
          • Process Ai Food
        • Legacy (ownFoods and ownRecipes)
          • Create "own" Food Item
          • Update "own Food"
          • Remove "own" Food Item
      • Journey Status
        • Start Journeys
        • Journey Status
        • Toggle Task Completed
      • Lab Tests
        • Add Biomarker
        • Update Biomarker
        • Add Biomarker Result
        • Add Biomarker Category
        • Update Biomarker Category
        • Remove Biomarker Category
        • Add Lab Test Report
        • Delete Lab Test Report
        • Update Lab Test Report
        • Create Recommended Supplement
        • Update Recommended Supplement
        • Remove Recommended Supplement
        • Create Recommended Article
        • Update Recommended Article
        • Remove Recommended Supplement
      • Meal Plan
        • Create Meal Plan Template
          • Custom Options
          • From Days
          • From Scratch
        • Assign a Meal Plan Template to a User
        • Generate Simple Meal Plan
        • Generate Meal Plan
        • Start Over Meal Plan
        • Swap Meals
        • Simplified Meal Tracking
          • Create a Meal Tracker Entry
        • Remove Meal Plan
        • Remove Meal Plan Recipe
      • Recipes
        • Add new recipe
        • Add Favorite Recipe
      • Shopping List
        • Add Multiple Recipes to the Shopping List
        • Add a Recipe to the Shopping List
        • Bulk Check/Uncheck Items
        • Check/Uncheck an Item
        • Clear Checked Items
        • Clear Shopping List
        • Remove Recipe
        • Update Serving Number
      • Subscriptions
        • Update Subscription
      • Supplement Plans
        • Create supplement plan for user
        • Update user supplement plan
        • Add Supplement
        • Update Supplement
      • Tracking
        • Activity and Exercise
          • Add Exercise Entry
          • Delete Exercise Entry
        • Checklists
          • Create my Checklist Item
          • Delete my Checklist Item
        • Daily Recap
          • Create a daily recap question
          • Select Daily Recap Questions
          • Delete a Daily Recap Question
        • Sleep
          • Add Sleep Time
          • Add Sleep Quality Score
        • Steps
          • Add Steps Count
          • Delete Steps Count
        • Heart Rate
          • Add Heart Rate
          • Delete Heart Rate
        • HRV
          • Add HRV
          • Delete HRV
        • Water and Hydration
        • Weight
          • Add Weight Entry
          • Remove Weight Entry
        • User Tracker Goals
          • Create User Goal
          • Update User Goal
          • Remove User Goal
      • Users
        • Authenticate using a Magic Link
        • Create User
        • Custom Attributes
        • Delete a User Account
        • Login User
        • Merge User Accounts
        • Request Reset Password
        • Reset Password
        • Request Password Reset email
        • Sensitive Profile Attributes
        • Update Profile
        • Update User's Program
        • User's Restrictions
        • Update Meal Plan Settings
        • User's Goals
        • Legacy User Mutations
          • Legacy | User's Biomarkers
          • User's Meal Plan Settings (deprecated)
      • WGPT
        • Add user to journey
  • Objects
    • Appointments
      • Appointment
      • Appointment Type
      • Appointment Credit
      • Attendee
      • Coach
    • Common
      • User
      • Adherence
      • Aisle Name
      • CPC
      • CPCIngredientGroup
      • Meal Times
      • Menu Item
      • Own Serving
      • Own Nutrients
      • MacroNutrientsRangeInput
      • Range
      • Tracker
      • Restaurant
    • Food Logs
      • Food Filter
      • Ingredient Amount
      • Ingredients
      • Own Recipe Ingredient
      • Meal Type
      • Nutrients
        • Nutrient Enum
      • Portions
      • Servings
      • AI Food Log
        • Food Analysis
    • Meal Plan
      • Debug Meal Plan Conditions
      • Meal
      • Meal Plan Day
      • Maximum Time per Meal
      • Maximum Ingredient Count
      • Meal Plan Template
      • Simple Meal Plan Filters
    • Recipe
      • Recipe
        • Tags
        • Cuisines
      • Recipe Swap Options
      • Parsed Ingredient Lines
      • Nutritional Info
      • Nutrients Per Serving
      • Calories Per Serving
      • Relative Calories
      • Source
      • Ingredients
      • Units of Measurement
    • Lab Tests
      • Article
      • Biomarker
    • Supplement
    • Assessments
      • Question
      • Answer
    • Content
      • Content Library
      • Content Categories
      • Content Tag
    • WGPT
      • Journey
      • dayJourney
      • Interaction
  • Case Studies
    • Reverse Health Case Study
Powered by GitBook
On this page
  • Getting Started
  • Dates
  • Meal Plan Lock
  • Customization and configuration
  • Common Errors
  • More about meal plans

Was this helpful?

  1. Guides
  2. Tutorials and Walkthroughs

Creating a Meal Plan

Step by step guide for creating a meal plan

PreviousTutorials and WalkthroughsNextFood Log Guide

Last updated 1 year ago

Was this helpful?

Before starting, you'll need to have a user created. Follow to create one.

Getting Started

Suggestic meal plan API finds the best recipes for your user's dietary plan according to their food preferences and goals. The API has different services and parameters that let you specify how these meal plans are generated.

Let's start by generating a simple meal plan using the generateSimpleMealPlan mutation.

curl -XPOST 'https://production.suggestic.com/graphql' \
  -H 'Authorization: Bearer <User-JWT>' \
  -H 'Content-Type: application/json' \
  --data-raw '{"query":"mutation { generateSimpleMealPlan { success message } }","variables":{}}'
{
    "data": {
        "generateSimpleMealPlan": {
            "success": true,
            "message": "Meal plan was successfully created"
        }
    }
}

Remember to replace <User-JWT> with your user's access token

Once the meal plan is created, you can request the meal plan using the mealPlan query.

curl -XPOST 'https://production.suggestic.com/graphql' \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer Bearer <User-JWT>' \
  --data-raw '{"query":"{ mealPlan { day date calories meals { meal recipe { name } } } }"}'
{
  "data": {
    "mealPlan": [
      {
        "day": 7,
        "date": "2021-03-15 02:00:00+00:00",
        "calories": 1966.93596472514,
        "meals": [
          {
            "meal": "breakfast",
            "recipe": {
              "name": "Chocolate Collagen Keto Granola"
            }
          },
          {
            "meal": "dinner",
            "recipe": {
              "name": "Pan-Seared Salmon And Roasted Vegetables"
            }
          },
          {
            "meal": "lunch",
            "recipe": {
              "name": "Layered Bean Dip"
            }
          },
          {
            "meal": "snack",
            "recipe": {
              "name": "Celery With Cream Cheese"
            }
          }
        ]
      },
      [...]
      {
        "day": 1,
        "date": "2021-03-09 02:00:00+00:00",
        "calories": 2028.06644439517,
        "meals": [
          {
            "meal": "breakfast",
            "recipe": {
              "name": "Scotch Eggs"
            }
          },
          {
            "meal": "dinner",
            "recipe": {
              "name": "Turmero Onion Burgers"
            }
          },
          {
            "meal": "lunch",
            "recipe": {
              "name": "Herb-Seasoned Sheperd'S Pie"
            }
          },
          {
            "meal": "snack",
            "recipe": {
              "name": "Seasoned Roasted Carrots"
            }
          }
        ]
      }
    ]
  }
}

The generateSimpleMealPlan mutation doesn't require any arguments. It generates a 7-days meal plan that complies with the user's program and preferences.

As you can see in the last response, generateSimpleMealPlan has series of default values, for example, each day has breakfast, lunch, dinner, and a single snack, with a daily caloric goal of 2000 kcal.

If you need more control over these settings, please review the mutation.

Dates

Suggestic meal plan API always generates a 7-day plan.

Each day of the plan has a date. Day 1 has the date when the meal plan was generated, day 2 has the next date, and so on.

Meal Plan Lock

By default, generateSimpleMealPlan and generateMealPlan put a lock that stops the user from generating a new meal plan if one is in progress. In other words, a user can't generate a new meal plan if the current one still has dates in the future.

If you try using generateSimpleMealPlan, while a meal plan is in progress, you'll get the following response:

curl -XPOST 'https://production.suggestic.com/graphql' \
  -H 'Authorization: Bearer <User-JWT>' \
  -H 'Content-Type: application/json' \
  --data-raw '{"query":"mutation { generateSimpleMealPlan { success message } }","variables":{}}'
{
    "data": {
        "generateSimpleMealPlan": {
            "success": false,
            "message": "User has a meal plan in progress."
        }
    }
}

To bypass the lock, send the argument ignoreLock: true .

curl -XPOST 'https://production.suggestic.com/graphql' \
  -H 'Authorization: Bearer <User-JWT>' \
  -H 'Content-Type: application/json' \
  --data-raw '{"query":"mutation { generateSimpleMealPlan(ignoreLock: true) { success message } }","variables":{}}'
{
    "data": {
        "generateSimpleMealPlan": {
            "success": true,
            "message": "Meal plan was successfully created"
        }
    }
}

Customization and configuration

You can think of meal plan generation as a two stages process.

In the first stage, the planner finds a set of recipes that are good candidates for a personalized meal plan. These recipes are a good choice according to the user's restrictions, dietary program, and custom attributes. This is the customization stage.

You can learn more about how to set users personal restrictions, subscribing users to programs, and setting their custom attributes as follows:

How to apply restrictions to a meal plan

Restrictions can be added in the following scenarios:

  • Before generating a meal plan: Define which restrictions you need to apply, and then the meal plan is generated based on the applied restrictions.

  • During a meal plan in progress: It may be the case where new restrictions need to be applied to the meal plan in progress. In this case, apply these new restrictions and generate the meal plan again.

If the meal plan is finished by the time the restrictions are set, a new 7 day meal plan will be generated where these new restrictions will be applied.

How to subscribe users to a specific program

To add a program, update the User Program and then generate the meal plan.

How to add custom attributes

The second stage is configuration. Configurations are sent to the meal planner in each query as parameters and are used to sort and group the recipes into daily plans. This includes grouping constraints, like setting the daily caloric goals, the number of snacks per day, or the minimum serving weight in grams per meal.

You can change configurations and customize as much as you need depending on your app and use cases.

Common Errors

When users have too many restrictions and the meal plan is not capable of generating a whole week of the meal plan, the following error is displayed:

"generateMealPlan":
 { 
    "success": false,
    "message": "Couldn't generate a meal plan with the current settings."
 }

This error may appear due to:

  • The type of subscription.

  • The user program.

More about meal plans

Refer to the page.

Refer to the page.

Refer to the page.

Learn more about these configurations in the generateMealPlan .

There is a problem with the definition of macro values. Check your

For more information, refer to .

Read about user , , and to customize a meal plan.

Meal plans are not automatically generated when a user's program, restrictions, or attributes change. Read more about keeping a meal plan updated on the generateMealPlan .

The mealPlan response can include fields that are not used here to keep the examples simple. See a full list of fields on the page.

Take a look at the query. It lets you request meal plans without assigning them to the user. You can request as many as you need and can help you find the configuration that works best for your app and use cases.

this guide
Generate Meal Plan
User's Restrictions
User's Program
User's Custom Attributes
page
user's meal plan settings
this documentation
restrictions
programs
custom attributes
page
meal plan query
custom meal plan