Mealie Households: Self Service API

The Households: Self Service API from Mealie — 6 operation(s) for households: self service.

Operations 7

GET /api/households/self Get Logged In User Household #
GET /api/households/self/recipes/{recipe_slug} Get Household Recipe #
GET /api/households/members Get Household Members #
GET /api/households/preferences Get Household Preferences #
PUT /api/households/preferences Update Household Preferences #
PUT /api/households/permissions Set Member Permissions #
GET /api/households/statistics Get Statistics #

Documentation

Specifications

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/mealie-households-self-service-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

mealie-households-self-service-api-openapi.yml Raw ↑
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