LogMeal Recipe and Dish Recommendations API

Endpoints related to the APIUser's recipe and dish recommendations services.⚡ Recommend plan or above ⚡

Operations 2

GET /v2/recommend/dish 🔴 Get dish recommendation for an APIUser. ⏱⭐ #
GET /v2/recommend/recipe 🔴 Get recipes recommendation for an APIUser. ⏱⭐ #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/logmeal:logmeal-recipe-and-dish-recommendations-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

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 Specification

logmeal-recipe-and-dish-recommendations-api-openapi.yml Raw ↑
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)