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.
Query Parameters
Maximum number of custom ingredients to return (1-100).
201 <= value <= 100Opaque pagination cursor returned in meta.cursor from a previous response. Omit on the first page; pass back verbatim on each subsequent page.
Filter to custom ingredients in this lifecycle state: draft, active, archived or deleted. Omit to return all four, deleted included. Applied as a DynamoDB filter after the page is read, so a filtered page can be short or empty while more matches exist further in.
Response Body
application/json
application/json
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
}
}{
"detail": [
{
"loc": [
"string"
],
"msg": "string",
"type": "string",
"input": null,
"ctx": {}
}
]
}