Get a Meal

A method to get a meal.

Our API spec clearly shows that each endpoint has two versions - one with meal_plan_id and one without.

get

https://api.whisk.com/mealplan/v2/:meal_plan_id/meal
The meal_plan_id is optional - the endpoint will return the same result whether it is provided or not.
Request
Response
Request
Path Parameters
meal_plan_id
optional
string
Optional meal-plan identifier. No need to specify if API requested with UserToken
period.from.year
optional
integer
period.from.month
optional
integer
period.from.day
optional
integer
period.to.year
optional
integer
period.to.month
optional
integer
period.to.day
optional
integer
fields
optional
array
Additional recipe fields to include in response. Requesting less fields will reduce response size and improve time to response
Response
200: OK
{
"meal_plan_id": "string",
"start_date": {
"year": 0,
"month": 0,
"day": 0
},
"end_date": {
"year": 0,
"month": 0,
"day": 0
},
"meals": [
{
"id": "string",
"meal_type": "MEAL_TYPE_INVALID",
"date_time": {
"year": 0,
"month": 0,
"day": 0
},
"content": {
"recipe": {
"id": "string",
"name": "string",
"description": "string",
"ingredients": [
{
"text": "string",
"group": "string",
"linked_products": [
{
"id": "string",
"name": "string",
"images": [
{
"responsive": {
"url": "string",
"width": 0,
"height": 0
},
"url": "string"
}
],
"description": "string",
"url": "string",
"price": {
"rrp": {
"currency_code": "string",
"cents": "string"
}
},
"gtin": "string",
"brand": {
"raw_name": "string"
}
}
]
}
],
"instructions": {
"steps": [
{
"text": "string",
"images": [
{
"responsive": {
"url": "string",
"width": 0,
"height": 0
},
"url": "string"
}
],
"group": "string",
"intents": [
{
"name": "string",
"options": [
{
"key": "string",
"value": 0,
"unit": "string"
}
]
}
],
"labels": [
{
"name": "string",
"labels": [
{
"name": "string"
}
]
}
]
}
]
},
"images": [
{
"responsive": {
"url": "string",
"width": 0,
"height": 0
},
"url": "string"
}
],
"videos": [
{
"content_url": "string",
"embed_url": "string",
"thumbnail": "string"
}
],
"source": {
"name": "string",
"display_name": "string",
"source_recipe_url": "string",
"image": {
"responsive": {
"url": "string",
"width": 0,
"height": 0
},
"url": "string"
},
"license": "LICENCE_INVALID"
},
"servings": 0,
"servings_scaled": 0,
"durations": {
"cook_time": 0,
"prep_time": 0,
"total_time": 0
},
"normalized_ingredients": [
{
"text": "string",
"group": "string",
"analysis": {
"product": {
"canonical_name": "string",
"original_name": "string"
},
"category": {
"canonical_name": "string"
},
"brand": {
"canonical_name": "string"
},
"quantity": 0,
"unit": "string",
"multiplier": 0,
"comment": "string",
"image_url": "string"
},
"source_text": "string",
"labels": [
{
"name": "string",
"labels": [
{
"name": "string"
}
]
}
]
}
],
"nutrition": {
"status": "STATUS_INVALID",
"total": [
{
"label": "string",
"code": "NUTRITION_CODE_INVALID",
"value": 0,
"unit": "NUTRITION_UNIT_INVALID"
}
],
"coverage": 0,
"labels": [
{
"name": "string",
"display_name": "string"
}
],
"health_score": {
"value": 0,
"nutrients_influence": [
{
"code": "NUTRITION_CODE_INVALID",
"influence": 0,
"comment": "string"
}
]
},
"glycemic_index": {
"value": 0
},
"glycemic_load": {
"value": 0
}
},
"labels": {
"meal_type": [
{
"name": "string",
"display_name": "string"
}
],
"cuisine": [
{
"name": "string",
"display_name": "string"
}
],
"category": [
{
"name": "string",
"display_name": "string"
}
],
"technique": [
{
"name": "string",
"display_name": "string"
}
],
"holiday": [
{
"name": "string",
"display_name": "string"
}
],
"seasonality": [
{
"name": "string",
"display_name": "string"
}
]
},
"constraints": {
"violates": {
"diets": [
"DIET_INVALID"
],
"avoidances": [
"AVOIDANCE_INVALID"
]
}
},
"saved": {
"value": true,
"collection_ids": [
"string"
],
"owner": true,
"recipe_type": "RECIPE_TYPE_INVALID"
},
"author": {
"name": "string",
"image": {
"responsive": {
"url": "string",
"width": 0,
"height": 0
},
"url": "string"
}
},
"language": "string",
"custom_labels": [
{
"name": "string",
"labels": [
{
"name": "string"
}
]
}
]
}
},
"generated": true,
"day_slot": 0,
"date": {
"year": 0,
"month": 0,
"day": 0
}
}
],
"week_meals": [
{
"id": "string",
"week_start_date": {
"year": 0,
"month": 0,
"day": 0
},
"content": {
"recipe": {
"id": "string",
"name": "string",
"description": "string",
"ingredients": [
{
"text": "string",
"group": "string",
"linked_products": [
{
"id": "string",
"name": "string",
"images": [
{
"responsive": {
"url": "string",
"width": 0,
"height": 0
},
"url": "string"
}
],
"description": "string",
"url": "string",
"price": {
"rrp": {
"currency_code": "string",
"cents": "string"
}
},
"gtin": "string",
"brand": {
"raw_name": "string"
}
}
]
}
],
"instructions": {
"steps": [
{
"text": "string",
"images": [
{
"responsive": {
"url": "string",
"width": 0,
"height": 0
},
"url": "string"
}
],
"group": "string",
"intents": [
{
"name": "string",
"options": [
{
"key": "string",
"value": 0,
"unit": "string"
}
]
}
],
"labels": [
{
"name": "string",
"labels": [
{
"name": "string"
}
]
}
]
}
]
},
"images": [
{
"responsive": {
"url": "string",
"width": 0,
"height": 0
},
"url": "string"
}
],
"videos": [
{
"content_url": "string",
"embed_url": "string",
"thumbnail": "string"
}
],
"source": {
"name": "string",
"display_name": "string",
"source_recipe_url": "string",
"image": {
"responsive": {
"url": "string",
"width": 0,
"height": 0
},
"url": "string"
},
"license": "LICENCE_INVALID"
},
"servings": 0,
"servings_scaled": 0,
"durations": {
"cook_time": 0,
"prep_time": 0,
"total_time": 0
},
"normalized_ingredients": [
{
"text": "string",
"group": "string",
"analysis": {
"product": {
"canonical_name": "string",
"original_name": "string"
},
"category": {
"canonical_name": "string"
},
"brand": {
"canonical_name": "string"
},
"quantity": 0,
"unit": "string",
"multiplier": 0,
"comment": "string",
"image_url": "string"
},
"source_text": "string",
"labels": [
{
"name": "string",
"labels": [
{
"name": "string"
}
]
}
]
}
],
"nutrition": {
"status": "STATUS_INVALID",
"total": [
{
"label": "string",
"code": "NUTRITION_CODE_INVALID",
"value": 0,
"unit": "NUTRITION_UNIT_INVALID"
}
],
"coverage": 0,
"labels": [
{
"name": "string",
"display_name": "string"
}
],
"health_score": {
"value": 0,
"nutrients_influence": [
{
"code": "NUTRITION_CODE_INVALID",
"influence": 0,
"comment": "string"
}
]
},
"glycemic_index": {
"value": 0
},
"glycemic_load": {
"value": 0
}
},
"labels": {
"meal_type": [
{
"name": "string",
"display_name": "string"
}
],
"cuisine": [
{
"name": "string",
"display_name": "string"
}
],
"category": [
{
"name": "string",
"display_name": "string"
}
],
"technique": [
{
"name": "string",
"display_name": "string"
}
],
"holiday": [
{
"name": "string",
"display_name": "string"
}
],
"seasonality": [
{
"name": "string",
"display_name": "string"
}
]
},
"constraints": {
"violates": {
"diets": [
"DIET_INVALID"
],
"avoidances": [
"AVOIDANCE_INVALID"
]
}
},
"saved": {
"value": true,
"collection_ids": [
"string"
],
"owner": true,
"recipe_type": "RECIPE_TYPE_INVALID"
},
"author": {
"name": "string",
"image": {
"responsive": {
"url": "string",
"width": 0,
"height": 0
},
"url": "string"
}
},
"language": "string",
"custom_labels": [
{
"name": "string",
"labels": [
{
"name": "string"
}
]
}
]
}
}
}
]
}
400: Bad Request
{
"error_code": "REAL_CODES_ARE_IN_ENDPOINT_DESCRIPTION",
"message": "Additional details about error are not static and can be changed"
}
401: Unauthorized
{
"code": "auth.tokenNotFound"
}
500: Internal Server Error
This is unexpected response, something is wrong on our side, please contact: help@whisk.com

It's important to note that the meal_plan_id is derived from the user’s ID. This is because Whisk supports a single meal plan for each user at this time. Multiple meal plans will be supported in future versions. Therefore, The user ID is extracted using the OAuth token provided with each endpoint header, as described above.

Fields

Enums

Notes

RECIPE_FIELD_INVALID

RECIPE_FIELD_NORMALIZED_INGREDIENTS

RECIPE_FIELD_INSTRUCTIONS

RECIPE_FIELD_INSTRUCTION_INTENTS

RECIPE_FIELD_NUTRITION

RECIPE_FIELD_NUTRITION_COVERAGE

RECIPE_FIELD_SAVED

RECIPE_FIELD_INGREDIENTS_LINKED_PRODUCTS