Get Meals
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.
Path Parameters
meal_plan_id
string
Optional meal-plan identifier. No need to specify if API requested with UserToken
period.from.year
integer
period.from.month
integer
period.from.day
integer
period.to.year
integer
period.to.month
integer
period.to.day
integer
fields
array
Additional recipe fields to include in response. Requesting less fields will reduce response size and improve time to response
{
"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"
}
]
}
]
}
}
}
]
}
{
"error_code": "REAL_CODES_ARE_IN_ENDPOINT_DESCRIPTION",
"message": "Additional details about error are not static and can be changed"
}
{
"code": "auth.tokenNotFound"
}
This is unexpected response, something is wrong on our side, please contact: [email protected]
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
Last updated