Skip to content
Skip to Content
Docs
Studio

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.

GET
/studio/custom-ingredients

Query Parameters

limit?Limit

Maximum number of custom ingredients to return (1-100).

Range1 <= value <= 100
Default20
cursor?|

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.

Response Body

Successful Response

application/json
  1. response

Response for the list-custom-ingredients endpoint.

data*array<>
meta*

Paginated response metadata.

Example Request
curl -X GET 'https://api.bettermenu.live/studio/custom-ingredients'
Example Response
{  "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  }}

Recipe in, FDA-format Nutrition Facts out, with every version kept.

Start freeNo card needed.