Find an ingredient substitute
substitute_ingredientFind what can replace a single ingredient, optionally under a dietary constraint (vegan, vegetarian, halal, dairy-free, pescatarian). Each result is marked "substitute" (same dish) or "adaptation" (result is a meaningfully different dish) - most swaps forced by a diet exclusion are adaptations, and the tool says so rather than overselling a swap as if the dish stayed the same. Precomputed and model-verified, not generated on the fly.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Language for titles, ingredient names and URLs. | en |
| limit | No | Max substitutes to return, best first. | |
| context | No | Dietary constraint the substitute must satisfy. Omit for the single best general substitute with no diet filter. Other constraints (gluten-free, allergen-free) are not supported - the corpus has no gluten/allergen data, so the tool would have to guess, and it does not. | |
| ingredient | Yes | Ingredient name in any of the 7 site languages, or its English canonical form (e.g. "pork belly", "domuz göbeği", "Schweinebauch"). |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| notes | Yes | ||
| context | Yes | ||
| declined | Yes | Set instead of an empty substitutes array explaining why there are none - a missing reason is a bug, not a deliberate silence. | |
| ingredient | Yes | Resolved canonical (English) ingredient name. | |
| attribution | Yes | ||
| resolved_by | Yes | ||
| substitutes | Yes | ||
| ingredient_label | Yes | Ingredient name translated into the requested language. |