Compute Nutrition Facts
Compute compliant-rounded nutrition facts for a serving.
Applies compliant rounding rules to produce per-serving and optionally per-container nutrition facts.
The top-level version_id identifies the new version created by
this operation. Pass it back as If-Match on the next mutation.
409 scenarios and recovery — check steps_required in the response:
- MISSING_DEPENDENCY: no nutrition -> call setRecipeIngredients first
- STALE_DEPENDENCY: ingredients changed since nutrition was computed -> re-call setRecipeIngredients
- MISSING_DEPENDENCY: no serving -> call addRecipeServing After completing steps_required, retry this call.
Available only on API versions declaring the recipe_versioning
capability. Requests without this capability receive a 404.
Related endpoints:
- getRecipePerServingNutritionFacts — retrieve the stored result
Path Parameters
Header Parameters
Optimistic-concurrency token. Pass the version_id returned by the previous mutation (or by GET /recipes/{id}/versions) so the server can reject the request when another writer has advanced the recipe in the meantime. A stale token (header present but HEAD has moved) surfaces HTTP 409 with the current version_id in the response body. An absent token on a versioned recipe surfaces HTTP 412. Only consumed on API versions that declare the recipe_versioning capability — older versions ignore the header.
Response Body
application/json
application/json
curl -X POST "https://api.bettermenu.live/studio/recipes/string/servings/string/nutrition-facts/compute" \ -H "If-Match: string"{
"data": {
"recipe_id": "string",
"serving_id": "string",
"per_serving": {
"calculated_at": "string",
"serving_id": "string",
"demographic": "string",
"reference_weight_grams": 0,
"nutrients": [
{
"bmid": "string",
"name": "string",
"amount": 0,
"unit": "string",
"display_text": "string",
"percent_daily_value": 0
}
]
},
"per_container": {
"calculated_at": "string",
"serving_id": "string",
"demographic": "string",
"reference_weight_grams": 0,
"nutrients": [
{
"bmid": "string",
"name": "string",
"amount": 0,
"unit": "string",
"display_text": "string",
"percent_daily_value": 0
}
]
}
},
"meta": {
"version": "string",
"request_id": "string",
"timestamp": "string"
},
"version_id": "string"
}{
"detail": [
{
"loc": [
"string"
],
"msg": "string",
"type": "string",
"input": null,
"ctx": {}
}
]
}