Manual or Assigned Intakes
Plan & Token Requirements
Feature available in the following LogMeal Plans:
Accessible by the following User Types:
What It Does
Manual Intakes allow creating a meal intake without image-based prediction. For each food item, provide either an existing dish ID and/or, optionally, omit the dish id and provide an ingredient breakdown. You may also supply quantity (serving size) and easy-to-modulate ingredient levels (salt, sugar, oil).
This is ideal when users forget to take a photo, when recording historic meals, or when professionals need to log meals on behalf of users.


Creating Custom Dishes From Scratch
Optionally, an APIUser or APIUserManager can create a one-off food item from scratch without relying on a pre-existing catalog dish ID.
To execute this workflow, follow these 3 steps:
1. Define the Ingredient List
Retrieve valid ingredient IDs through GET /dataset/ingredients, then determine the ingredients and quantities. You may preview the resulting nutrition by calling POST /nutrition/recipe/compute_nutrients.
2. Create the Intake
Call POST /v2/intake/manualInput/{userId}. Omit the dish id and provide a non-empty ingredients list containing valid ingredientId values. Add an optional non-empty dishes[].name to label that individual ingredient-only item. The independent root-level intake_name labels the complete intake.
3. Modify the Whole-Intake Name
If the user wants to rename the complete intake after it has been created, use POST /intake/{imageId}/modify_name. This edits intake_name; it is not an item-level rename mechanism.
For ingredient-only food items, catalog identifiers such as
idanddish_idremainnull. Whendishes[].nameis supplied, the submitted label is returned in the correspondingfoodNameandrecipe_per_item[].namepositions. When it is omitted, both name values remainnull. Ingredients, serving size, measures, ingredient-derived food groups, nutritional information, and Nutri-Score are returned normally in either case.
Related use case: Create a Custom Dish from Scratch with a Manual Intake
When to Use It / Outcomes
- Users donāt have a photo or prefer manual entry.
- Professionals need to add meals for their managed users, individually or in bulk.
- You want to recreate meals from a known dish ID and optionally customize ingredients and quantity.
- You want to create a one-off food item from scratch using ingredient IDs, without creating or selecting an existing dish.
- Output: JSON with the created intake (ID, timestamp, dish list) and any overrides applied; on bulk/assign endpoints, creation results per user.
Feature-Specific Details
- Add one or more food items to record what was eaten.
- For each food item, provide either a valid dish
idor a non-emptyingredientslist with validingredientIdvalues. - Specify easy-to-modulate ingredient levels (salt, sugar, oil) as high, medium, low, or none.
- Include a serving size in grams for each dish so the system can scale ingredient quantities automatically.
- Add a timestamp for when the meal was eaten (defaults to the current time if not provided).
- If both a dish
idandingredientsare provided, the supplied ingredients replace the default recipe for that dish. - If the dish
idis omitted, the supplied ingredients define the complete recipe and are used to calculate serving size, food groups, nutritional information, and Nutri-Score. - Add an optional non-empty
nameto an ingredient-only item to populate that item'sfoodNameandrecipe_per_item[].namevalues. The text is preserved as submitted and is not translated or resolved against the dish catalog. - A
namesupplied on an item with a valid catalogidnever overrides the catalog-derived name. - Use the root-level
intake_nameonly as an optional label for the complete intake. - The system automatically adjusts nutrition based on your quantities and levels.
- Managers can quickly log or assign meals for one or many users at once.
Related Endpoints
Use the following endpoints to create and manage manual intakes:
-
POST /intake/manualInput/{userId} ā š“ šµ Create a manual intake for a specific user.
-
POST /intake/manualInput/bulkAssign ā šµ **Create manual intakes in bulk for one or multiple users.
-
Maintenance helpers:
- POST /intake/modifyNutritionalInfo ā š“ šµ Modify the nutritional info of an uploaded intake.
- POST /intake/modifyTimestamp ā ā« šµ š“ Set/override the intake timestamp.
- DELETE /intake/{imageId} ā ā« šµ š“ Remove an uploaded intake. This is applicable for any kind of intake (image-based, manual, barcode-based, etc.)
-
Optional lookup helpers:
- GET /dataset/ingredients ā ā« š“ šµ List available ingredients (IDs, names, measures).
Typical Workflow
- Collect inputs: for each food item, provide either a dish
idand/or, optionally, a non-empty ingredients list. Ingredient-only items may also include an item-levelname. Optionally include levels, quantity, timestamp, and the independent root-levelintake_namefor the complete intake. - Single user: call POST /intake/manualInput/{userId}.
- Bulk/assignment (managers): call POST /intake/manualInput/bulkAssign.
- (Optional) Adjust via POST /intake/modifyNutritionalInfo and/or POST /intake/modifyTimestamp.
- Store & display the new intake in History and progress dashboards.
Updated 27 days ago
