---
title: "Upload Nutrition Record"
method: POST
path: "/nutrition_records/manual"
tags: ["Nutrition AI"]
---

# Upload Nutrition Record

`POST /nutrition_records/manual`

##### 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.

## Request body

- NutritionRecord
  - `consumed_at` string, date-time — The UTC time when food was consumed. By default, it is set to the record update time
  - `dish_description` string — Detected dish description
  - `dish_description_translated` string — Dish description translated to target language
  - `dish_name` string, required — Detected dish name
  - `dish_name_translated` string — Dish name translated to target language
  - `failure_reason` string — Reason for processing failure
  - `ingredients` NutritionRecordIngredient[], nullable — List of detected ingredients with nutritional information
    - `name` string, required — Ingredient name using LANGUAL standard terminology
    - `name_translated` string — Ingredient name translated to target language
    - `nutritional_fields` object — Nutritional values in the given serving size
      - `calcium_mg` number — Calcium in milligrams
      - `carbohydrate_g` number — Carbohydrates in grams
      - `cholesterol_mg` number — Cholesterol in milligrams
      - `energy_kcal` number — Energy in kilocalories
      - `fat_monounsaturated_g` number — Monounsaturated Fat in grams
      - `fat_polyunsaturated_g` number — Polyunsaturated Fat in grams
      - `fat_saturated_g` number — Saturated Fat in grams
      - `fat_total_g` number — Total Fat in grams
      - `fat_trans_g` number — Trans Fat in grams
      - `fiber_total_dietary_g` number — Dietary Fiber in grams
      - `folate_mcg` number — Folate in micrograms
      - `iron_mg` number — Iron in milligrams
      - `magnesium_mg` number — Magnesium in milligrams
      - `manganese_mcg` number — Manganese in micrograms
      - `niacin_mg` number — Niacin in milligrams
      - `phosphorus_mg` number — Phosphorus in milligrams
      - `potassium_mg` number — Potassium in milligrams
      - `protein_g` number — Protein in grams
      - `riboflavin_mg` number — Riboflavin in milligrams
      - `salt_g` number — Salt in grams
      - `salt_mg` number — Salt in milligrams
      - `sodium_g` number — Sodium in grams
      - `sodium_mg` number — Sodium in milligrams
      - `sugars_total_g` number — Total Sugars in grams
      - `thiamin_mg` number — Thiamin in milligrams
      - `vitamin_a_rae_mcg` number — Vitamin A in micrograms
      - `vitamin_b12_mcg` number — Vitamin B12 in micrograms
      - `vitamin_b6_mg` number — Vitamin B6 in milligrams
      - `vitamin_c_mg` number — Vitamin C in milligrams
      - `vitamin_d_mcg` number — Vitamin D in micrograms
      - `vitamin_e_mg` number — Vitamin E in milligrams
      - `vitamin_k_mcg` number — Vitamin K in micrograms
      - `zinc_mg` number — Zinc in milligrams
    - `serving_size` number, double, required — Serving size in metric units
    - `unit` 'g' | 'mg' | 'mcg' | 'ml' | 'kcal', required — Metric unit (g for solids, ml for liquids)
  - `input_type` 'image' | 'manual' | 'push' | 'text' — Nutrition record input type
  - `modified_at` string, date-time — Update timestamp in UTC
  - `nutri_score` string — Nutri-Score known as the 5-Colour Nutrition label (A-E)
  - `nutritional_fields` object — Nutritional values in the given serving size
    - `calcium_mg` number — Calcium in milligrams
    - `carbohydrate_g` number — Carbohydrates in grams
    - `cholesterol_mg` number — Cholesterol in milligrams
    - `energy_kcal` number — Energy in kilocalories
    - `fat_monounsaturated_g` number — Monounsaturated Fat in grams
    - `fat_polyunsaturated_g` number — Polyunsaturated Fat in grams
    - `fat_saturated_g` number — Saturated Fat in grams
    - `fat_total_g` number — Total Fat in grams
    - `fat_trans_g` number — Trans Fat in grams
    - `fiber_total_dietary_g` number — Dietary Fiber in grams
    - `folate_mcg` number — Folate in micrograms
    - `iron_mg` number — Iron in milligrams
    - `magnesium_mg` number — Magnesium in milligrams
    - `manganese_mcg` number — Manganese in micrograms
    - `niacin_mg` number — Niacin in milligrams
    - `phosphorus_mg` number — Phosphorus in milligrams
    - `potassium_mg` number — Potassium in milligrams
    - `protein_g` number — Protein in grams
    - `riboflavin_mg` number — Riboflavin in milligrams
    - `salt_g` number — Salt in grams
    - `salt_mg` number — Salt in milligrams
    - `sodium_g` number — Sodium in grams
    - `sodium_mg` number — Sodium in milligrams
    - `sugars_total_g` number — Total Sugars in grams
    - `thiamin_mg` number — Thiamin in milligrams
    - `vitamin_a_rae_mcg` number — Vitamin A in micrograms
    - `vitamin_b12_mcg` number — Vitamin B12 in micrograms
    - `vitamin_b6_mg` number — Vitamin B6 in milligrams
    - `vitamin_c_mg` number — Vitamin C in milligrams
    - `vitamin_d_mcg` number — Vitamin D in micrograms
    - `vitamin_e_mg` number — Vitamin E in milligrams
    - `vitamin_k_mcg` number — Vitamin K in micrograms
    - `zinc_mg` number — Zinc in milligrams
  - `record_id` string, uuid — Report record ID
  - `serving_size` number, 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_at` string, date-time — Upload timestamp in UTC
  - `user_time_offset_minutes` integer — User's local timezone offset in minutes

## Response `200`

OK

- NutritionRecord
  - `consumed_at` string, date-time — The UTC time when food was consumed. By default, it is set to the record update time
  - `dish_description` string — Detected dish description
  - `dish_description_translated` string — Dish description translated to target language
  - `dish_name` string, required — Detected dish name
  - `dish_name_translated` string — Dish name translated to target language
  - `failure_reason` string — Reason for processing failure
  - `ingredients` NutritionRecordIngredient[], nullable — List of detected ingredients with nutritional information
    - `name` string, required — Ingredient name using LANGUAL standard terminology
    - `name_translated` string — Ingredient name translated to target language
    - `nutritional_fields` object — Nutritional values in the given serving size
      - `calcium_mg` number — Calcium in milligrams
      - `carbohydrate_g` number — Carbohydrates in grams
      - `cholesterol_mg` number — Cholesterol in milligrams
      - `energy_kcal` number — Energy in kilocalories
      - `fat_monounsaturated_g` number — Monounsaturated Fat in grams
      - `fat_polyunsaturated_g` number — Polyunsaturated Fat in grams
      - `fat_saturated_g` number — Saturated Fat in grams
      - `fat_total_g` number — Total Fat in grams
      - `fat_trans_g` number — Trans Fat in grams
      - `fiber_total_dietary_g` number — Dietary Fiber in grams
      - `folate_mcg` number — Folate in micrograms
      - `iron_mg` number — Iron in milligrams
      - `magnesium_mg` number — Magnesium in milligrams
      - `manganese_mcg` number — Manganese in micrograms
      - `niacin_mg` number — Niacin in milligrams
      - `phosphorus_mg` number — Phosphorus in milligrams
      - `potassium_mg` number — Potassium in milligrams
      - `protein_g` number — Protein in grams
      - `riboflavin_mg` number — Riboflavin in milligrams
      - `salt_g` number — Salt in grams
      - `salt_mg` number — Salt in milligrams
      - `sodium_g` number — Sodium in grams
      - `sodium_mg` number — Sodium in milligrams
      - `sugars_total_g` number — Total Sugars in grams
      - `thiamin_mg` number — Thiamin in milligrams
      - `vitamin_a_rae_mcg` number — Vitamin A in micrograms
      - `vitamin_b12_mcg` number — Vitamin B12 in micrograms
      - `vitamin_b6_mg` number — Vitamin B6 in milligrams
      - `vitamin_c_mg` number — Vitamin C in milligrams
      - `vitamin_d_mcg` number — Vitamin D in micrograms
      - `vitamin_e_mg` number — Vitamin E in milligrams
      - `vitamin_k_mcg` number — Vitamin K in micrograms
      - `zinc_mg` number — Zinc in milligrams
    - `serving_size` number, double, required — Serving size in metric units
    - `unit` 'g' | 'mg' | 'mcg' | 'ml' | 'kcal', required — Metric unit (g for solids, ml for liquids)
  - `input_type` 'image' | 'manual' | 'push' | 'text' — Nutrition record input type
  - `modified_at` string, date-time — Update timestamp in UTC
  - `nutri_score` string — Nutri-Score known as the 5-Colour Nutrition label (A-E)
  - `nutritional_fields` object — Nutritional values in the given serving size
    - `calcium_mg` number — Calcium in milligrams
    - `carbohydrate_g` number — Carbohydrates in grams
    - `cholesterol_mg` number — Cholesterol in milligrams
    - `energy_kcal` number — Energy in kilocalories
    - `fat_monounsaturated_g` number — Monounsaturated Fat in grams
    - `fat_polyunsaturated_g` number — Polyunsaturated Fat in grams
    - `fat_saturated_g` number — Saturated Fat in grams
    - `fat_total_g` number — Total Fat in grams
    - `fat_trans_g` number — Trans Fat in grams
    - `fiber_total_dietary_g` number — Dietary Fiber in grams
    - `folate_mcg` number — Folate in micrograms
    - `iron_mg` number — Iron in milligrams
    - `magnesium_mg` number — Magnesium in milligrams
    - `manganese_mcg` number — Manganese in micrograms
    - `niacin_mg` number — Niacin in milligrams
    - `phosphorus_mg` number — Phosphorus in milligrams
    - `potassium_mg` number — Potassium in milligrams
    - `protein_g` number — Protein in grams
    - `riboflavin_mg` number — Riboflavin in milligrams
    - `salt_g` number — Salt in grams
    - `salt_mg` number — Salt in milligrams
    - `sodium_g` number — Sodium in grams
    - `sodium_mg` number — Sodium in milligrams
    - `sugars_total_g` number — Total Sugars in grams
    - `thiamin_mg` number — Thiamin in milligrams
    - `vitamin_a_rae_mcg` number — Vitamin A in micrograms
    - `vitamin_b12_mcg` number — Vitamin B12 in micrograms
    - `vitamin_b6_mg` number — Vitamin B6 in milligrams
    - `vitamin_c_mg` number — Vitamin C in milligrams
    - `vitamin_d_mcg` number — Vitamin D in micrograms
    - `vitamin_e_mg` number — Vitamin E in milligrams
    - `vitamin_k_mcg` number — Vitamin K in micrograms
    - `zinc_mg` number — Zinc in milligrams
  - `record_id` string, uuid — Report record ID
  - `serving_size` number, 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_at` string, date-time — Upload timestamp in UTC
  - `user_time_offset_minutes` integer — User's local timezone offset in minutes

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `404` — Not Found
- `422` — Unprocessable Entity
- `500` — Internal Server Error

---

[API](https://skmtc.dev/spikeapi/apis/application-user-api.md) · [All operations](https://skmtc.dev/spikeapi/apis/application-user-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/spikeapi/application-user-api/revisions/637338fb0c9d/schema)
