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 clears computed nutrition data. Recalculate nutrition after the update.

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?|

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 mismatch surfaces HTTP 412 with the current version_id in the response body so the client can decide whether to retry, merge, or surface the conflict to the user. 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://loading/studio/recipes/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": {}
    }
  ]
}