openapi: 3.2.0 info: title: 'Mealie Households: Mealplans API' description: ' Mealie is a web application for managing your recipes, meal plans, and shopping lists. This is the Restful API interactive documentation that can be used to explore the API. If you''re justing getting started with the API and want to get started quickly, you can use the [API Usage | Mealie Docs](https://docs.mealie.io/documentation/getting-started/api-usage/) as a reference for how to get started. If you have any questions or comments about mealie, please use the discord server to talk to the developers or other community members. If you''d like to file an issue, please use the [GitHub Issue Tracker | Mealie](https://github.com/mealie-recipes/mealie/issues/new/choose) ## Helpful Links - [Home Page](https://mealie.io) - [Documentation](https://docs.mealie.io) - [Discord](https://discord.gg/QuStdQGSGK) - [Demo](https://demo.mealie.io) ' version: nightly tags: - name: 'Households: Mealplans' paths: /api/households/mealplans: get: tags: - 'Households: Mealplans' summary: Get All operationId: get_all_api_households_mealplans_get security: - OAuth2PasswordBearer: [] parameters: - name: start_date in: query required: false schema: anyOf: - type: string format: date - type: 'null' title: Start Date - name: end_date in: query required: false schema: anyOf: - type: string format: date - type: 'null' title: End Date - name: orderBy in: query required: false schema: anyOf: - type: string - type: 'null' title: Orderby - name: orderByNullPosition in: query required: false schema: anyOf: - $ref: '#/components/schemas/OrderByNullPosition' - type: 'null' title: Orderbynullposition - name: orderDirection in: query required: false schema: $ref: '#/components/schemas/OrderDirection' default: desc - name: queryFilter in: query required: false schema: anyOf: - type: string - type: 'null' title: Queryfilter - name: paginationSeed in: query required: false schema: anyOf: - type: string - type: 'null' title: Paginationseed - name: page in: query required: false schema: type: integer default: 1 title: Page - name: perPage in: query required: false schema: type: integer default: 50 title: Perpage - name: accept-language in: header required: false schema: anyOf: - type: string - type: 'null' title: Accept-Language responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/PlanEntryPagination' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' post: tags: - 'Households: Mealplans' summary: Create One operationId: create_one_api_households_mealplans_post security: - OAuth2PasswordBearer: [] parameters: - name: accept-language in: header required: false schema: anyOf: - type: string - type: 'null' title: Accept-Language requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreatePlanEntry' responses: '201': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ReadPlanEntry' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/households/mealplans/today: get: tags: - 'Households: Mealplans' summary: Get Todays Meals operationId: get_todays_meals_api_households_mealplans_today_get security: - OAuth2PasswordBearer: [] parameters: - name: accept-language in: header required: false schema: anyOf: - type: string - type: 'null' title: Accept-Language responses: '200': description: Successful Response content: application/json: schema: {} '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/households/mealplans/random: post: tags: - 'Households: Mealplans' summary: Create Random Meal description: '`create_random_meal` is a route that provides the randomized functionality for mealplaners. It operates by following the rules set out in the household''s mealplan settings. If no settings are set, it will return any random meal. Refer to the mealplan settings routes for more information on how rules can be applied to the random meal selector.' operationId: create_random_meal_api_households_mealplans_random_post security: - OAuth2PasswordBearer: [] parameters: - name: accept-language in: header required: false schema: anyOf: - type: string - type: 'null' title: Accept-Language requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateRandomEntry' responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ReadPlanEntry' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/households/mealplans/{item_id}: get: tags: - 'Households: Mealplans' summary: Get One operationId: get_one_api_households_mealplans__item_id__get security: - OAuth2PasswordBearer: [] parameters: - name: item_id in: path required: true schema: type: integer title: Item Id - name: accept-language in: header required: false schema: anyOf: - type: string - type: 'null' title: Accept-Language responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ReadPlanEntry' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' put: tags: - 'Households: Mealplans' summary: Update One operationId: update_one_api_households_mealplans__item_id__put security: - OAuth2PasswordBearer: [] parameters: - name: item_id in: path required: true schema: type: integer title: Item Id - name: accept-language in: header required: false schema: anyOf: - type: string - type: 'null' title: Accept-Language requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdatePlanEntry' responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ReadPlanEntry' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' delete: tags: - 'Households: Mealplans' summary: Delete One operationId: delete_one_api_households_mealplans__item_id__delete security: - OAuth2PasswordBearer: [] parameters: - name: item_id in: path required: true schema: type: integer title: Item Id - name: accept-language in: header required: false schema: anyOf: - type: string - type: 'null' title: Accept-Language responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ReadPlanEntry' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' components: schemas: UpdatePlanEntry: properties: date: type: string format: date title: Date entryType: $ref: '#/components/schemas/PlanEntryType' default: breakfast title: type: string title: Title default: '' text: type: string title: Text default: '' recipeId: anyOf: - type: string format: uuid - type: 'null' title: Recipeid id: type: integer title: Id groupId: type: string format: uuid title: Groupid userId: type: string format: uuid title: Userid type: object required: - date - id - groupId - userId title: UpdatePlanEntry CreatePlanEntry: properties: date: type: string format: date title: Date entryType: $ref: '#/components/schemas/PlanEntryType' default: breakfast title: type: string title: Title default: '' text: type: string title: Text default: '' recipeId: anyOf: - type: string format: uuid - type: 'null' title: Recipeid type: object required: - date title: CreatePlanEntry CreateRandomEntry: properties: date: type: string format: date title: Date entryType: $ref: '#/components/schemas/PlanEntryType' default: dinner type: object required: - date title: CreateRandomEntry ReadPlanEntry: properties: date: type: string format: date title: Date entryType: $ref: '#/components/schemas/PlanEntryType' default: breakfast title: type: string title: Title default: '' text: type: string title: Text default: '' recipeId: anyOf: - type: string format: uuid - type: 'null' title: Recipeid id: type: integer title: Id groupId: type: string format: uuid title: Groupid userId: type: string format: uuid title: Userid householdId: type: string format: uuid title: Householdid recipe: anyOf: - $ref: '#/components/schemas/RecipeSummary' - type: 'null' type: object required: - date - id - groupId - userId - householdId title: ReadPlanEntry RecipeSummary: properties: id: anyOf: - type: string format: uuid4 - type: 'null' title: Id userId: type: string format: uuid4 title: Userid householdId: type: string format: uuid4 title: Householdid groupId: type: string format: uuid4 title: Groupid name: anyOf: - type: string - type: 'null' title: Name slug: type: string title: Slug default: '' image: anyOf: - {} - type: 'null' title: Image recipeServings: type: number title: Recipeservings default: 0 recipeYieldQuantity: type: number title: Recipeyieldquantity default: 0 recipeYield: anyOf: - type: string - type: 'null' title: Recipeyield totalTime: anyOf: - type: string - type: 'null' title: Totaltime prepTime: anyOf: - type: string - type: 'null' title: Preptime cookTime: anyOf: - type: string - type: 'null' title: Cooktime performTime: anyOf: - type: string - type: 'null' title: Performtime description: anyOf: - type: string - type: 'null' title: Description default: '' recipeCategory: anyOf: - items: $ref: '#/components/schemas/RecipeCategory' type: array - type: 'null' title: Recipecategory default: [] tags: anyOf: - items: $ref: '#/components/schemas/RecipeTag' type: array - type: 'null' title: Tags default: [] tools: items: $ref: '#/components/schemas/RecipeTool' type: array title: Tools default: [] rating: anyOf: - type: number - type: 'null' title: Rating orgURL: anyOf: - type: string - type: 'null' title: Orgurl dateAdded: anyOf: - type: string format: date - type: 'null' title: Dateadded dateUpdated: anyOf: - type: string format: date-time - type: 'null' title: Dateupdated createdAt: anyOf: - type: string format: date-time - type: 'null' title: Createdat updatedAt: anyOf: - type: string format: date-time - type: 'null' title: Updatedat lastMade: anyOf: - type: string format: date-time - type: 'null' title: Lastmade type: object title: RecipeSummary PlanEntryPagination: properties: page: type: integer title: Page default: 1 per_page: type: integer title: Per Page default: 10 total: type: integer title: Total default: 0 total_pages: type: integer title: Total Pages default: 0 items: items: $ref: '#/components/schemas/ReadPlanEntry' type: array title: Items next: anyOf: - type: string - type: 'null' title: Next previous: anyOf: - type: string - type: 'null' title: Previous type: object required: - items title: PlanEntryPagination HTTPValidationError: properties: detail: items: $ref: '#/components/schemas/ValidationError' type: array title: Detail type: object title: HTTPValidationError PlanEntryType: type: string enum: - breakfast - lunch - dinner - side - snack - drink - dessert title: PlanEntryType OrderDirection: type: string enum: - asc - desc title: OrderDirection ValidationError: properties: loc: items: anyOf: - type: string - type: integer type: array title: Location msg: type: string title: Message type: type: string title: Error Type input: title: Input ctx: type: object title: Context type: object required: - loc - msg - type title: ValidationError RecipeCategory: properties: id: anyOf: - type: string format: uuid4 - type: 'null' title: Id groupId: anyOf: - type: string format: uuid4 - type: 'null' title: Groupid name: type: string title: Name slug: type: string title: Slug recipeCount: type: integer title: Recipecount default: 0 type: object required: - name - slug title: RecipeCategory RecipeTag: properties: id: anyOf: - type: string format: uuid4 - type: 'null' title: Id groupId: anyOf: - type: string format: uuid4 - type: 'null' title: Groupid name: type: string title: Name slug: type: string title: Slug recipeCount: type: integer title: Recipecount default: 0 type: object required: - name - slug title: RecipeTag RecipeTool: properties: id: type: string format: uuid4 title: Id groupId: anyOf: - type: string format: uuid4 - type: 'null' title: Groupid name: type: string title: Name slug: type: string title: Slug recipeCount: type: integer title: Recipecount default: 0 householdsWithTool: items: type: string type: array title: Householdswithtool default: [] type: object required: - id - name - slug title: RecipeTool OrderByNullPosition: type: string enum: - first - last title: OrderByNullPosition securitySchemes: OAuth2PasswordBearer: type: oauth2 flows: password: scopes: {} tokenUrl: /api/auth/token