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.
recipes_getRecipeFindthrough vritto_findFetch one saved recipe's full detail (ingredients and steps).
| Field | Type | Description |
|---|---|---|
| recipeId* | string | Record id. |
recipes_queryRecipesFindthrough vritto_findSearch saved recipes by text, course, or favorite. Rows are compact summaries (title, cuisine, tags, time, rating); fetch one full recipe with recipes_getRecipe when the user needs ingredients, steps, or notes. Use this to resolve a recipeId before a write.
| Field | Type | Description |
|---|---|---|
| query | string | Text matched against title, cuisine, tags, and ingredients. |
| course | one of breakfast, lunch, dinner, snack, dessert, side | Filter by course. |
| favorite | boolean | Only favorites. |
| includeArchived | boolean | |
| detail | one of summary, full | Row shape: "summary" (default, id/title/cuisine/tags/time/rating) or "full" (every field incl. ingredients, steps, and notes). |
| limit | integer | Max records (default 50 in summary mode). |
recipes_queryRecipesDashboardFindthrough vritto_findReturn the recipes cockpit: this week's meal plan and recently added recipes. Recipe rows are compact summaries; use recipes_getRecipe for a recipe's full detail.
| Field | Type | Description |
|---|---|---|
| detail | one of summary, full | Recent-recipe row shape: "summary" (default, compact rows) or "full" (whole recipes incl. ingredients and steps). |
recipes_createRecipeCreatethrough vritto_createSave a recipe the user provides (dictated or pasted). For fetching from the web, prefer recipes_generateRecipe.
| Field | Type | Description |
|---|---|---|
| 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 |
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_addRecipeToGroceriesUpdatethrough vritto_updatePush a recipe's ingredients into a grocery list. Creates a new list when no listId is given. Scale amounts with servingsMultiplier.
Note: Adds a recipe's ingredients to a grocery list; creates the list when no listId is given.
| Field | Type | Description |
|---|---|---|
| recipeId* | string | Record id. |
| listId | string | Existing grocery list id; omit to create a new list. |
| listTitle | string | Title for the new list when listId is omitted. |
| shoppingDate | string | Shopping date for the auto-created list (default today). Ignored when listId is given. |
| servingsMultiplier | number | Scale ingredient quantities by this factor (default 1). |
recipes_patchRecipeUpdatethrough vritto_updateUpdate fields on an existing recipe.
| Field | Type | Description |
|---|---|---|
| recipeId* | string | Record id. |
| patch* | object | |
| 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 | |
| expectedRevision | integer |
recipes_rateRecipeUpdatethrough vritto_updateSet or clear a recipe's star rating.
| Field | Type | Description |
|---|---|---|
| recipeId* | string | Record id. |
| rating* | integer | 1-5 stars, or null to clear. |
| expectedRevision | integer |
recipes_deleteRecipeDeletethrough vritto_deleteDelete a saved recipe. Only for explicit removals.
| Field | Type | Description |
|---|---|---|
| recipeId* | string | Record id. |
Meal Plan Entrymeal_plan_entry
A recipe or meal planned onto a date and slot.
recipes_queryMealPlanFindthrough vritto_findList meal plan entries in a date range, ordered by date and slot.
| Field | Type | Description |
|---|---|---|
| start | string | Earliest date (inclusive). |
| end | string | Latest date (inclusive). |
| limit | integer | Max entries (default 200). |
recipes_planMealCreatethrough vritto_createSchedule a recipe (or an ad-hoc meal) onto a date and meal slot. Provide recipeId for a saved recipe, or recipeTitle for an ad-hoc meal.
| Field | Type | Description |
|---|---|---|
| entry* | object | 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 |
Example input
{
"entry": {
"date": "2026-09-29",
"mealSlot": "dinner",
"recipeId": "recipe_dal",
"servings": 4
}
}recipes_patchMealPlanEntryUpdatethrough vritto_updateUpdate a meal plan entry (move date/slot, change servings or notes).
| Field | Type | Description |
|---|---|---|
| entryId* | string | Record id. |
| patch* | object | |
| patch.date | string | Calendar date, YYYY-MM-DD. |
| patch.mealSlot | one of breakfast, lunch, dinner, snack | |
| patch.servings | integer | |
| patch.notes | string | |
| patch.sortRank | number | |
| expectedRevision | integer |
recipes_setMealStatusUpdatethrough vritto_updateMark a planned meal as cooked, skipped, or back to planned.
| Field | Type | Description |
|---|---|---|
| entryId* | string | Record id. |
| status* | one of planned, cooked, skipped | |
| expectedRevision | integer |
recipes_deleteMealPlanEntryDeletethrough vritto_deleteRemove a meal plan entry. Only for explicit removals.
| Field | Type | Description |
|---|---|---|
| entryId* | string | Record 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.