LogMeal Recipe and Dish Recommendations API
Endpoints related to the APIUser's recipe and dish recommendations services.⚡ Recommend plan or above ⚡
Endpoints related to the APIUser's recipe and dish recommendations services.⚡ Recommend plan or above ⚡
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/logmeal:logmeal-recipe-and-dish-recommendations-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
version: 2.1.0
title: Food AI Engine API Documentation Recipe and Dish…
description: Please, refer to https://docs.logmeal.com to find the most up-to-date version of the Food AI Engine API documentation.
contact:
email: support@logmeal.com
servers:
- url: https://api.logmeal.com
description: Production
tags:
- name: Recipe and Dish Recommendations
description: 'Endpoints related to the APIUser''s recipe and dish recommendations services.
⚡ Recommend plan or above ⚡'
externalDocs:
url: https://docs.logmeal.com/docs/guides-features-recipe-and-dish-recommendation#/
paths:
/v2/recommend/dish:
get:
tags:
- Recipe and Dish Recommendations
summary: 🔴 Get dish recommendation for an APIUser. ⏱⭐
description: '© Consumes your monthly credits. Limited amount of monthly calls, exceeding calls will be charged as extras.
(S) Limited amount of calls per second.
Returns LogMeal dish IDs personalized for the authenticated APIUser.
Candidate dishes are first generated using the existing food-group and Variety Score logic. The candidates are then personalized using the user''s configured food restrictions and preferences, remaining daily nutritional targets, active nutritional plan, and recently consumed dishes.
High-confidence conflicts with configured hard restrictions can exclude a dish. The other available signals re-rank the remaining candidates. If a personalization signal cannot be resolved for a candidate or user, the remaining available signals continue to be used; the food-group/Variety Score candidate-generation stage remains the baseline.
When no custom nutritional goal exists for a tracked nutrient, the recommendation logic can use the user''s calculated recommended daily intake as the target.
The endpoint returns up to 8 dish IDs. The final selection includes controlled randomization among the highest-ranked candidates, so clients should not rely on the exact order being deterministic between equivalent calls.
Use `GET /v2/dataset/dishes` to retrieve information about the returned dish IDs.'
parameters:
- in: query
name: score_type
schema:
type: string
enum:
- nutri_score
default: nutri_score
example: nutri_score
description: 'Optional score used by the existing Variety Score / food-group candidate-generation stage.
Currently the only accepted value is `nutri_score`. When omitted, `nutri_score` is used.
'
- in: query
name: date_from
schema:
type: string
format: date
example: '2026-10-01'
description: 'Start date of the intake-history period considered by the recommendation logic, in `YYYY-MM-DD` format.
When omitted, the API uses a 7-day lookback ending at the current time in the APIUser''s timezone.
'
- in: query
name: occasion
schema:
type: string
example: breakfast
description: 'Optional meal occasion. Default occasions include `breakfast`, `lunch`, `dinner`, and `snack`.
When omitted, the recommendation can use all available food groups.
'
- in: query
name: food_groups
schema:
type: string
example: '[6, 4]'
description: 'Optional bracketed list of food-group IDs to use during Variety Score candidate generation, for example `[6, 4]`.
When omitted, food groups are selected from the occasion; if no occasion is provided, all default recommendation food groups are considered.
Available food groups can be retrieved through `GET /v2/dataset/foodgroups`.
'
responses:
'200':
description: Successful response
content:
application/json:
schema:
type: object
required:
- recommended_dishes
properties:
recommended_dishes:
type: array
maxItems: 8
items:
type: integer
example:
- 2
- 3
- 5
description: GeneralClass IDs of the recommended LogMeal dishes.
msg:
type: string
description: Returned when no dishes are found for the requested context.
example: No dishes found for the given occasion
'400':
description: Bad request.
content:
application/json:
schema:
type: object
properties:
code:
type: integer
message:
type: string
'401':
description: Unauthorized, invalid token
'404':
description: Not found.
content:
application/json:
schema:
type: object
properties:
code:
type: integer
message:
type: string
examples:
User does not exist:
value:
message: This User does not exist.
code: 1210
security:
- Bearer: []
operationId: getV2RecommendDish
x-operation-id-source: derived
/v2/recommend/recipe:
get:
tags:
- Recipe and Dish Recommendations
summary: 🔴 Get recipes recommendation for an APIUser. ⏱⭐
description: '© Consumes your monthly credits. Limited amount of monthly calls, exceeding calls will be charged as extras.
(S) Limited amount of calls per second.
Returns recipes associated with suitable LogMeal dishes for the authenticated APIUser.
When `food_class_ids` is omitted, the API first selects dishes through the same personalized dish-recommendation logic used by `GET /v2/recommend/dish`: food-group/Variety Score candidate generation followed by the enabled restriction-, preference-, nutritional-goal-, nutritional-plan-, and recent-intake-aware ranking steps.
When `food_class_ids` is provided, that dish-selection stage is bypassed and recipes are retrieved for the supplied dish IDs.
After recipes are collected for the selected dishes, the API applies recipe-level personalization using the APIUser''s configured diet labels and health/restriction labels. For best results, keep these profile attributes up to date through `POST /v2/profile/modifyUserProfileInfo`.'
parameters:
- in: query
name: score_type
schema:
type: string
enum:
- nutri_score
default: nutri_score
example: nutri_score
description: 'Optional score used by the Variety Score candidate-generation stage when `food_class_ids` is omitted.
Currently the only accepted value is `nutri_score`. When omitted, `nutri_score` is used.
'
- in: query
name: num_of_recipes
schema:
type: integer
default: 5
example: 5
description: 'Maximum number of recipes to return. The default is 5. Values greater than 10 are capped at 10.
'
- in: query
name: occasion
schema:
type: string
example: breakfast
description: 'Optional meal occasion used for dish selection and recipe filtering.
'
- in: query
name: date_from
schema:
type: string
format: date
example: '2026-10-01'
description: 'Start date of the intake-history period considered when `food_class_ids` is omitted, in `YYYY-MM-DD` format.
When omitted, the internally generated dish recommendation uses a 7-day lookback.
'
- in: query
name: food_class_ids
schema:
type: string
example: '[6, 4]'
description: 'Optional bracketed list of LogMeal dish GeneralClass IDs, for example `[6, 4]`.
When supplied, recipes are retrieved for these dishes and the dish-recommendation stage is skipped.
When omitted, suitable dish IDs are generated internally through the dish-recommendation logic.
'
- in: query
name: food_groups
schema:
type: string
example: '[6, 4]'
description: 'Optional bracketed list of food-group IDs used during dish candidate generation when `food_class_ids` is omitted.
When omitted, food groups are selected from `occasion`; if no occasion is supplied, all default recommendation food groups are considered.
'
responses:
'200':
description: Successful response
content:
application/json:
schema:
type: object
properties:
recommended_recipes:
description: 'Array containing the results of the recipe recommendation process. The length of the array is equal to the number of recipes recommended by the recommendation process. Each entry contains information about one recipe. These recipes are different from custom recipes as well the recipes associated with ingredients and are only recommended to user with access to ''Recommend'' plan. '
type: array
items:
description: Object containing the information of the each recipe recommended.
type: object
properties:
food_class_id:
description: Class id of the food.
type: integer
example: 45
recipe_name:
description: Name of the recipe
type: string
example: chicken tikka masala
image_url:
description: URL of the dish image.
type: string
example: https://www.edamam.com/food-img/205/205e6bf2399b85d34741892ef91cc603.jpg
ingredients:
type: array
items:
type: string
example:
- 1 clove garlic
- ' broccoli'
description: This attribute is optional. These are food restrictions and allergies of the user. The information is used for personalising the recipe recommendation for user
recipe_url:
description: URL of the website where the recipe can be found.
type: string
example: http://www.seriouseats.com/recipes/2012/07/spring-rolls-with-pork-and-vegetable-medley.html
recipe_steps:
description: Array including the steps of the recipe.
type: array
items:
type: object
properties:
id:
description: Id of the step starting from 1 to higher. 1 means the first step of the recipe.
type: integer
example: 1
step:
description: Recipe step
type: string
example: Put it in the oven
meal_type:
type: string
example: breakfast
description: The occasion or type of the meal.
cuisine_type:
type: string
example: american
description: The type of cuisine based on region.
'400':
description: Bad request.
content:
application/json:
schema:
type: object
properties:
code:
type: integer
message:
type: string
'401':
description: Unauthorized, invalid token
'404':
description: Not found.
content:
application/json:
schema:
type: object
properties:
code:
type: integer
message:
type: string
examples:
User does not exist:
value:
message: This User does not exist.
code: 1210
security:
- Bearer: []
operationId: getV2RecommendRecipe
x-operation-id-source: derived
components:
securitySchemes:
Bearer:
type: http
scheme: bearer
bearerFormat: JWT
x-build:
time: '2026-10-19T02:02:11.433999Z'
x-provenance:
method: harvested
publisher: LogMeal
source: https://docs.logmeal.com/openapi/logmeal_openapi.yaml
note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
stamped by stamp-openapi-provenance.py (roadmap#793)