openapi: 3.2.0 info: title: 'Mealie Households: Self Service 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: Self Service' paths: /api/households/self: get: tags: - 'Households: Self Service' summary: Get Logged In User Household description: Returns the Household Data for the Current User operationId: get_logged_in_user_household_api_households_self_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: $ref: '#/components/schemas/HouseholdInDB' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/households/self/recipes/{recipe_slug}: get: tags: - 'Households: Self Service' summary: Get Household Recipe description: Returns recipe data for the current household operationId: get_household_recipe_api_households_self_recipes__recipe_slug__get security: - OAuth2PasswordBearer: [] parameters: - name: recipe_slug in: path required: true schema: type: string title: Recipe Slug - 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/HouseholdRecipeSummary' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/households/members: get: tags: - 'Households: Self Service' summary: Get Household Members description: Returns all users belonging to the current household operationId: get_household_members_api_households_members_get security: - OAuth2PasswordBearer: [] parameters: - 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/PaginationBase_UserOut_' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/households/preferences: get: tags: - 'Households: Self Service' summary: Get Household Preferences operationId: get_household_preferences_api_households_preferences_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: $ref: '#/components/schemas/ReadHouseholdPreferences' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' put: tags: - 'Households: Self Service' summary: Update Household Preferences operationId: update_household_preferences_api_households_preferences_put 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/UpdateHouseholdPreferences' responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ReadHouseholdPreferences' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/households/permissions: put: tags: - 'Households: Self Service' summary: Set Member Permissions operationId: set_member_permissions_api_households_permissions_put 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/SetPermissions' responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/UserOut' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/households/statistics: get: tags: - 'Households: Self Service' summary: Get Statistics operationId: get_statistics_api_households_statistics_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: $ref: '#/components/schemas/HouseholdStatistics' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' components: schemas: HouseholdStatistics: properties: totalRecipes: type: integer title: Totalrecipes totalUsers: type: integer title: Totalusers totalCategories: type: integer title: Totalcategories totalTags: type: integer title: Totaltags totalTools: type: integer title: Totaltools type: object required: - totalRecipes - totalUsers - totalCategories - totalTags - totalTools title: HouseholdStatistics UpdateHouseholdPreferences: properties: privateHousehold: type: boolean title: Privatehousehold default: true showAnnouncements: type: boolean title: Showannouncements default: true lockRecipeEditsFromOtherHouseholds: type: boolean title: Lockrecipeeditsfromotherhouseholds default: true firstDayOfWeek: type: integer title: Firstdayofweek default: 0 recipePublic: type: boolean title: Recipepublic default: true recipeShowNutrition: type: boolean title: Recipeshownutrition default: false recipeShowAssets: type: boolean title: Recipeshowassets default: false recipeLandscapeView: type: boolean title: Recipelandscapeview default: false recipeDisableComments: type: boolean title: Recipedisablecomments default: false type: object title: UpdateHouseholdPreferences ReadWebhook: properties: enabled: type: boolean title: Enabled default: true name: type: string title: Name default: '' url: type: string title: Url default: '' webhookType: $ref: '#/components/schemas/WebhookType' default: mealplan scheduledTime: type: string format: time title: Scheduledtime groupId: type: string format: uuid4 title: Groupid householdId: type: string format: uuid4 title: Householdid id: type: string format: uuid4 title: Id type: object required: - scheduledTime - groupId - householdId - id title: ReadWebhook PaginationBase_UserOut_: 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/UserOut' 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: PaginationBase[UserOut] LongLiveTokenOut: properties: name: type: string title: Name id: type: integer title: Id createdAt: anyOf: - type: string format: date-time - type: 'null' title: Createdat type: object required: - name - id title: LongLiveTokenOut HouseholdRecipeSummary: properties: lastMade: anyOf: - type: string format: date-time - type: 'null' title: Lastmade recipeId: type: string format: uuid4 title: Recipeid type: object required: - recipeId title: HouseholdRecipeSummary HouseholdUserSummary: properties: id: type: string format: uuid4 title: Id fullName: type: string title: Fullname type: object required: - id - fullName title: HouseholdUserSummary SetPermissions: properties: userId: type: string format: uuid4 title: Userid canManageHousehold: type: boolean title: Canmanagehousehold default: false canManage: type: boolean title: Canmanage default: false canInvite: type: boolean title: Caninvite default: false canOrganize: type: boolean title: Canorganize default: false type: object required: - userId title: SetPermissions HTTPValidationError: properties: detail: items: $ref: '#/components/schemas/ValidationError' type: array title: Detail type: object title: HTTPValidationError 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 UserOut: properties: id: type: string format: uuid4 title: Id username: anyOf: - type: string - type: 'null' title: Username fullName: anyOf: - type: string - type: 'null' title: Fullname email: type: string title: Email authMethod: $ref: '#/components/schemas/AuthMethod' default: Mealie admin: type: boolean title: Admin default: false group: type: string title: Group household: type: string title: Household advanced: type: boolean title: Advanced default: false showAnnouncements: type: boolean title: Showannouncements default: true lastReadAnnouncement: anyOf: - type: string - type: 'null' title: Lastreadannouncement canInvite: type: boolean title: Caninvite default: false canManage: type: boolean title: Canmanage default: false canManageHousehold: type: boolean title: Canmanagehousehold default: false canOrganize: type: boolean title: Canorganize default: false groupId: type: string format: uuid4 title: Groupid groupSlug: type: string title: Groupslug householdId: type: string format: uuid4 title: Householdid householdSlug: type: string title: Householdslug tokens: anyOf: - items: $ref: '#/components/schemas/LongLiveTokenOut' type: array - type: 'null' title: Tokens cacheKey: type: string title: Cachekey type: object required: - id - email - group - household - groupId - groupSlug - householdId - householdSlug - cacheKey title: UserOut example: admin: 'false' email: changeme@example.com fullName: Change Me group: home household: Family username: ChangeMe HouseholdInDB: properties: groupId: type: string format: uuid4 title: Groupid name: type: string minLength: 1 title: Name id: type: string format: uuid4 title: Id slug: type: string title: Slug preferences: anyOf: - $ref: '#/components/schemas/ReadHouseholdPreferences' - type: 'null' group: type: string title: Group users: anyOf: - items: $ref: '#/components/schemas/HouseholdUserSummary' type: array - type: 'null' title: Users webhooks: items: $ref: '#/components/schemas/ReadWebhook' type: array title: Webhooks default: [] type: object required: - groupId - name - id - slug - group title: HouseholdInDB ReadHouseholdPreferences: properties: privateHousehold: type: boolean title: Privatehousehold default: true showAnnouncements: type: boolean title: Showannouncements default: true lockRecipeEditsFromOtherHouseholds: type: boolean title: Lockrecipeeditsfromotherhouseholds default: true firstDayOfWeek: type: integer title: Firstdayofweek default: 0 recipePublic: type: boolean title: Recipepublic default: true recipeShowNutrition: type: boolean title: Recipeshownutrition default: false recipeShowAssets: type: boolean title: Recipeshowassets default: false recipeLandscapeView: type: boolean title: Recipelandscapeview default: false recipeDisableComments: type: boolean title: Recipedisablecomments default: false id: type: string format: uuid4 title: Id type: object required: - id title: ReadHouseholdPreferences OrderByNullPosition: type: string enum: - first - last title: OrderByNullPosition AuthMethod: type: string enum: - Mealie - LDAP - OIDC title: AuthMethod WebhookType: type: string enum: - mealplan title: WebhookType securitySchemes: OAuth2PasswordBearer: type: oauth2 flows: password: scopes: {} tokenUrl: /api/auth/token