Recipe

The Recipe API service lets you read and write any internal and external recipes and your Whisk recipe collections.

Let's first understand the Recipe object and its data structure before looking at its endpoints' description.

Recipe Object

A Recipe object is a collection of arrays and attributes that defines the data structure for any given recipe.

This is how the data structure of a recipe looks in JSON format:

{
  "recipe": {
    "id": "107d918699fb79c4ed4a561823f9f77d64e",
    "name": "Blueberry Bakewell muffins",
    "description": "These easy blueberry muffins have a delightfully jammy centre and crunchy crumble topping - a tasty treat for teatime or packed lunch",
    "ingredients": [
      ...
    ],
    "instructions": {
      ...
    },
    "images": [
      ...
    ],
    "videos": [
      ...
    ],
    "source": {
      ...
    },
    "servings": 12,
    "servings_scaled": 2,
    "durations": {
      ...
    },
    "normalized_ingredients": [
      ...
    ],
    "nutrition": {
      ...
    },
    "labels": {
      ...
    },
    "constraints": {
      ...
    },
    "saved": {
      ...
    },
    "author": {
      ...
    },
    "language": "en",
    "custom_labels": [
      ...
    ],
    "main_ingredients": [
      ....
    ]
  }
}

Core Attributes

The following attributes define the core of a recipe:

Attribute

Type

Description

id

string

The recipe identifier.

name

string

The full name of the recipe.

description

string

A summary describing the recipe.

servings

integer

The number of people that can be served the original recipe.

servings_scaled

integer

The number of servings based on the requirement you specified while pulling the recipe details.

language

string

As per ISO 639 standards, a two-letter code indicating the language used in recipe definition.

In addition to the base attributes, there are objects and arrays that contain more information on the recipe.

Ingredients

This array contains information on the ingredients used in the recipe.

"ingredients":[
   {
      "text":"1/4 cup cholesterol-free egg product"
   },
   ...
   {
      "text":"HEINZ Tomato Ketchup",
      "linked_product":{
         "id":"5f75d73bcfed282362a8b3aa",
         "name":"HEINZ Tomato Ketchup",
         "images":[
            ...
         ]
      }
   }
],

Attribute

Type

Description

text

string

A specific ingredient used in the recipe — sugar 2-tbsp, flour 10g, or garlic 3-cloves.

group

string

The group name if the ingredient falls under a particular group of ingredients.

linked_product

object

This object contains details of a branded product that is stored in Whisk Studio and is being used as an ingredient.

The linked_product object contains the following attributes:

Attribute

Type

Description

id

string

The product identifier.

name

string

The product’s full name.

images

array

One or more images of the product. This array contains the hosted URL and size details of each product image.

external_product_id

string

An identifier assigned by the product's author.

Images

This array contains information on one or more images of the completed dish included in the recipe.

"images":[
   {
      "url":"https://whisk-res.cloudinary.com/image/upload/v1603979937/recipe/a322bb09c8934e66d3eca3f98c59004a.jpg",
      "responsive":{
         "url":"https://whisk-res.cloudinary.com/image/upload/v1603979937/recipe/a322bb09c8934e66d3eca3f98c59004a.jpg",
         "width":240,
         "height":208
      }
   },
   ...
],

Attribute

Type

Description

url

string

Hosted URL of an image.

responsive

object

A responsive image adjusts its size based on the screen size. This object contains attributes to access the image with flexible size based on need.

The responsive object contains the following attributes:

Attribute

Type

Description

url

string

Hosted URL of an image.

width

number

Image width.

height

number

Image height.

Source

‌This object contains details of the recipe origins.

"source":{
    "name":"myfoodandfamily.com",
    "display_name":"myfoodandfamily",
    "url":"https://www.myfoodandfamily.com/recipe/063765/grab-and-go-breakfast-sandwich?utm=skforu_rdp",
    "image":{
                "url":"https://whisk-res.cloudinary.com/image/upload/v1565965713/publishers/logos/myfoodandfamily-logo.png",
        "responsive":{
            "url":"https://whisk-res.cloudinary.com/image/upload/v1565965713/publishers/logos/myfoodandfamily-logo.png",
            "width":256,
            "height":256
        }
    }
},

Attribute

Type

Description

name

string

Indicates the name of the recipe’s origin.

display_name

string

Indicates the display name of the recipe's origin.

url

string

The recipe’s origin URL.

image

object

This object includes information on the origins of the recipe's image.

Durations

‌This object contains information on the time it takes to prepare and cook the recipe.

"durations":{
    "cook_time":20,
    "prep_time":10,
    "total_time":30
},

Attribute

Type

Description

cook_time

number

The time (in minutes) it takes to cook the dish.

prep_time

number

The time (in minutes) it takes to prepare the items used in the recipe's instructions.

total_time

number

The total time (in minutes) it takes to prepare the dish.

Labels

