openapi: 3.2.0 info: title: 'Mealie Shared: Recipes 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: 'Shared: Recipes' paths: /api/shared/recipes: get: tags: - 'Shared: Recipes' summary: Get All operationId: get_all_api_shared_recipes_get security: - OAuth2PasswordBearer: [] parameters: - name: recipe_id in: query required: false schema: anyOf: - type: string format: uuid4 - type: 'null' title: Recipe 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: type: array items: $ref: '#/components/schemas/RecipeShareTokenSummary' title: Response Get All Api Shared Recipes Get '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' post: tags: - 'Shared: Recipes' summary: Create One operationId: create_one_api_shared_recipes_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/RecipeShareTokenCreate' responses: '201': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/RecipeShareToken' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/shared/recipes/{item_id}: get: tags: - 'Shared: Recipes' summary: Get One operationId: get_one_api_shared_recipes__item_id__get security: - OAuth2PasswordBearer: [] parameters: - name: item_id in: path required: true schema: type: string format: uuid4 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/RecipeShareToken' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' delete: tags: - 'Shared: Recipes' summary: Delete One operationId: delete_one_api_shared_recipes__item_id__delete security: - OAuth2PasswordBearer: [] parameters: - name: item_id in: path required: true schema: type: string format: uuid4 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: {} '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' components: schemas: CreateIngredientFoodAlias: properties: name: type: string title: Name type: object required: - name title: CreateIngredientFoodAlias MultiPurposeLabelSummary: properties: name: type: string title: Name color: type: string title: Color default: '#959595' groupId: type: string format: uuid4 title: Groupid id: type: string format: uuid4 title: Id type: object required: - name - groupId - id title: MultiPurposeLabelSummary 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 RecipeShareToken: properties: recipeId: type: string format: uuid4 title: Recipeid expiresAt: type: string format: date-time title: Expiresat groupId: type: string format: uuid4 title: Groupid id: type: string format: uuid4 title: Id createdAt: type: string format: date-time title: Createdat recipe: $ref: '#/components/schemas/Recipe-Output' type: object required: - recipeId - groupId - id - createdAt - recipe title: RecipeShareToken Recipe-Output: 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 recipeIngredient: items: $ref: '#/components/schemas/RecipeIngredient-Output' type: array title: Recipeingredient default: [] recipeInstructions: anyOf: - items: $ref: '#/components/schemas/RecipeStep' type: array - type: 'null' title: Recipeinstructions default: [] nutrition: anyOf: - $ref: '#/components/schemas/Nutrition' - type: 'null' settings: anyOf: - $ref: '#/components/schemas/RecipeSettings' - type: 'null' assets: anyOf: - items: $ref: '#/components/schemas/RecipeAsset' type: array - type: 'null' title: Assets default: [] notes: anyOf: - items: $ref: '#/components/schemas/RecipeNote' type: array - type: 'null' title: Notes default: [] extras: anyOf: - additionalProperties: true type: object - type: 'null' title: Extras default: {} comments: anyOf: - items: $ref: '#/components/schemas/RecipeCommentOut-Output' type: array - type: 'null' title: Comments default: [] type: object title: Recipe RecipeShareTokenCreate: properties: recipeId: type: string format: uuid4 title: Recipeid expiresAt: type: string format: date-time title: Expiresat type: object required: - recipeId title: RecipeShareTokenCreate IngredientReferences: properties: referenceId: anyOf: - type: string format: uuid4 - type: 'null' title: Referenceid type: object title: IngredientReferences description: A list of ingredient references. IngredientFood-Output: properties: id: type: string format: uuid4 title: Id name: type: string title: Name pluralName: anyOf: - type: string - type: 'null' title: Pluralname description: type: string title: Description default: '' extras: anyOf: - additionalProperties: true type: object - type: 'null' title: Extras default: {} labelId: anyOf: - type: string format: uuid4 - type: 'null' title: Labelid aliases: items: $ref: '#/components/schemas/IngredientFoodAlias' type: array title: Aliases default: [] householdsWithIngredientFood: items: type: string type: array title: Householdswithingredientfood default: [] label: anyOf: - $ref: '#/components/schemas/MultiPurposeLabelSummary' - type: 'null' createdAt: anyOf: - type: string format: date-time - type: 'null' title: Createdat updatedAt: anyOf: - type: string format: date-time - type: 'null' title: Updatedat type: object required: - id - name title: IngredientFood 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 CreateIngredientFood: properties: id: anyOf: - type: string format: uuid4 - type: 'null' title: Id name: type: string title: Name pluralName: anyOf: - type: string - type: 'null' title: Pluralname description: type: string title: Description default: '' extras: anyOf: - additionalProperties: true type: object - type: 'null' title: Extras default: {} labelId: anyOf: - type: string format: uuid4 - type: 'null' title: Labelid aliases: items: $ref: '#/components/schemas/CreateIngredientFoodAlias' type: array title: Aliases default: [] householdsWithIngredientFood: items: type: string type: array title: Householdswithingredientfood default: [] type: object required: - name title: CreateIngredientFood IngredientFoodAlias: properties: name: type: string title: Name type: object required: - name title: IngredientFoodAlias RecipeCommentOut-Output: properties: recipeId: type: string format: uuid4 title: Recipeid text: type: string title: Text id: type: string format: uuid4 title: Id createdAt: type: string format: date-time title: Createdat updatedAt: type: string format: date-time title: Updatedat userId: type: string format: uuid4 title: Userid user: $ref: '#/components/schemas/UserBase-Output' type: object required: - recipeId - text - id - createdAt - updatedAt - userId - user title: RecipeCommentOut IngredientUnit-Output: properties: id: type: string format: uuid4 title: Id name: type: string title: Name pluralName: anyOf: - type: string - type: 'null' title: Pluralname description: type: string title: Description default: '' extras: anyOf: - additionalProperties: true type: object - type: 'null' title: Extras default: {} fraction: type: boolean title: Fraction default: true abbreviation: type: string title: Abbreviation default: '' pluralAbbreviation: anyOf: - type: string - type: 'null' title: Pluralabbreviation default: '' useAbbreviation: type: boolean title: Useabbreviation default: false aliases: items: $ref: '#/components/schemas/IngredientUnitAlias' type: array title: Aliases default: [] standardQuantity: anyOf: - type: number - type: 'null' title: Standardquantity standardUnit: anyOf: - type: string - type: 'null' title: Standardunit createdAt: anyOf: - type: string format: date-time - type: 'null' title: Createdat updatedAt: anyOf: - type: string format: date-time - type: 'null' title: Updatedat type: object required: - id - name title: IngredientUnit RecipeAsset: properties: name: type: string title: Name icon: type: string title: Icon fileName: anyOf: - type: string - type: 'null' title: Filename type: object required: - name - icon title: RecipeAsset 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 RecipeSettings: properties: public: type: boolean title: Public default: false showNutrition: type: boolean title: Shownutrition default: false showAssets: type: boolean title: Showassets default: false landscapeView: type: boolean title: Landscapeview default: false disableComments: type: boolean title: Disablecomments default: true locked: type: boolean title: Locked default: false type: object title: RecipeSettings CreateIngredientUnitAlias: properties: name: type: string title: Name type: object required: - name title: CreateIngredientUnitAlias CreateIngredientUnit: properties: id: anyOf: - type: string format: uuid4 - type: 'null' title: Id name: type: string title: Name pluralName: anyOf: - type: string - type: 'null' title: Pluralname description: type: string title: Description default: '' extras: anyOf: - additionalProperties: true type: object - type: 'null' title: Extras default: {} fraction: type: boolean title: Fraction default: true abbreviation: type: string title: Abbreviation default: '' pluralAbbreviation: anyOf: - type: string - type: 'null' title: Pluralabbreviation default: '' useAbbreviation: type: boolean title: Useabbreviation default: false aliases: items: $ref: '#/components/schemas/CreateIngredientUnitAlias' type: array title: Aliases default: [] standardQuantity: anyOf: - type: number - type: 'null' title: Standardquantity standardUnit: anyOf: - type: string - type: 'null' title: Standardunit type: object required: - name title: CreateIngredientUnit RecipeNote: properties: title: type: string title: Title text: type: string title: Text type: object required: - title - text title: RecipeNote RecipeIngredient-Output: properties: quantity: anyOf: - type: number - type: 'null' title: Quantity default: 0 unit: anyOf: - $ref: '#/components/schemas/IngredientUnit-Output' - $ref: '#/components/schemas/CreateIngredientUnit' - type: 'null' title: Unit food: anyOf: - $ref: '#/components/schemas/IngredientFood-Output' - $ref: '#/components/schemas/CreateIngredientFood' - type: 'null' title: Food referencedRecipe: anyOf: - $ref: '#/components/schemas/Recipe-Output' - type: 'null' note: anyOf: - type: string - type: 'null' title: Note default: '' display: type: string title: Display default: '' title: anyOf: - type: string - type: 'null' title: Title originalText: anyOf: - type: string - type: 'null' title: Originaltext referenceId: type: string format: uuid title: Referenceid type: object title: RecipeIngredient IngredientUnitAlias: properties: name: type: string title: Name type: object required: - name title: IngredientUnitAlias Nutrition: properties: calories: anyOf: - type: string - type: 'null' title: Calories carbohydrateContent: anyOf: - type: string - type: 'null' title: Carbohydratecontent cholesterolContent: anyOf: - type: string - type: 'null' title: Cholesterolcontent fatContent: anyOf: - type: string - type: 'null' title: Fatcontent fiberContent: anyOf: - type: string - type: 'null' title: Fibercontent proteinContent: anyOf: - type: string - type: 'null' title: Proteincontent saturatedFatContent: anyOf: - type: string - type: 'null' title: Saturatedfatcontent sodiumContent: anyOf: - type: string - type: 'null' title: Sodiumcontent sugarContent: anyOf: - type: string - type: 'null' title: Sugarcontent transFatContent: anyOf: - type: string - type: 'null' title: Transfatcontent unsaturatedFatContent: anyOf: - type: string - type: 'null' title: Unsaturatedfatcontent type: object title: Nutrition HTTPValidationError: properties: detail: items: $ref: '#/components/schemas/ValidationError' type: array title: Detail type: object title: HTTPValidationError 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 UserBase-Output: properties: id: type: string format: uuid4 title: Id username: anyOf: - type: string - type: 'null' title: Username admin: type: boolean title: Admin fullName: anyOf: - type: string - type: 'null' title: Fullname type: object required: - id - admin title: UserBase RecipeStep: properties: id: anyOf: - type: string format: uuid - type: 'null' title: Id title: anyOf: - type: string - type: 'null' title: Title default: '' summary: anyOf: - type: string - type: 'null' title: Summary default: '' text: type: string title: Text ingredientReferences: items: $ref: '#/components/schemas/IngredientReferences' type: array title: Ingredientreferences default: [] type: object required: - text title: RecipeStep RecipeShareTokenSummary: properties: recipeId: type: string format: uuid4 title: Recipeid expiresAt: type: string format: date-time title: Expiresat groupId: type: string format: uuid4 title: Groupid id: type: string format: uuid4 title: Id createdAt: type: string format: date-time title: Createdat type: object required: - recipeId - groupId - id - createdAt title: RecipeShareTokenSummary securitySchemes: OAuth2PasswordBearer: type: oauth2 flows: password: scopes: {} tokenUrl: /api/auth/token