List Used Ingredients
List the ingredients the caller's organization has actually used, ranked by usage count, recency, or name — spanning standard and custom ingredients in one ordered result set. Distinct from searchIngredients: that endpoint answers 'what can I pick from' (the full catalog, relevance-ranked); this one answers 'what does my organization actually use' (usage-ranked, org-scoped only). Pagination is cursor-based, matching listRecipes: omit cursor on the first page, then pass meta.next_cursor/meta.prev_cursor back verbatim. source/status are applied as DynamoDB filters after the page is read, so a filtered page can return fewer than limit items — possibly zero — even when more matches exist further in. Keep paging until meta.has_more is false rather than reading a short or empty page as the end of the results.
Eventually consistent. Unlike listRecipes, whose rows are written as part of the recipe commit itself, this listing is a background projection: after a recipe is created, edited or deleted, this endpoint can take from seconds to minutes to reflect the change in used_in_recipes, updated_at, and which ingredients appear at all. A read immediately after a write may legitimately return the previous state — retry rather than treating it as missing data. getRecipe and getIngredientUsage are read-your-writes consistent and are the right call when you need the effect of a specific commit confirmed.
Query Parameters
Response Body
application/json
application/json
curl -X GET "https://api.bettermenu.live/studio/ingredients/used"{
"data": [
{
"ingredient_id": "string",
"name": "string",
"source": "standard",
"status": "active",
"used_in_recipes": 0,
"updated_at": "string"
}
],
"meta": {
"version": "string",
"request_id": "string",
"timestamp": "string",
"cursor": "string",
"has_more": true,
"sort_by": "used_in_recipes",
"order": "asc",
"status": "active",
"prev_cursor": "string",
"next_cursor": "string",
"total": 0
}
}{
"detail": [
{
"loc": [
"string"
],
"msg": "string",
"type": "string",
"input": null,
"ctx": {}
}
]
}