v1

latestOpenAPI 3.1.02026-07-136587849.3 KB
Nutrition AI

Upload Nutrition Record

Upload a manually created nutrition record

The values are validated against the schema but not verified to be consistent (e.g., total calories are not verified to be equal to the sum of calories found in the ingredients), but the check for mandatory fields is still enforced.

The status of the successfully uploaded record will be set to completed and the input type will be set to manual.

The language of the provided dish name and description will be neither identified nor validated. When available, provide dish_name in English and use the dish_name_translated field for the dish name in the local language. Otherwise, populate both the dish_name_translated and mandatory dish_name fields with the localized dish name provided by the user.

post/nutrition_records/manual

Request body

consumed_atstring date-time

The UTC time when food was consumed. By default, it is set to the record update time

dish_descriptionstring

Detected dish description

dish_description_translatedstring

Dish description translated to target language

dish_namestring required

Detected dish name

dish_name_translatedstring

Dish name translated to target language

failure_reasonstring

Reason for processing failure

input_type'image' | 'manual' | 'push' | 'text'

Nutrition record input type

modified_atstring date-time

Update timestamp in UTC

nutri_scorestring

Nutri-Score known as the 5-Colour Nutrition label (A-E)

record_idstring uuid

Report record ID

serving_sizenumber double required

Serving size in metric units

status'pending' | 'processing' | 'completed' | 'failed' | 'updated'

Processing status

unit'g' | 'mg' | 'mcg' | 'ml' | 'kcal' required

Metric unit (g for solids, ml for liquids)

uploaded_atstring date-time

Upload timestamp in UTC

user_time_offset_minutesinteger

User's local timezone offset in minutes

Example request

{
  "consumed_at": "2006-01-02T15:04:05",
  "dish_description": "beef, ground, lean, cooked with broccoli, raw and rice, brown, cooked",
  "dish_description_translated": "Rindfleisch, Hackfleisch, mager, gekocht mit Brokkoli, roh und Reis, braun, gekocht",
  "dish_name": "beef and broccoli stir-fry",
  "dish_name_translated": "Rindfleisch und Brokkoli Pfanne",
  "failure_reason": "Unable to identify food items",
  "ingredients": [
    {
      "name": "beef, ground, lean, cooked",
      "name_translated": "Rindfleisch, Hackfleisch, mager, gekocht",
      "nutritional_fields": {
        "calcium_mg": 1000,
        "carbohydrate_g": 250,
        "cholesterol_mg": 300,
        "energy_kcal": 800,
        "fat_monounsaturated_g": 20,
        "fat_polyunsaturated_g": 15,
        "fat_saturated_g": 20,
        "fat_total_g": 65,
        "fat_trans_g": 0.5,
        "fiber_total_dietary_g": 25,
        "folate_mcg": 400,
        "iron_mg": 18,
        "magnesium_mg": 400,
        "manganese_mcg": 400,
        "niacin_mg": 16,
        "phosphorus_mg": 700,
        "potassium_mg": 3500,
        "protein_g": 50,
        "riboflavin_mg": 1.3,
        "salt_g": 12,
        "salt_mg": 25,
        "sodium_g": 56,
        "sodium_mg": 2300,
        "sugars_total_g": 50,
        "thiamin_mg": 1.2,
        "vitamin_a_rae_mcg": 900,
        "vitamin_b12_mcg": 2.4,
        "vitamin_b6_mg": 1.7,
        "vitamin_c_mg": 90,
        "vitamin_d_mcg": 20,
        "vitamin_e_mg": 15,
        "vitamin_k_mcg": 120,
        "zinc_mg": 11
      },
      "serving_size": 120,
      "unit": "g"
    }
  ],
  "input_type": "image",
  "modified_at": "2025-09-15T10:30:12.132Z",
  "nutri_score": "B",
  "nutritional_fields": {
    "calcium_mg": 1000,
    "carbohydrate_g": 250,
    "cholesterol_mg": 300,
    "energy_kcal": 800,
    "fat_monounsaturated_g": 20,
    "fat_polyunsaturated_g": 15,
    "fat_saturated_g": 20,
    "fat_total_g": 65,
    "fat_trans_g": 0.5,
    "fiber_total_dietary_g": 25,
    "folate_mcg": 400,
    "iron_mg": 18,
    "magnesium_mg": 400,
    "manganese_mcg": 400,
    "niacin_mg": 16,
    "phosphorus_mg": 700,
    "potassium_mg": 3500,
    "protein_g": 50,
    "riboflavin_mg": 1.3,
    "salt_g": 12,
    "salt_mg": 25,
    "sodium_g": 56,
    "sodium_mg": 2300,
    "sugars_total_g": 50,
    "thiamin_mg": 1.2,
    "vitamin_a_rae_mcg": 900,
    "vitamin_b12_mcg": 2.4,
    "vitamin_b6_mg": 1.7,
    "vitamin_c_mg": 90,
    "vitamin_d_mcg": 20,
    "vitamin_e_mg": 15,
    "vitamin_k_mcg": 120,
    "zinc_mg": 11
  },
  "record_id": "6ba7b810-9dad-11d1-80b4-00c04fd430c8",
  "serving_size": 120,
  "status": "completed",
  "unit": "g",
  "uploaded_at": "2025-09-15T10:30:04.521Z",
  "user_time_offset_minutes": -540
}

