BETTERMENU
Studio

Patch Recipe Metadata

Partially update recipe metadata — rename, change country, or change demographic.

Send only the fields you want to change; omitted fields stay unchanged.

Side effect: Changing country or demographic triggers automatic nutrition recomputation. The updated nutrition figures are available immediately after the update completes.

The new name must be unique within the organization. All changes are logged in the audit trail.

The response carries version_id — the sealed Version ULID — which callers pass back as If-Match on the next mutation for optimistic concurrency. A mismatch returns 412 with the current version_id so the client can refetch and retry.

PATCH
/studio/recipes/{recipe_id}

Path Parameters

recipe_id*Recipe Id

Header Parameters

If-Match*string

Optimistic-concurrency token. Pass the version_id returned by the previous mutation (or by GET /recipes/{id}/versions) so the server can reject the request when another writer has advanced the recipe in the meantime. A stale token (header present but HEAD has moved) surfaces HTTP 409 with the current version_id in the response body. An absent token on a versioned recipe surfaces HTTP 412. Only consumed on API versions that declare the recipe_versioning capability — older versions ignore the header.

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

curl -X PATCH "https://api.bettermenu.live/studio/recipes/string" \  -H "If-Match: string" \  -H "Content-Type: application/json" \  -d '{    "name": "Updated Recipe Name"  }'
{
  "data": {
    "id": "string",
    "name": "string",
    "country": "US",
    "regulatory_authority": "US_FDA",
    "demographic": "adults_and_children_over_4",
    "status": "active",
    "created_at": "string",
    "updated_at": "string",
    "summary": {
      "ingredient_count": 0,
      "has_nutrition": true,
      "is_nutrition_current": true,
      "serving_count": 0,
      "has_nutrition_facts": true
    },
    "actions": {
      "can_modify": true,
      "can_archive": true,
      "can_delete": true
    }
  },
  "meta": {
    "version": "string",
    "request_id": "string",
    "timestamp": "string"
  },
  "version_id": "string"
}
Empty
Empty
{
  "detail": [
    {
      "loc": [
        "string"
      ],
      "msg": "string",
      "type": "string",
      "input": null,
      "ctx": {}
    }
  ]
}
BETTERMENU

FDA-compliant nutrition labels from a recipe, in minutes.

Visit bettermenu.live