LogMeal Intake Variety Score and Nutri-Scores API

Endpoints related to the APIUser's intake variety and Nutri-Score services.⚡ Recommend plan or above ⚡

Operations 4

GET /v2/score/{imageId}/nutriScore 🔴 Get Nutri-Score for an image #
GET /v2/score/{date}/meal/{occasion}/nutriScore 🔴 Get total Nutri-Score for specific date and occasion. ⏱ #
GET /v2/score/{date}/meal/nutriScore 🔴 Get total Nutri-Score for a specific date. ⏱ #
GET /v2/score/variety 🔴 Get Variety Score for a provided time period and an occasion (optional). ⏱ #

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-intake-variety-score-and-nutri-scores-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-intake-variety-score-and-nutri-scores-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: 2.1.0
  title: Food AI Engine API Documentation Intake Variety Score and…
  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: Intake Variety Score and Nutri-Scores
  description: 'Endpoints related to the APIUser''s intake variety and Nutri-Score services.

    ⚡ Recommend plan or above ⚡'
  externalDocs:
    url: https://docs.logmeal.com/docs/guides-features-variety-score#/
paths:
  /v2/score/{imageId}/nutriScore:
    get:
      tags:
      - Intake Variety Score and Nutri-Scores
      summary: 🔴 Get Nutri-Score for an image
      description: 'This endpoint returns the total Nutri-Score for an image corresponding to the provided image id. The image id should be for one of the images that the APIUser has already uploaded to the Food AI Engine API as part of any queries related to food recognition or nutritional information analysis. The score calculation takes into consideration all dishes appearing in the image and gets the average of the Nutri-Scores per 100g of each dish.


        The range of values for the standardized Nutri-Score is between 0 and 100 with 100 being the best score possible. This is a rescaled and standardized version of the original Nutri-Score where the values are between -15 to 40. Like the original score scale, this rescaled score range can be represented as 5 categories namely A,B,C,D,E.


        Values Category


        0 - 36 E


        37 - 52 D


        53 - 67 C


        68 - 72 B


        73 - 100 A


        The Nutri-Score values provided can be null in case a dish name was confirmed in the endpoint /confirm/dish that does not belong to the logmeal source, thus we do not have nutritional information for it.


        For more information about the Nutri-Score visit this link.


        Read the specification of the response body to see the available fields with their descriptions.'
      parameters:
      - in: path
        name: imageId
        schema:
          type: integer
        required: true
        description: Id of the image
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  dish_nutriScore_category:
                    type: string
                    example: A
                    enum:
                    - A
                    - B
                    - C
                    - D
                    - E
                    description: Nutri-Score category of the dishes present in the provided image. Possible categories are A,B,C,D,E. A represents the highest range of Nutri-Score whereas E represents the lowest.
                  dish_nutriScore_standardized:
                    type: integer
                    example: 70
                    description: Standardized Nutri-Score value for the dishes present in the provided image. The range of value is between 0 and 100 with 100 being the best and 0 the worst score possible.
        '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: getV2ScoreByImageIdNutriScore
      x-operation-id-source: derived
  /v2/score/{date}/meal/{occasion}/nutriScore:
    get:
      tags:
      - Intake Variety Score and Nutri-Scores
      summary: 🔴 Get total Nutri-Score for specific date and occasion. ⏱
      description: '(S) Limited amount of calls per second.


        This endpoint returns the information about the Nutri-Score for a provided date and occasion based on the APIUser''s food intake on that day. This score is the average Nutri-Score of all the images for the given day and occasion. For more information about Nutri-Score of images, see endpoint ''/v2/score/{imageId}/nutriScore''.


        For more information about the Nutri-Score visit this link


        Read the specification of the response body to see the available fields with their descriptions.'
      parameters:
      - in: path
        name: occasion
        schema:
          type: string
        required: true
        example: breakfast
        description: Occasion for which the Nutri-Score needs to be calculated. Possible values are "breakfast", "lunch", "dinner" or "snack".
      - in: path
        name: date
        schema:
          type: string
        required: true
        example: '2021-10-01'
        description: Date for which the Nutri-Score needs to be calculated. following the format "YYYY-MM-DD"
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  occasion_nutriScore_category:
                    type: string
                    example: B
                    enum:
                    - A
                    - B
                    - C
                    - D
                    - E
                    description: Nutri-Score category for the day and occasion. Possible categories are A,B,C,D,E. A represents the highest range of Nutri-Score whereas E represents the lowest.
                  occasion_nutriScore_standardized:
                    type: integer
                    example: 50
                    description: Standardized Nutri-Score value for the day and occasion. The range of value is between 0 and 100 with 100 being the best and 0 the worst score possible.
        '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: getV2ScoreByDateMealByOccasionNutriScore
      x-operation-id-source: derived
  /v2/score/{date}/meal/nutriScore:
    get:
      tags:
      - Intake Variety Score and Nutri-Scores
      summary: 🔴 Get total Nutri-Score for a specific date. ⏱
      description: '(S) Limited amount of calls per second.


        This endpoint returns the information about the Nutri-Score for a provided date based on the APIUser''s food intake on that day. This score is the average Nutri-Score of all the images for the given day. For more information about Nutri-Score of images, see endpoint ''/v2/score/{imageId}/nutriScore''.


        For more information about the Nutri-Score visit this link


        Read the specification of the response body to see the available fields with their descriptions.'
      parameters:
      - in: path
        name: date
        schema:
          type: string
        required: true
        example: '2021-10-01'
        description: Date for which the Nutri-Score needs to be calculated. following the format "YYYY-MM-DD"
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  day_nutriScore_category:
                    type: string
                    example: A
                    enum:
                    - A
                    - B
                    - C
                    - D
                    - E
                    description: Nutri-Score category for the provided day. Possible categories are A,B,C,D,E. A represents the highest range of Nutri-Score whereas E represents the lowest.
                  day_nutriScore_standardized:
                    type: integer
                    example: 70
                    description: Standardized Nutri-Score value for the day and occasion. The range of value is between 0 and 100 with 100 being the best and 0 the worst score possible.
        '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: getV2ScoreByDateMealNutriScore
      x-operation-id-source: derived
  /v2/score/variety:
    get:
      tags:
      - Intake Variety Score and Nutri-Scores
      summary: 🔴 Get Variety Score for a provided time period and an occasion (optional). ⏱
      description: '(S) Limited amount of calls per second.


        This endpoint returns the information about the ''Variety Score'' for a duration of time and occasion (if provided) based on the APIUser''s food intake over that time.


        The ''Variety Score'' is a method of intake analysis for a measurement of how varied a user''s diet is. This score considers two main aspects of the user diet. First one is the variety element (e.g. how many different types of food groups the user diet has covered) and the second one is the nutritional scoring of dishes belonging to these food groups. The nutritional scoring is optional and only considered on user requests. The more varied the diet for certain user is, the higher this score will be. If the nutritional scoring is considered, it works as a weighing term for the variety of food groups consumed. The range of the value for the variety score is between 0-100 with 100 being the best score possible.


        For more information about the Nutri-Score visit this link


        Our customized ''Variety Score'' is also inspired by the ''Dietary Variety Score'' that was proposed and clinically tested in this scientific study: Drewnowski A, Renderson SA, Driscoll A, Rolls BJ. The Dietary Variety Score: assessing diet quality in healthy young and older adults. Journal of the American Dietetic Association. 1997 Mar 1;97(3):266-71.


        Read the specification of the response body to see the available fields with their descriptions.'
      parameters:
      - in: query
        name: date_from
        schema:
          type: string
        required: true
        example: '2021-10-01'
        description: Start date of the period of time for which the user data needs to be considered for the score calculation, following the format "YYYY-MM-DD"
      - in: query
        name: date_to
        schema:
          type: string
        required: true
        example: '2021-10-06'
        description: Finish date of the period of time for which the user data needs to be considered for the score calculation, following the format "YYYY-MM-DD"
      - in: query
        name: occasion
        schema:
          type: string
        example: breakfast
        description: Occasion for which the recipes need to be recommended. Possible values are "breakfast", "lunch", "dinner"  or "snack". If not provided, all occasions available are used.
      - in: query
        required: true
        name: score_type
        schema:
          type: string
          enum:
          - Nutri-Score
          - None
        example: Nutri-Score
        description: The nutritional scoring method that needs to be considered along with the food groups variety aspect for the final score. Currently available type is "Nutri-Score". if not provided, the final score will only consider the food group varieties. If choosing "None" then only the variety of the consumed dishes will be considered for generating recommendations.
      - in: query
        name: foodGroups
        schema:
          type: array
          items:
            type: integer
        example:
        - 6
        - 4
        description: 'Food group ids used for variety score calculation. If not provided, all available food groups in the database are used. If ''occasion'' is provided a subset of food groups usually consumed for the selected occasion will be used instead. Available food groups in the LogMeal database can be found in endpoint ''/v2/dataset/foodgroups''. '
      responses:
        '200':
          description: The profile information has been successfully obtained
          content:
            application/json:
              schema:
                type: object
                properties:
                  variety_score:
                    type: number
                    format: float
                    example: 62.5
                    description: Average Variety Score for the provided time range and occasion.
                  score_per_food_group:
                    type: object
                    example:
                      '1': 100
                      '3': 100
                      '6': 100
                      '8': 0
                      '10': 100
                      '12': 0
                      '15': 100
                      '16': 0
                    properties:
                      food_group_id:
                        description: Food group id as key and score as value.
                        type: number
                        format: float
                        example: 40
                    description: Standardized score value for each food group.
        '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: getV2ScoreVariety
      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)