BETTERMENU
Studio

List Recipes

List recipes the caller can access in their organization.

Each list item carries latest_version_id — the HEAD ULID for the recipe on the main branch — so callers can pin follow-up reads or diff against a known commit without a per-row round-trip. Each item also carries status (active / archived / deleted) — the recipe lifecycle state.

Pagination is cursor-based: omit cursor on the first page, then pass meta.cursor from each response back as cursor on the next call. meta.has_more mirrors cursor presence as a boolean for client convenience. Server caps limit at 100.

Filtering is intentionally NOT exposed on this endpoint — callers receive the full result set (within the page) and filter client-side on status.

Available only on API versions declaring the recipe_versioning capability. Requests without this capability receive a 404.

GET
/studio/recipes

Query Parameters

limit?Limit

Maximum number of recipes to return per page (1-100).

Default10
Range1 <= value <= 100
cursor?|

Opaque pagination cursor returned in meta.cursor from a previous response. Omit on the first page; pass back verbatim on each subsequent page.

Response Body

application/json

application/json

curl -X GET "https://api.bettermenu.live/studio/recipes"
{
  "data": [
    {
      "id": "string",
      "name": "string",
      "status": "active",
      "country": "US",
      "regulatory_authority": "US_FDA",
      "demographic": "adults_and_children_over_4",
      "created_at": "string",
      "updated_at": "string",
      "latest_version_id": "string"
    }
  ],
  "meta": {
    "version": "string",
    "request_id": "string",
    "timestamp": "string",
    "cursor": "string",
    "has_more": true
  }
}
{
  "detail": [
    {
      "loc": [
        "string"
      ],
      "msg": "string",
      "type": "string",
      "input": null,
      "ctx": {}
    }
  ]
}