BETTERMENU
Studio

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.

GET
/studio/ingredients/used

Query Parameters

sort_by?|null
order?|null
source?|null
status?|null
limit?|null
cursor?string|null

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": {}
    }
  ]
}
BETTERMENU

FDA-compliant nutrition labels from a recipe, in minutes.

Visit bettermenu.live