Create a new meal for a user. This endpoint stores the meal and triggers asynchronous nutrition analysis. The response includes the meal with analysis_status=‘pending’. When analysis completes, a ‘meals:updated’ webhook will be sent with full nutrition data.
API key for authentication
User ID (e.g., google_104940819145861640201)
Meal data (requires either description or image_base64)
Input schema for creating or updating a meal
ISO 8601 timestamp of when the meal was consumed
"2024-10-28T12:00:00Z"
Text description of the meal/food consumed. Required if image_base64 is not provided.
2000"Grilled chicken breast with quinoa and steamed broccoli"
Base64-encoded image data with data URI prefix. Required if description is not provided.
^data:image/(jpeg|png|jpg);base64,[A-Za-z0-9+/=]+$"data:image/jpeg;base64,/9j/4AAQSkZJRg..."
Multiplier for portion size (default 1.0)
0.1 <= x <= 101.5
Additional comment about the meal
500"Homemade healthy lunch"
Meal created successfully (analysis pending)
A meal record with nutrition analysis status
Unique meal identifier (ULID format)
"meal_01JCXVK5N3P4Q2R7S8T9U0V1W2"
User ID this meal belongs to
Project ID this meal belongs to
ISO 8601 timestamp of when the meal was consumed
"2024-10-28T12:00:00Z"
Status of nutrition analysis
pending, complete, failed "complete"
ISO 8601 timestamp when the meal was created
"2024-10-28T12:05:00Z"
ISO 8601 timestamp when the meal was last updated
"2024-10-28T12:10:00Z"
Text description of the meal/food consumed
2000"Grilled chicken breast with quinoa and steamed broccoli"
Presigned URL to access the meal image (expires in 24 hours)
"https://s3.amazonaws.com/bucket/meals/image.jpg?X-Amz-..."
Multiplier for portion size
0.1 <= x <= 101.5
Additional comment about the meal
500"Homemade healthy lunch"
Error message when analysis_status is 'failed' (max 500 characters, truncated if longer)
500"Failed to analyze meal: Image is not food-related"
Reference to the AI-generated MealSummary (set when analysis completes)
"aisummary_01JCXVK5N3P4Q2R7S8T9U0V1W2"
True if this meal has been analyzed by AI
true
AI-generated title for the meal summary
"Meal Summary"
AI-generated analysis text
"Great balanced meal! This chicken with broccoli and brown rice provides excellent protein (35g) with moderate carbs."
AI-identified meal name
"Grilled Chicken with Vegetables"
AI-identified ingredients list
"chicken breast, broccoli, brown rice, olive oil"
Estimated calories (kcal)
450
Estimated protein in grams
35
Estimated fat in grams
12
Estimated carbohydrates in grams
45
Estimated sugar in grams
5
Estimated fiber in grams
6
Estimated glucose spike in mg/dL
25
Overall healthiness grade (A-E, where A is healthiest and E is least healthy)
"A"