Portal
SandboxAPI v1Not signed inExternal user: —

Ingredients resource

GET/POST /v1/ingredients — search, normalize, list. foodapi.resources.ingredients.IngredientsResource ¶ IngredientsResource(transport: Any) Bases: BaseResource…

GET/POST /v1/ingredients — search, normalize, list.

foodapi.resources.ingredients.IngredientsResource

IngredientsResource(transport: Any)

Bases: BaseResource

Ingredient search, list, get, and normalize (/v1/ingredients).

list

list(
    *,
    search: str | None = None,
    dietary_role: str | None = None,
    biological_origin: str | None = None,
    culinary_function: str | None = None,
    limit: int = 20,
    offset: int = 0
) -> IngredientListResponse

Paginated ingredient discovery list (GET /v1/ingredients).

normalize

normalize(
    ingredient_text: str,
) -> NormalizeIngredientResponse

Normalize a raw ingredient line (POST /v1/ingredients/normalize).

search

search(
    query: str, *, limit: int = 20
) -> IngredientSearchResult

Search canonical names and aliases (GET /v1/ingredients/search).

get

get(ingredient_id: str | UUID) -> Ingredient

Fetch ingredient by id (GET /v1/ingredients/{id}).

foodapi.resources.ingredients.AsyncIngredientsResource

AsyncIngredientsResource(transport: Any)

Bases: BaseResource

Async ingredient resource.

Example

norm = client.ingredients.normalize("1 lb beef")
print(norm.canonical_name, norm.match_strategy)
hits = client.ingredients.search("garlic", limit=5)