Response

OK

consumed_atstring date-time

The UTC time when food was consumed. By default, it is set to the record update time

dish_descriptionstring

Detected dish description

dish_description_translatedstring

Dish description translated to target language

dish_namestring required

Detected dish name

dish_name_translatedstring

Dish name translated to target language

failure_reasonstring

Reason for processing failure

input_type'image' | 'manual' | 'push' | 'text'

Nutrition record input type

modified_atstring date-time

Update timestamp in UTC

nutri_scorestring

Nutri-Score known as the 5-Colour Nutrition label (A-E)

record_idstring uuid

Report record ID

serving_sizenumber double required

Serving size in metric units

status'pending' | 'processing' | 'completed' | 'failed' | 'updated'

Processing status

unit'g' | 'mg' | 'mcg' | 'ml' | 'kcal' required

Metric unit (g for solids, ml for liquids)

uploaded_atstring date-time

Upload timestamp in UTC

user_time_offset_minutesinteger

User's local timezone offset in minutes

Example response

{
  "consumed_at": "2006-01-02T15:04:05",
  "dish_description": "beef, ground, lean, cooked with broccoli, raw and rice, brown, cooked",
  "dish_description_translated": "Rindfleisch, Hackfleisch, mager, gekocht mit Brokkoli, roh und Reis, braun, gekocht",
  "dish_name": "beef and broccoli stir-fry",
  "dish_name_translated": "Rindfleisch und Brokkoli Pfanne",
  "failure_reason": "Unable to identify food items",
  "ingredients": [
    {
      "name": "beef, ground, lean, cooked",
      "name_translated": "Rindfleisch, Hackfleisch, mager, gekocht",
      "nutritional_fields": {
        "calcium_mg": 1000,
        "carbohydrate_g": 250,
        "cholesterol_mg": 300,
        "energy_kcal": 800,
        "fat_monounsaturated_g": 20,
        "fat_polyunsaturated_g": 15,
        "fat_saturated_g": 20,
        "fat_total_g": 65,
        "fat_trans_g": 0.5,
        "fiber_total_dietary_g": 25,
        "folate_mcg": 400,
        "iron_mg": 18,
        "magnesium_mg": 400,
        "manganese_mcg": 400,
        "niacin_mg": 16,
        "phosphorus_mg": 700,
        "potassium_mg": 3500,
        "protein_g": 50,
        "riboflavin_mg": 1.3,
        "salt_g": 12,
        "salt_mg": 25,
        "sodium_g": 56,
        "sodium_mg": 2300,
        "sugars_total_g": 50,
        "thiamin_mg": 1.2,
        "vitamin_a_rae_mcg": 900,
        "vitamin_b12_mcg": 2.4,
        "vitamin_b6_mg": 1.7,
        "vitamin_c_mg": 90,
        "vitamin_d_mcg": 20,
        "vitamin_e_mg": 15,
        "vitamin_k_mcg": 120,
        "zinc_mg": 11
      },
      "serving_size": 120,
      "unit": "g"
    }
  ],
  "input_type": "image",
  "modified_at": "2025-09-15T10:30:12.132Z",
  "nutri_score": "B",
  "nutritional_fields": {
    "calcium_mg": 1000,
    "carbohydrate_g": 250,
    "cholesterol_mg": 300,
    "energy_kcal": 800,
    "fat_monounsaturated_g": 20,
    "fat_polyunsaturated_g": 15,
    "fat_saturated_g": 20,
    "fat_total_g": 65,
    "fat_trans_g": 0.5,
    "fiber_total_dietary_g": 25,
    "folate_mcg": 400,
    "iron_mg": 18,
    "magnesium_mg": 400,
    "manganese_mcg": 400,
    "niacin_mg": 16,
    "phosphorus_mg": 700,
    "potassium_mg": 3500,
    "protein_g": 50,
    "riboflavin_mg": 1.3,
    "salt_g": 12,
    "salt_mg": 25,
    "sodium_g": 56,
    "sodium_mg": 2300,
    "sugars_total_g": 50,
    "thiamin_mg": 1.2,
    "vitamin_a_rae_mcg": 900,
    "vitamin_b12_mcg": 2.4,
    "vitamin_b6_mg": 1.7,
    "vitamin_c_mg": 90,
    "vitamin_d_mcg": 20,
    "vitamin_e_mg": 15,
    "vitamin_k_mcg": 120,
    "zinc_mg": 11
  },
  "record_id": "6ba7b810-9dad-11d1-80b4-00c04fd430c8",
  "serving_size": 120,
  "status": "completed",
  "unit": "g",
  "uploaded_at": "2025-09-15T10:30:04.521Z",
  "user_time_offset_minutes": -540
}