List Custom Ingredients
List the organization's custom ingredients — one lightweight summary per row. Filter by status to narrow to a single lifecycle state.
status is applied as a DynamoDB filter after the page is read, so a filtered page can return fewer than limit items — possibly zero — even when more matches exist further in. An empty page with meta.has_more: true is not an empty result set: keep paging with meta.cursor until meta.has_more is false.
Deleted custom ingredients are included in every page here, filtered or not, because a deleted custom ingredient stays readable. This is the opposite default to listRecipes, which excludes deleted recipes from every page regardless of filter. Pass status=deleted to list only them.
limit?LimitMaximum number of custom ingredients to return (1-100).
1 <= value <= 10020cursor?|Opaque pagination cursor returned in meta.cursor from a previous response. Omit on the first page; pass back verbatim on each subsequent page.
status?|Filter to custom ingredients in this lifecycle state: draft, active, archived or deleted. Omit to return all four, deleted included. Applied after the page is read, so a filtered page can be short or empty while more matches exist further in.
Successful Response
application/json- response
Response for the list-custom-ingredients endpoint.
data*array<>meta*Paginated response metadata.
curl -X GET 'https://api.bettermenu.live/studio/custom-ingredients'{ "data": [ { "id": "string", "name": "string", "status": "draft", "created_at": "string", "updated_at": "string" } ], "meta": { "version": "string", "request_id": "string", "timestamp": "string", "cursor": "string", "has_more": true }}