Recipes
Fields marked * are required. Updates keep every field they are not given. An AI app can ask vritto_describe for the same details, filtered to what its connection may use.
Reciperecipe
A saved recipe with ingredients and steps. The same operations reach the meal plan, a recipe or meal on a date and slot (type 'meal'), and add a recipe's ingredients to a grocery list (type 'groceries').
recipes_findFindthrough vritto_findRead Recipes: with no filter this week's meal plan and recent recipes; query, course and favorite search saved recipes (compact rows); an id returns one recipe's ingredients and steps; type 'meal' with start/end lists the meal plan.
Note: With no filter: this week's meal plan and recent recipes. type 'meal' with start/end reads the meal plan.
| Field | Type | Description |
|---|---|---|
| type | one of recipe, meal | 'recipe' (default) saved recipes; 'meal' the meal plan. |
| id | string | One saved recipe's full detail. |
| query | string | Text matched against title, cuisine, tags, and ingredients. |
| course | one of breakfast, lunch, dinner, snack, dessert, side | Recipes for this course. |
| favorite | boolean | Only favorites. |
| includeArchived | boolean | |
| start | string | Meal plan: earliest date (inclusive). |
| end | string | Meal plan: latest date (inclusive). ALWAYS pass start/end when the question concerns a week or a day. |
| detail | one of summary, full | 'summary' (default) compact recipe rows; 'full' every field incl. ingredients, steps, and notes. |
| limit | integer | Max rows (recipes 50, meal plan entries 200 by default). |
| recipeId | string | Older name for id. |
Example input
{
"query": "dal"
}recipes_addCreatethrough vritto_createAdd to Recipes: a recipe the user dictates or pastes (recipe), a meal on the plan (type 'meal': a saved recipe's recipeId or an ad-hoc recipeTitle on a date and slot), or a recipe's ingredients onto a grocery list (type 'groceries'; a new list when no listId is given). For a recipe from the web, use recipes_generateRecipe.
Note: type 'meal' plans a meal; type 'groceries' adds a recipe's ingredients to a grocery list (a new list when no listId is given).
| Field | Type | Description |
|---|---|---|
| type | one of recipe, meal, groceries | Record type: 'recipe' (default) a saved recipe; 'meal' a meal plan entry on a date and slot; 'groceries' (add only) a recipe's ingredients pushed onto a grocery list. |
| recipe | object | Full recipe body. Writes replace stored fields, so include everything to keep. |
| recipe.title* | string | Recipe title. |
| recipe.description | string | |
| recipe.sourceUrl | string | Original recipe URL. |
| recipe.sourceName | string | |
| recipe.servings | integer | |
| recipe.prepMinutes | integer | |
| recipe.cookMinutes | integer | |
| recipe.difficulty | one of easy, medium, hard | Difficulty. |
| recipe.cuisine | string | |
| recipe.courses | list of one of | |
| recipe.tags | list of string | |
| recipe.ingredients | list of object | |
| recipe.steps | list of object | |
| recipe.rating | integer | Whole-star rating 1-5, only when the user stated one. |
| recipe.favorite | boolean | Mark as a favorite when the user calls it one. |
| recipe.notes | string | |
| entry | object | Type 'meal': the meal plan entry. |
| entry.date* | string | Calendar date, YYYY-MM-DD. |
| entry.mealSlot* | one of breakfast, lunch, dinner, snack | |
| entry.recipeId | string | Saved recipe id, if planning a saved recipe. |
| entry.recipeTitle | string | Meal title; required for ad-hoc meals with no recipeId. |
| entry.servings | integer | |
| entry.notes | string | |
| entry.sortRank | number | |
| recipeId | string | Type 'groceries': the recipe whose ingredients to add. |
| listId | string | Type 'groceries': an existing grocery list id; omit to create a new list. |
| listTitle | string | Type 'groceries': title for the new list when listId is omitted. |
| shoppingDate | string | Type 'groceries': shopping date for the new list (default today). Ignored when listId is given. |
| servingsMultiplier | number | Type 'groceries': scale ingredient quantities by this factor (default 1). |
Example input
{
"recipe": {
"title": "Weeknight dal",
"servings": 4,
"prepMinutes": 10,
"cookMinutes": 30,
"cuisine": "Indian",
"courses": [
"dinner"
],
"ingredients": [
{
"name": "red lentils",
"quantity": "1",
"unit": "cup"
},
{
"name": "onion",
"quantity": "1",
"note": "diced"
}
],
"steps": [
{
"text": "Rinse the lentils."
},
{
"text": "Simmer with onion and spices for 25 minutes."
}
]
}
}recipes_changeUpdatethrough vritto_updateChange one recipe by id (patch its fields, archived true archives it; rating 1-5 or null) or one meal plan entry (type 'meal': status cooked, skipped or planned; patch moves its date or slot or changes servings or notes). Resolve the id with recipes_find first.
| Field | Type | Description |
|---|---|---|
| type | one of recipe, meal | 'recipe' (default) a saved recipe; 'meal' a meal plan entry. |
| id | string | The recipe, or with type 'meal' the entry, to change. |
| patch | object | The fields to change; the rest stay. A recipe's fields, or a meal's date, mealSlot, servings and notes. |
| patch.title | string | Recipe title. |
| patch.description | string | |
| patch.sourceUrl | string | Original recipe URL. |
| patch.sourceName | string | |
| patch.servings | integer | |
| patch.prepMinutes | integer | |
| patch.cookMinutes | integer | |
| patch.difficulty | one of easy, medium, hard | Difficulty. |
| patch.cuisine | string | |
| patch.courses | list of one of | |
| patch.tags | list of string | |
| patch.ingredients | list of object | |
| patch.steps | list of object | |
| patch.favorite | boolean | Mark as a favorite when the user calls it one. |
| patch.notes | string | |
| patch.archived | boolean | |
| patch.date | string | Type 'meal': a new date. |
| patch.mealSlot | one of breakfast, lunch, dinner, snack | Type 'meal': a new slot. |
| patch.sortRank | number | |
| rating | integer | A recipe's stars, 1-5, or null to clear. |
| status | one of planned, cooked, skipped | Type 'meal': cooked, skipped, or back to planned. |
| expectedRevision | integer | |
| recipeId | string | Older name for a recipe's id. |
| entryId | string | Older name for a meal plan entry's id. |
Example input
{
"id": "recipe_dal",
"rating": 5
}recipes_removeDeletethrough vritto_deleteRemove one saved recipe, or one meal plan entry (type 'meal'). Only for explicit removals; a skipped meal is a change.
Note: type 'meal' removes a meal plan entry instead.
| Field | Type | Description |
|---|---|---|
| type | one of recipe, meal | 'recipe' (default) a saved recipe; 'meal' a meal plan entry. |
| id | string | The recipe, or with type 'meal' the entry, to remove. |
| recipeId | string | Older name for a recipe's id. |
| entryId | string | Older name for a meal plan entry's id. |
Kept in the Vritto app
recipes_generateRecipe: Runs Vritto's own AI; the calling assistant is already an AI.recipes_generateRecipeImage: Runs Vritto's own AI; the calling assistant is already an AI.