Save a recipe
save_recipeSave a recipe to the user's box in ONE call: one written in chat, pasted, from a photo/file, or from import_from_url. Saves right away; don't ask questions first. Gaps get defaults (4 servings, private; filing inferred); afterwards tell the user the assumed items in one line. If this recipe is an open draft, pass draft_id. Blocked on read-only accounts. Returns {id, title, filed, assumed}.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| diet | No | Diet labels only as the user stated them, e.g. ["Vegetarian"] | |
| tags | No | 0-3 free-form tags | |
| steps | No | Strings or {text, timer_minutes, temp_f}; replaces the whole list | |
| title | Yes | Dish name, max 200 chars, e.g. "Lemon Garlic Chicken" | |
| course | No | Course facet (one value) | |
| method | No | Cooking methods | |
| cuisine | No | Any level, e.g. "Mexican", "Sicilian", "Asian" | |
| draft_id | No | Open draft id from start_recipe_draft to save into (avoids a duplicate) | |
| occasion | No | e.g. ["Weeknight", "Christmas", "Game Day"] | |
| servings | No | Number of servings the amounts make, e.g. 4 (default 4 on save) | |
| source_url | No | Original web page URL, if any | |
| visibility | No | private = only the user; family = shared with family_group_id. Default: the user's sharing default | |
| description | No | One or two sentences about the dish, max 2000 chars | |
| ingredients | Yes | Lines like "2 cups flour, sifted" or {quantity, unit, item, note, group}; replaces the whole list | |
| inspired_by | No | Sources it riffs on: [{title, url}] | |
| cook_minutes | No | Cook time in minutes | |
| prep_minutes | No | Prep time in minutes | |
| menu_entry_id | No | Menu slot to fill once saved | |
| family_group_id | No | Group id (from manage_family list) when visibility is family | |
| main_ingredient | No | Main-ingredient facet (one value) |