Creates a manual intake for the specified APIUser without running food recognition or segmentation.
The endpoint supports two request contracts:
- Legacy manual input: each item in
dishesuses the existingid/ingredientsformat. - Unified mixed input: every item in
dishesdeclares atypeand may represent a dish, ingredient-only item, favorite, custom recipe or barcode food item.
Legacy and unified items cannot be mixed in the same dishes array. If one item contains type, every item must use the unified contract.
Unified top-level types:
dish: a regular LogMeal dish identified by a GeneralClass ID.ingredient: an ingredient-only food item with no top-levelid.favorite: a favorite owned by the target APIUser. The complete saved favorite is expanded as a template and may contain multiple food items.custom_recipe: a custom recipe belonging to the target APIUser's APICompany.barcode_food_item: a barcode product previously resolved throughPOST /v2/barcode_scan/{barcode_id}and stored as a BarcodeClass.
Nested ingredients in the unified contract use:
ingredient: a regular LogMeal ingredient referenced throughingredientId, or a free-text ingredient referenced throughingredientName.barcode_ingredient: a barcode product referenced throughbarcodeClassId.
For regular catalog ingredients, ingredientAmount is optional and the existing default quantity is used when it is omitted. Free-text ingredients identified through ingredientName require ingredientAmount.
For barcode ingredients, ingredientAmount is also optional. When it is omitted, the product's stored OpenFoodFacts nutritional reference/serving quantity is used as fallback.
Regular catalog references can be obtained through:
GET /v2/dataset/dishesfor LogMeal dish IDs;GET /v2/dataset/ingredientsfor regular LogMeal ingredient IDs.
When ingredients, levels and quantity are provided for the same food item, they are applied in this order:
ingredientsdefine or replace the food item's recipe;levelsmodify the salt, sugar and oil ingredients in that recipe;quantityproportionally scales the resulting recipe to the requested serving size.
A favorite is reused as the saved intake template. It does not accept one aggregate quantity or an ingredients override because the favorite may contain several food items, each with its own recipe and quantity.
quantity, when provided, scales the selected food item's recipe proportionally.
The target APIUser may call this endpoint for themselves. An APIUserManager may call it for an APIUser they are authorized to manage. Favorites and custom recipes are always resolved using the target APIUser's context.
The request may be sent as application/json, or as multipart/form-data when attaching an optional display image at intake creation time.
For multipart/form-data, the manual-input JSON must be serialized in the data field and the image must be provided in the optional image field.
An uploaded image is a display-only image. It does not trigger food recognition or segmentation and does not modify the selected foods, recipes or nutritional information. The maximum uploaded image size is 1 MB.
If the intake is created without an image, a display image can be attached later through POST /v2/intake/{image_id}/display_image.
| Time | Status | User Agent | |
|---|---|---|---|
Retrieving recent requests⦠| |||
