BETTERMENU
Studio

Update Recipe Metadata

Update recipe metadata — rename a recipe, change country, or change demographic.

Use this to answer: "rename my recipe", "change the recipe name", "update recipe settings"

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.

Related endpoints:

  • getRecipe — see current metadata
  • computeRecipeNutrition — recalculate if country/demographic changed
  • getRecipeAuditTrail — see the change history
PUT
/studio/recipes/{recipe_id}

Authorization

BearerAuth
AuthorizationBearer <token>

JWT Bearer token authentication

In: header

Path Parameters

recipe_id*string

Unique recipe identifier

Request Body

application/json

name?|

New recipe name. Must be unique within the organization.

country?|

Update the country. Clears computed nutrition — recalculate after changing. Currently only US (→ US_FDA) is supported; additional countries coming soon.

demographic?|

Update the demographic group for %DV calculations. Must be valid for the recipe's regulatory authority. Clears computed nutrition — recalculate after changing.

rationale?|

Reason for the change (stored in audit trail)

Response Body

application/json

application/json

curl -X PUT "https://loading/studio/recipes/string" \  -H "Content-Type: application/json" \  -d '{    "name": "Updated Recipe Name"  }'
{
  "data": {
    "id": "string",
    "org_id": "string",
    "name": "string",
    "country": "US",
    "regulatory_authority": "US_FDA",
    "demographic": "adults_and_children_over_4",
    "status": "draft",
    "ingredient_count": 0,
    "has_nutrition": true,
    "created_at": "string",
    "updated_at": "string",
    "actions": {
      "can_modify": true,
      "can_publish": true,
      "can_archive": true,
      "can_delete": true
    }
  },
  "meta": {
    "version": "string",
    "request_id": "string",
    "timestamp": "string"
  }
}
Empty
{
  "detail": [
    {
      "loc": [
        "string"
      ],
      "msg": "string",
      "type": "string",
      "input": null,
      "ctx": {}
    }
  ]
}