‌‌This object contains information on the labels attached to the recipe that helps distinguish its type, cuisine, category, and the techniques required to cook.

"labels": {
    "meal_type": [
      {
        "name": "main-course",
        "display_name": "Main Course"
      },
      ...

      {
        "name": "dinner",
        "display_name": "Dinner"
      }
    ],
    "cuisine": [
      {
        "name": "french",
        "display_name": "French"
      }
    ],
    "category": [
      {
        "name": "dinner",
        "display_name": "Dinner"
      },
      {
        "name": "lunch",
        "display_name": "Lunch"
      }
    ],
    "technique": [
      {
        "name": "simmering",
        "display_name": "Simmering"
      },
      ...

      {
        "name": "pan-frying",
        "display_name": "Pan Frying"
      }
    ]
  },

Each label attached to the recipe appears as a child-array.

Attribute

Type

Description

meal_type

array

Indicates the meal type that applies to the recipe.

cuisine

array

Indicates the recipe's cuisine.

category

array

Indicates the recipe's category.

technique

array

Indicates the cooking technique required to cook the recipe.

Each of these arrays contains the following attributes:

Attribute

Type

Description

name

string

​The label name saved in the source.

display_name

string

The label name that appears on the front-end.

For information on supported labels, see Recipe Labels.

Author

‌This object includes information about the Whisk user who created the recipe.

