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. The cursor is self-contained — it carries forward the
sort_by/order/status it was issued under, so subsequent pages
don't need to resend them. Passing a param that conflicts with what
the cursor was issued under starts a fresh query at page 1 under the
new param rather than erroring. meta echoes the effective
sort_by/order/status actually applied. Server caps limit
at 100.
Sort defaults to updated_at desc (most recently updated first).
status filters to active or archived; omit to return all
non-deleted recipes.
Available only on API versions declaring the recipe_versioning
capability. Requests without this capability receive a 404.
Query Parameters
Maximum number of recipes to return per page (1-100).
101 <= value <= 100Opaque pagination cursor returned in meta.cursor from a previous response. Omit on the first page; pass back verbatim on each subsequent page. Self-contained — carries forward the sort/filter it was issued under, so subsequent pages don't need to resend sort_by/order/status.
Field to sort by. Defaults to updated_at.
Sort direction. Defaults to desc (most recently updated first).
Filter to recipes in this lifecycle state. Omit to return all non-deleted recipes.
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,
"sort_by": "updated_at",
"order": "asc",
"status": "active"
}
}{
"detail": [
{
"loc": [
"string"
],
"msg": "string",
"type": "string",
"input": null,
"ctx": {}
}
]
}