# Set Recipe Ingredients



{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}

④ of 5 | Next: ⑤ addRecipeServing

Step 4 of the recipe formulation workflow — directly save pre-resolved ingredients to a recipe without a server-side LLM resolution step.

Call this after:
① searchUsIngredients — to get ingredient\_id values
② computeConversions — to get quantity\_grams values
③ createRecipe — to get the recipe\_id

Each item requires an ingredient\_id (f\_... from searchUsIngredients) and quantity\_grams (from computeConversions or provided directly). original\_text is optional but recommended for the audit trail.

On success, recipe-level nutrition (L1) and any existing per-serving panels (L2) are recomputed atomically in the same commit.

Next: ⑤ addRecipeServing — add a serving size to generate the final nutrition facts label.

Note: getLatestIngredientResolution and listIngredientResolutions will return 404 / \[] after this call — that is correct and expected. Those endpoints only reflect the server-side resolve → confirm workflow; this endpoint bypasses it. Use getRecipeIngredients to read the ingredients you just set.

<APIPage document="&#x22;bettermenu&#x22;" operations="[{&#x22;path&#x22;:&#x22;/studio/recipes/{recipe_id}/ingredients&#x22;,&#x22;method&#x22;:&#x22;post&#x22;}]" />
