Create a meal
Creates a partner-authored meal under an existing nutrition plan. Coach-generated meals arrive as part of the nutrition-plan generation job and do not flow through this endpoint. `nutrition_plan_id` is required — ad-hoc plan-less meals are not yet supported (a missing field returns `422`).
Authorization
MemberBearer Member-scoped JWT minted by POST /v1/auth/token. Required on every /v1/users/{user_id}/... route; the token's sub claim must match the path user_id.
In: header
Path Parameters
uuidHeader Parameters
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
curl -X POST "https://loading/v1/users/497f6eca-6276-4993-bfeb-53cbbbba6f08/meals" \ -H "Content-Type: application/json" \ -d '{ "nutrition_plan_id": "4aad14a6-572f-4d4e-b565-85a0adb6117b", "meal_type": "breakfast", "scheduled_time": "2019-08-24T14:15:22Z", "title": "string" }'{
"data": {
"meal_id": "e8f91bba-a1fd-4250-b513-e8e22cf6d4ad",
"nutrition_plan_id": "4aad14a6-572f-4d4e-b565-85a0adb6117b",
"meal_type": "breakfast",
"scheduled_time": "2019-08-24T14:15:22Z",
"title": "string",
"calories": 0,
"ingredients": [
{}
],
"instructions": [
"string"
],
"log": {}
}
}{
"detail": [
{
"loc": [
"string"
],
"msg": "string",
"type": "string"
}
]
}List meals (with embedded log when present)
Paginated list of meals for the member, plan-associated and ad-hoc. Each entry carries an embedded `log` when the member has logged the meal so partners can render scheduled-vs-eaten without an extra fetch. Filter by log presence (`logged=true` or `false`) or by `scheduled_time` window (`start_date` / `end_date`, inclusive); `start_date` defaults to today when omitted, `end_date` is open-ended.
Read one meal (with embedded log when present)
Returns the full meal record (ingredients, instructions, calories) plus an embedded `log` when the member has logged. `nutrition_plan_id` is `null` when the meal is not plan-associated.