LogMeal APIUsers Profile Management API

Endpoints that allow APIUsers to get and modify their profiles.Limited to APIUser 🔴 tokens

Operations 3

POST /v2/profile/changeLanguage 🔴 Changes current user language #
POST /v2/profile/modifyUserProfileInfo 🔴 Modify the profile information #
GET /v2/profile/getUserProfileInfo 🔴 Get the user's profile information #

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-apiusers-profile-management-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-apiusers-profile-management-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: 2.1.0
  title: Food AI Engine API Documentation APIUsers Profile…
  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: APIUsers Profile Management
  description: 'Endpoints that allow APIUsers to get and modify their profiles.

    Limited to APIUser 🔴 tokens'
  externalDocs:
    url: https://docs.logmeal.com/docs/guides-essential-concepts-users-and-access-tokens#/
paths:
  /v2/profile/changeLanguage:
    post:
      deprecated: true
      tags:
      - APIUsers Profile Management
      summary: 🔴 Changes current user language
      description: '**[NOTE] This endpoint is DEPRECATED. We recommend using the endpoint POST /modifyuserProfileInfo instead.**


        This endpoint allows an APIUser to modify their assigned language, which will modify the language of the responses generated by our endpoints.'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                language:
                  type: string
                  example: eng
                  enum:
                  - spa
                  - cat
                  - eng
                  - ita
                  - nld
                  - fre
                  - ger
                  - tur
                  - gre
                  - heb
        description: Changes the APIUser's current default language. It must be a three-letter ISO 639-2/T code.
        required: true
      responses:
        '200':
          description: Language has been successfully changed
          content:
            application/json:
              schema:
                type: object
                properties:
                  result:
                    type: string
                    example: OK
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: integer
                  message:
                    type: string
              examples:
                Not allowed to this method:
                  value:
                    type: object
                    properties:
                      message:
                        type: string
                        example: You are not allowed to this method.
        '401':
          description: Unauthorized, invalid token
        '403':
          description: You are not allowed to this method.
        '404':
          description: The specified URL was not found or couldn’t be retrieved
      security:
      - Bearer: []
      operationId: postV2ProfileChangeLanguage
      x-operation-id-source: derived
  /v2/profile/modifyUserProfileInfo:
    post:
      tags:
      - APIUsers Profile Management
      summary: 🔴 Modify the profile information
      description: 'This endpoint allows you to modify the profile and main attributes of an end-user (APIUser). This information associated to the user can be used for features like improving and customizing the output of the food recognition capabilities, personalizing the nutrition recommendations and nutrition plans, adapting to the user intake patterns, etc.


        Read the specification of the request body to see the available fields with their descriptions.


        This endpoint is the same as `/v2/managers/modifyUserProfileInfo` and `/v2/users/modifyUserProfileInfo`.


        ### 🌍 Geographic and Language Personalization


        We highly recommend including the optional fields `country` and `language` in the request body:


        - **`country`** (ISO 3166‑1 alpha‑2 code, e.g., `US`, `FR`, `JP`):

        Providing the country allows LogMeal to geographically refine its food recognition capabilities.

        This enables improved detection accuracy for region-specific dishes and eating patterns, leading to better personalization in nutrition analysis.


        - **`language`** (e.g., `en`, `es`, `fr`):

        Setting the preferred language ensures that the names of food items, ingredients, nutrients, and other elements are returned in the specified language, offering a better user experience tailored to each APIUser.


        Including these parameters increases the contextual accuracy and relevance of all subsequent API responses.


        ### 🥗 Customizing Recommended Food Group Consumption


        You can also use this endpoint to **customize the recommended daily or weekly food group portions** for a user by passing the `min_max_food_groups` field.

        This allows setting personalized minimum and/or maximum portion limits per food group, which will be taken into account during dietary analysis and goal calculations.


        Important constraints:


        - If you want to indicate that a food group has **no minimum requirement**, use `null` as the `min` value. You must **not** use `0`, since `0` would imply the user is expected to consume exactly 0 portions, which is incorrect for `min`.


        - If you want to explicitly restrict a user from consuming a food group, set the `max` value to `0`. This means that any intake of that group will be considered a deviation from the goal.'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  example: John
                  description: Name of the user (min length=2, max length=30)
                surname:
                  type: string
                  example: Smith
                  description: Surname of the user (min length=2, max length=50)
                language:
                  type: string
                  example: eng
                  enum:
                  - spa
                  - cat
                  - eng
                  - ita
                  - nld
                  - fre
                  - ger
                  - tur
                  - gre
                  - heb
                  description: APIUser's default language. It must be a three-letter ISO 639-2/T code.
                sex:
                  type: integer
                  example: 2
                  enum:
                  - 0
                  - 1
                  - 2
                  - 9
                  description: Sex of the user. It must be a number, following ISO/IEC 5218.
                weight:
                  type: number
                  example: 72.3
                  description: Weight of the user in Kilograms.
                height:
                  type: number
                  example: 180.6
                  description: Height of the user in Centimeters.
                birth:
                  type: string
                  example: '1980-01-01'
                  description: Date of birth of the user, following the format "YYYY-MM-DD"
                lifestyle:
                  type: string
                  example: sedentary
                  enum:
                  - sedentary
                  - light
                  - moderate
                  - high
                  - very high
                  description: Lifestyle of the user. Possible values are ["sedentary", "light", "moderate", "high", "very high"].
                country:
                  type: string
                  example: US
                  description: Will be used for refining the food recognition capabilities. A 2-letter country code according to [ISO 3166-1](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2).
                default_portion_size:
                  type: string
                  example: large
                  enum:
                  - small
                  - medium
                  - large
                  description: Default portion size for the user. Possible values are ["small", "medium", "large"]
                default_salt_level:
                  type: string
                  example: low
                  enum:
                  - none
                  - low
                  - medium
                  - high
                  description: Default salt level for the user. Possible values are ["none", "low", "medium", "high"]
                default_sugar_level:
                  type: string
                  example: medium
                  enum:
                  - none
                  - low
                  - medium
                  - high
                default_oil_level:
                  type: string
                  example: high
                  enum:
                  - none
                  - low
                  - medium
                  - high
                  description: Default oil level for the user. Possible values are ["none", "low", "medium", "high"]
                reference_sugar:
                  type: integer
                  example: 47
                  description: ID of the sugar ingredient the user usually uses. A list of all possible oil modifiers can be retrieved by calling /dataset/referenceIngredients.
                reference_oil:
                  type: integer
                  example: 562
                  description: ID of the oil ingredient the user usually uses. A list of all possible oil modifiers can be retrieved by calling /dataset/referenceIngredients.
                reference_nutrients:
                  type: array
                  items:
                    type: string
                  example:
                  - FAPU
                  - ZN
                  description: Nutrients set as reference (important) for the user
                timezone:
                  type: string
                  example: Europe/Madrid
                  description: Timezone the user is located at. This requires a TZ database name; you can find them here https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
                user_id:
                  type: integer
                  example: 123
                  description: ID of the user to be modified. You must be the owner of the user to do any modification.
                diet_labels:
                  type: array
                  items:
                    type: string
                    enum:
                    - Balanced
                    - High-Fiber
                    - High-Protein
                    - Low-Carb
                    - Low-Fat
                    - High-Sodium
                    - Low-Sodium
                  example:
                  - Balanced
                  - Low-Carb
                  description: This attribute is optional. These are the diet labels of the user. Possible values are ["Balanced", "High-Fiber", "High-Protein", "Low-Carb", "Low-Fat", "High-Sodium", "Low-Sodium"]. The information is used for personalizing the recipe recommendation for the user.
                food_restrictions:
                  type: array
                  items:
                    type: string
                    enum:
                    - Alcohol-Free
                    - Immuno-Supportive
                    - Celery-Free
                    - Crustacean-Free
                    - Dairy-Free
                    - Egg-Free
                    - Fish-Free
                    - Fodmap-Free
                    - Gluten-Free
                    - Keto-Friendly
                    - Kidney-Friendly
                    - Kosher
                    - Low-Potassium
                    - Lupine-Free
                    - Mustard-Free
                    - Low-Fat-Abs
                    - No-oil-added
                    - Low-Sugar
                    - Paleo
                    - Peanut-Free
                    - Pescatarian
                    - Pork-Free
                    - Red-Meat-Free
                    - Sesame-Free
                    - shellfish-Free
                    - Soy-Free
                    - Sugar-Conscious
                    - Tree-Nut-Free
                    - Vegan
                    - Vegetarian
                    - Wheat-Free
                  example:
                  - Alcohol-Free
                  - Dairy-Free
                  description: This attribute is optional. These are food restrictions and allergies of the user. The information is used for personalizing the recipe recommendation for the user
                weight_system:
                  type: string
                  enum:
                  - metric
                  - imperial
                  description: Set the user's preferred system for measuring weights.
                preferred_measure:
                  type: string
                  enum:
                  - weight
                  - cooking_measures
                  - portions
                  description: Set the user's preferred way to see food quantity information.
                min_max_food_groups:
                  type: object
                  description: "Customize the recommended minimum and/or maximum portions per food group.\n\nThis field allows setting user-specific dietary goals by specifying optional `min` and/or `max` values for one or more food groups.\n\n \n\n**Important notes:**\n\n- If you want to indicate _no minimum_ for a food group, use `null` as the `min` value. Do **not** use `0`, as that implies a strict minimum intake of 0 portions.\n\n- If you want to prevent the user from consuming a food group, set `max` to `0`.\n\n \n\n**Example:**\n\n\n    \"min_max_food_groups\": {\n\n        \"fish\": {\"min\": null, \"max\": 1},\n\n        \"red meat\": {\"min\": null, \"max\": 0},\n\n        \"fruit\": {\"min\": 3, \"max\": 5},\n\n    }\n\n\n \n\n**Available Food Groups:**\n\n- ['Dairy Products', 'Vegetables', 'Grains and Tubers', 'Water', 'Fruit', 'Whole Grain', 'Meat', 'Fish', 'Nuts', 'Legumes', 'Egg', 'Red Meat']\n"
                  additionalProperties:
                    type: object
                    properties:
                      min:
                        type:
                        - number
                        - 'null'
                        description: Minimum number of portions (use `null` to specify no minimum).
                      max:
                        type:
                        - number
                        - 'null'
                        description: Maximum number of portions (use `0` to restrict intake entirely).
              required:
              - user_id
        description: Parameters to be modified, all fields are optional. Null values will be ignored.
        required: true
      responses:
        '200':
          description: The profile information has been successfully modified!
          content:
            application/json:
              schema:
                type: object
                properties:
                  msg:
                    type: string
                    example: The profile information has been successfully modified!
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: integer
                  message:
                    type: string
              examples:
                Sex is not valid:
                  value:
                    message: The provided sex value is not valid.
                    code: 1205
                Lifestyle is not valid:
                  value:
                    message: The provided lifestyle value is not valid.
                    code: 1214
                Salt level is not valid:
                  value:
                    message: The provided salt level value is not valid.
                    code: 1215
                Sugar level is not valid:
                  value:
                    message: The provided sugar level value is not valid.
                    code: 1216
                Portion size is not valid:
                  value:
                    message: The provided portion size value is not valid.
                    code: 1217
                Birth format not valid:
                  value:
                    message: The provided birth value is wrong. Follow the format 'YYYY-MM-DD'
                    code: 1218
                Country is not valid:
                  value:
                    message: The provided country is not valid, check the valid 2-letter country codes from ISO 3166-1 https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2.
                    code: 1229
                diet label not valid:
                  value:
                    message: The provided diet label value is not valid
                    code: 1607
                food restriction not valid:
                  value:
                    message: The provided food restriction value is not valid'
                    code: 1608
        '401':
          description: Unauthorized, invalid token
        '404':
          description: Not found.
      security:
      - Bearer: []
      operationId: postV2ProfileModifyUserProfileInfo
      x-operation-id-source: derived
  /v2/profile/getUserProfileInfo:
    get:
      tags:
      - APIUsers Profile Management
      summary: 🔴 Get the user's profile information
      description: 'This endpoint returns the information from the APIUser performing the request.


        Read the specification of the response body to see the available fields with their descriptions.


        This endpoint is the same as ''/v2/users/getUserProfileInfo''.'
      responses:
        '200':
          description: The profile information has been successfully obtained
          content:
            application/json:
              schema:
                allOf:
                - type: object
                  properties:
                    name:
                      type: string
                      example: John
                      description: Name of the user (min length=2, max length=30)
                    surname:
                      type: string
                      example: Smith
                      description: Surname of the user (min length=2, max length=50)
                    language:
                      type: string
                      example: eng
                      enum:
                      - spa
                      - cat
                      - eng
                      - ita
                      - nld
                      - fre
                      - ger
                      - tur
                      - gre
                      - heb
                      description: APIUser's default language. It must be a three-letter ISO 639-2/T code.
                    sex:
                      type: integer
                      example: 2
                      enum:
                      - 0
                      - 1
                      - 2
                      - 9
                      description: Sex of the user. It must be a number, following ISO/IEC 5218.
                    weight:
                      type: number
                      example: 72.3
                      description: Weight of the user in Kilograms.
                    height:
                      type: number
                      example: 180.6
                      description: Height of the user in Centimeters.
                    birth:
                      type: string
                      example: '1980-01-01'
                      description: Date of birth of the user, following the format "YYYY-MM-DD"
                    lifestyle:
                      type: string
                      example: sedentary
                      enum:
                      - sedentary
                      - light
                      - moderate
                      - high
                      - very high
                      description: Lifestyle of the user. Possible values are ["sedentary", "light", "moderate", "high", "very high"].
                    country:
                      type: string
                      example: US
                      description: Will be used for refining the food recognition capabilities. A 2-letter country code according to [ISO 3166-1](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2).
                    default_portion_size:
                      type: string
                      example: large
                      enum:
                      - small
                      - medium
                      - large
                      description: Default portion size for the user. Possible values are ["small", "medium", "large"]
                    default_salt_level:
                      type: string
                      example: low
                      enum:
                      - none
                      - low
                      - medium
                      - high
                      description: Default salt level for the user. Possible values are ["none", "low", "medium", "high"]
                    default_sugar_level:
                      type: string
                      example: medium
                      enum:
                      - none
                      - low
                      - medium
                      - high
                    default_oil_level:
                      type: string
                      example: high
                      enum:
                      - none
                      - low
                      - medium
                      - high
                      description: Default oil level for the user. Possible values are ["none", "low", "medium", "high"]
                    reference_sugar:
                      type: integer
                      example: 47
                      description: ID of the sugar ingredient the user usually uses. A list of all possible oil modifiers can be retrieved by calling /dataset/referenceIngredients.
                    reference_oil:
                      type: integer
                      example: 562
                      description: ID of the oil ingredient the user usually uses. A list of all possible oil modifiers can be retrieved by calling /dataset/referenceIngredients.
                    reference_nutrients:
                      type: array
                      items:
                        type: string
                      example:
                      - FAPU
                      - ZN
                      description: Nutrients set as reference (important) for the user
                    timezone:
                      type: string
                      example: Europe/Madrid
                      description: Timezone the user is located at. This requires a TZ database name; you can find them here https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
                    user_id:
                      type: integer
                      example: 123
                      description: ID of the user to be modified. You must be the owner of the user to do any modification.
                    diet_labels:
                      type: array
                      items:
                        type: string
                        enum:
                        - Balanced
                        - High-Fiber
                        - High-Protein
                        - Low-Carb
                        - Low-Fat
                        - High-Sodium
                        - Low-Sodium
                      example:
                      - Balanced
                      - Low-Carb
                      description: This attribute is optional. These are the diet labels of the user. Possible values are ["Balanced", "High-Fiber", "High-Protein", "Low-Carb", "Low-Fat", "High-Sodium", "Low-Sodium"]. The information is used for personalizing the recipe recommendation for the user.
                    food_restrictions:
                      type: array
                      items:
                        type: string
                        enum:
                        - Alcohol-Free
                        - Immuno-Supportive
                        - Celery-Free
                        - Crustacean-Free
                        - Dairy-Free
                        - Egg-Free
                        - Fish-Free
                        - Fodmap-Free
                        - Gluten-Free
                        - Keto-Friendly
                        - Kidney-Friendly
                        - Kosher
                        - Low-Potassium
                        - Lupine-Free
                        - Mustard-Free
                        - Low-Fat-Abs
                        - No-oil-added
                        - Low-Sugar
                        - Paleo
                        - Peanut-Free
                        - Pescatarian
                        - Pork-Free
                        - Red-Meat-Free
                        - Sesame-Free
                        - shellfish-Free
                        - Soy-Free
                        - Sugar-Conscious
                        - Tree-Nut-Free
                        - Vegan
                        - Vegetarian
                        - Wheat-Free
                      example:
                      - Alcohol-Free
                      - Dairy-Free
                      description: This attribute is optional. These are food restrictions and allergies of the user. The information is used for personalizing the recipe recommendation for the user
                    weight_system:
                      type: string
                      enum:
                      - metric
                      - imperial
                      description: Set the user's preferred system for measuring weights.
                    preferred_measure:
                      type: string
                      enum:
                      - weight
                      - cooking_measures
                      - portions
                      description: Set the user's preferred way to see food quantity information.
                    min_max_food_groups:
                      type: object
                      description: "Customize the recommended minimum and/or maximum portions per food group.\n\nThis field allows setting user-specific dietary goals by specifying optional `min` and/or `max` values for one or more food groups.\n\n \n\n**Important notes:**\n\n- If you want to indicate _no minimum_ for a food group, use `null` as the `min` value. Do **not** use `0`, as that implies a strict minimum intake of 0 portions.\n\n- If you want to prevent the user from consuming a food group, set `max` to `0`.\n\n \n\n**Example:**\n\n\n    \"min_max_food_groups\": {\n\n        \"fish\": {\"min\": null, \"max\": 1},\n\n        \"red meat\": {\"min\": null, \"max\": 0},\n\n        \"fruit\": {\"min\": 3, \"max\": 5},\n\n    }\n\n\n \n\n**Available Food Groups:**\n\n- ['Dairy Products', 'Vegetables', 'Grains and Tubers', 'Water', 'Fruit', 'Whole Grain', 'Meat', 'Fish', 'Nuts', 'Legumes', 'Egg', 'Red Meat']\n"
                      additionalProperties:
                        type: object
                        properties:
                          min:
                            type:
                            - number
                            - 'null'
                            description: Minimum number of portions (use `null` to specify no minimum).
                          max:
                            type:
                            - number
                            - 'null'
                            description: Maximum number of portions (use `0` to restrict intake entirely).
                  required:
                  - user_id
                - type: object
                  properties:
                    enabled:
                      type: boolean
                      example: true
                      description: Whether the APIUser is enabled and allowed to access the API endpoints available to enabled users.
        '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.
      security:
      - Bearer: []
      operationId: getV2ProfileGetUserProfileInfo
      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)