"author":{
    "id": "10297e19d97dd5a43ecbd9a13172ce65bfb"
    "name":"Sara Buenfeld"
    "image":{
      "url":"https://img.cjthemarket.com/images/file/author/973/20191226105710715.jpg",
      "responsive":{
         "url":"https://whisk-res.cloudinary.com/image/upload/v1602854082/author/8bade35e90ecf44eac6ec7ae5346d228.jpg",
         "width":300,
         "height":300
      }
},

Attribute

Type

Description

id

string

The recipe creator's identifier.

name

string

The recipe creator's name.

image

object

The recipe creator's image. See the images array description for more information.

Custom Labels

‌This array includes a list of user-defined labels linked to the recipe.

"custom_labels":[
   {
      "name":"brand-category",
      "labels":[
         {
            "name":"cj-chinese"
         },
         {
            "name":"cj-etc"
         }
      ]
   },
   {
      "name":"brand",
      "labels":[
         {
            "name":"kraft-cheese"
         }
      ]
   },
   {
      "name":"barcode-number",
      "labels":[
         {
            "name":"00013000006409"
         }
      ]
   }
]

Attribute

Type

Description

name

string

Label group's name.

labels

array

A list of labels inside the group.

Tips

‌This array includes a list of advice linked to the recipe.

 "tips": [
    {
      "header": "string",
      "text": "string"
    }
 ]

Type

Type

Description

header

string

A heading for the advice.

text

string

Text describing the advice.

Main ingredients

The most important products of a recipe. We consider them to be equal in case there are several products returned.

 "main_ingredients": [
      "veal",
      "bacon",
      "fruit"
]

Optional Data

The recipe data structure may include extra information based on any additional parameters included in the API request.

Normalized Ingredients

This array includes detailed analysis of each recipe's ingredient.

"normalized_ingredients":[
   {
      "text":"1 slice cooked OSCAR MAYER Bacon, cut crosswise in half",
      "analysis":[
         {
            "alternative_measurements": [
                        {
                            "amount": {
                                "quantity": 120,
                                "unit": "g"
                            },
                            "measurement_system": "MEASUREMENT_SYSTEM_METRIC"
                        },
                        {
                            "amount": {
                                "quantity": 1,
                                "unit": "slice"
                            },
                            "measurement_system": "MEASUREMENT_SYSTEM_IMPERIAL"
                        }
                    ],
            "product":{
               "canonical_name":"OSCAR MAYER COOKED BACON (READY MADE)",
               "original_name":"cooked oscar mayer bacon"
            },
            "category":{
               "canonical_name":"MEATS AND SEAFOOD"
            },
            "brand":{
               "canonical_name":"OSCAR MAYER"
            },
            "quantity":1,
            "unit":"slice",
            "comment":"cut crosswise in half",
            "image_url":"https://whisk-res.cloudinary.com/image/upload/v1570185262/custom_upload/4e3434d390926ff30a3f96652529194d.jpg"
         }
      ],
      "source_text":"1 slice cooked OSCAR MAYER Bacon, cut crosswise in half"
   },
   {
      "text":"HEINZ Tomato Ketchup",
      "linked_product":{
         "id":"5f75d73bcfed282362a8b3aa",
         "name":"HEINZ Tomato Ketchup",
         "images":[
            {
               "url":"https://whisk-res.cloudinary.com/image/upload/v1600195675/inventory_item/20c81dcc9b003de383b1891828b59fc5.jpg"
            }
         ]
      },
      "source_text":"HEINZ Tomato Ketchup"
   },
   ...
],

Attribute

Type

Description

text

string

A specific ingredient used in the recipe — sugar 2-tbsp, flour 10g, or garlic 3-cloves.

group

string

The group name if the ingredient falls under a particular group of ingredients.

linked_product

object

This object contains details of a branded product that is stored in Whisk Studio and is being used as an ingredient. For more information, see the ingredients array.

analysis

array

​Detailed information on the ingredient that is not linked to any product stored in Whisk Studio.

source_text

string

​The ingredient name saved in the source.

The analysis array includes the following attributes:

Attribute

Type

Description

product

object

The canonical and original name of the product being used as an ingredient. It should not be confused with the linked_product object, since specific recipes may specify a branded product as an ingredient, which may not be one of their own branded products on Whisk Studio.

alternative_measurements

object

The alternative measurment unit for ingredient. Contains metric and imperial units and measurments

category

object

The canonical name of the category to which the ingredient belongs.

brand

object

The ingredient product's brand canonical name.

quantity

number

The ingredient volume or count.

comment

string

Any additional info attached with the ingredient.

unit

string

The measurement unit of the ingredient's quantity.

multiplier

number

​The factor for unit conversion.

image_url

string

The source location of the ingredient's image.

‌Instructions‌

This object includes information on each step required in the recipe preparation.

"instructions":{
   "steps":[
      {
         "text":"Cook egg product in skillet sprayed with cooking spray on medium heat 3 min. or until set, stirring occasionally.",
         "images":[
            {
               "url":"https://whisk-res.cloudinary.com/image/upload/v1603979936/recipe/33c0f4a5c00651929f57d00b398aafda.jpg",
               "width":424,
               "height":640
            }
         ]
      },
      {
         "text":"Fill muffin halves with egg product, Singles and bacon.",
         "images":[
            {
               "url":"https://whisk-res.cloudinary.com/image/upload/v1603979947/recipe/62848f0ee14fd5808e541e3e29934e72.jpg",
               "width":424,
               "height":640
            }
         ]
      }
   ]
},

Attribute

Type

Description

steps

array

An array containing a list of steps required to cook the recipe.

The steps array contains the following attributes:

Attribute

Type

Description

text

string

A specific step in the list of instructions to cook the recipe — “Heat the oil in a large frying pan”.

group

string

The group name if the step falls under a particular group of steps.

images

array

One or more images attached to the step. This array contains the hosted URL and size details of each image.

custom_labels

array

One or more user-defined labels attached to the step. For more information, see the custom labels array.

Nutrition

‌This object contains information about the recipe's nutritional value.

"nutrition":{
    "status":"STATUS_AVAILABLE",
    "total":[
        {
            "label":"Magnesium",
            "code":"NUTRITION_CODE_MG",
            "value":82.61800000000001,
            "unit":"NUTRITION_UNIT_MG"
        },
        ...
    ],
    "coverage": 0.93,
    "health_score":{
        "value":6.687124447756711,
        "nutrients_influence":[
            {
                "code":"NUTRITION_CODE_FAT_UNSAT",
                "influence":0.7762592808559045,
                "comment":"Strong positive impact"
            },
            ...
        ]
    },
    "glycemic_index":{
        "value":42.12
    },
    "glycemic_load":{
        "value":7.66
    }
},

Attribute

Type

Description

status

string

The recipe's nutritional information availability status.

total

array

This array contains a detailed analysis of nutrients available in the recipe.

coverage

string

A value between 0-1 to indicate the extent of analysis done while calculating the nutritional facts.

health_score

object

The recipe's health score and analysis.

glycemic_index

object

The glycemic index is a value that indicates the recipe's impact on blood glucose levels.

glycemic_load

object

The glycemic load is a value that indicates the recipe's impact on blood sugar levels.

Each object contains additional attributes.

Total

‌This array contains information about the nutrients available in the recipe. Each nutrient carries the following information:

Attribute

Type

Description

Example

code

enum

The nutrient code.

NUTRITION_CODE_MG

label

string

The name of the nutrient.

Magnesium

value

integer

The nutrient's value/amount.

82.61800000000001

unit

enum

The measurement unit of the nutrient's value.

  • NUTRITION_UNIT_G

  • NUTRITION_UNIT_MG

  • NUTRITION_UNIT_MKG

  • NUTRITION_UNIT_KCAL

‌Health Score

‌This array contains information on the health score assigned to the recipe.

Attribute

Type

Description

value

double

​The health score assigned to the recipe.

nutrients_influence

array

The components based on which the health score is derived.

Glycemic Index

‌This array includes information on the glycemic index score assigned to the recipe. It helps in understanding the impact of the recipe on blood sugar levels.

Attribute

Type

Description

value

double

The ​glycemic index score.

Glycemic Load

‌This array includes information on the glycemic load score assigned to the recipe. It helps in understanding the impact of the recipe on blood glucose levels.

Attribute

Type

Description

value

double

​The glycemic load score.

Last updated