Get a Recipe Batch

This endpoint retrieves a list of recipes filtered by pagination and timestamp.

get
Get Recipe Batch

https://api.studio.whisk.com/recipes/v1/get/batch
You can append the following query parameters to the base URL to pull data from Whisk Studio:
Request
Response
Request
Headers
Authentication
required
string
Server token to authorize the API usage. For more information, see Authentication.
Query Parameters
paging.limit
optional
integer
The maximum number of recipes to retrieve.
paging.after
optional
string
This parameter is used for cursor-based pagination. It takes a recipe ID as its value and retrieves only those recipes that appear after it in the database. For example, 107134871564e7248b4a58a4deb77804da4.
fields
optional
string
Any additional recipe details to retrieve. You can choose one or more of these supported values: - EXTRA_RECIPE_FIELD_INVALID - EXTRA_RECIPE_FIELD_NORMALIZED_INGREDIENTS - EXTRA_RECIPE_FIELD_INSTRUCTIONS - EXTRA_RECIPE_FIELD_NUTRITION - EXTRA_RECIPE_FIELD_INGREDIENTS_LINKED_PRODUCTS - EXTRA_RECIPE_FIELD_AUTO_LABELS For performance reasons, we recommend using this parameter only when required.
updated_at.min
optional
string
Date and time in Unix format to indicate that only those recipes get retrieved that were updated after it. For example, 1514788200000.
updated_at.max
optional
string
Date and time in Unix format to indicate that only those recipes get retrieved that were updated before it. For example, 1610999038495.
integration_id
required
string
An identifier to indicate the integration type. See Integration API for more information.
Response
200: OK
This is how a successful response looks.
{
"recipes": [
{
"recipe": {
"id": "string",
"name": "string",
"description": "string",
"instructions": {
"steps": [
{
"text": "string",
"group": "string",
"images": [
{
"url": "string",
"responsive": {
"url": "string",
"width": 0,
"height": 0
}
}
],
"custom_labels": [
{
"name": "string",
"labels": [
{
"name": "string"
}
]
}
]
}
]
},
"images": [
{
"url": "string",
"responsive": {
"url": "string",
"width": 0,
"height": 0
}
}
],
"source": {
"name": "string",
"url": "string",
"display_name": "string",
"image": {
"url": "string",
"responsive": {
"url": "string",
"width": 0,
"height": 0
}
}
},
"servings": 0,
"durations": {
"cook_time": 0,
"prep_time": 0,
"total_time": 0
},
"ingredients": [
{
"text": "string",
"group": "string",
"linked_product": {
"id": "string",
"name": "string",
"images": [
{
"url": "string",
"responsive": {
"url": "string",
"width": 0,
"height": 0
}
}
],
"external_product_id": "string"
}
}
],
"normalized_ingredients": [
{
"text": "string",
"group": "string",
"linked_product": {
"id": "string",
"name": "string",
"images": [
{
"url": "string",
"responsive": {
"url": "string",
"width": 0,
"height": 0
}
}
],
"external_product_id": "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"
}
],
"nutrition": {
"status": "STATUS_INVALID",
"total": [
{
"label": "string",
"code": "NUTRITION_CODE_INVALID",
"value": 0,
"unit": "NUTRITION_UNIT_INVALID"
}
],
"coverage": 0,
"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"
}
]
},
"author": {
"id": "string",
"name": "string",
"image": {
"url": "string",
"responsive": {
"url": "string",
"width": 0,
"height": 0
}
}
},
"language": "string",
"external_id": "string",
"updated_at_time": "string",
"created_at_time": "string",
"published_status": "RECIPE_PUBLISHED_STATUS_INVALID",
"custom_labels": [
{
"name": "string",
"labels": [
{
"name": "string"
}
]
}
],
"tips": [
{
"header": "string",
"text": "string"
}
]
},
"deleted_recipe": {
"id": "string",
"deleted_at_time": "string",
"created_at_time": "string"
}
}
],
"paging": {
"total": "string",
"after": "string"
}
}
400: Bad Request
This failed response appears when error codes are found in the endpoint query.
{
"error_code": "REAL_CODES_ARE_IN_ENDPOINT_DESCRIPTION",
"message": "Additional details about error are not static and can be changed"
}
401: Unauthorized
This failed response appears due to API authentication failure. The possible error codes that may appear are: auth.tokenNotFound , auth.tokenExpired, auth.tokenInvalid, auth.tokenRequired.
{
"code": "auth.tokenNotFound"
}
500: Internal Server Error
This failed response appears when something is not right on Whisk's end. Please send a message to help@whisk.com, and be sure to include both the Request and Response data. We’ll get back to you soon.
This is unexpected response, something is wrong on our side, please contact: help@whisk.com

Sample Request and Response

Curl Request
Response
Curl Request
curl -X GET "https://api.studio.whisk.com/recipes/v1/get/batch?paging.limit=3&paging.after=1070a06032934f84e788a73cd58c017366b4&fields=EXTRA_RECIPE_FIELD_NORMALIZED_INGREDIENTS&fields=EXTRA_RECIPE_FIELD_INSTRUCTIONS&fields=EXTRA_RECIPE_FIELD_NUTRITION&fields=EXTRA_RECIPE_FIELD_INGREDIENTS_LINKED_PRODUCTS&fields=EXTRA_RECIPE_FIELD_AUTO_LABELS&updated_at.max=1610999038495&integration_id=3a2b8cfd-27cd-4c81-ab79-e31e03e56c20"
-H "Accept: application/json"
-H "Authorization: Bearer <YOUR-API-ACCESS-KEY>"

Note: Whisk allows you to discover and understand its API capabilities on the Swagger interface with the ability to try out the API calls directly in your browser. You can call this endpoint here.

Response
{
"recipes": [
{
"recipe": {
"id": "107218d97a8c9294971802be6c8b81bf137",
"name": "Laurel's Malaysian Inspired Pavlova",
...
"language": "en",
"updated_at_time": "1607041141957",
"created_at_time": "1607041141957",
"published_status": "RECIPE_PUBLISHED_STATUS_DRAFT"
}
},
{
"recipe": {
"id": "1072689e47689e34a859633309c5d17fec8",
"name": "Grab-and-Go Breakfast Sandwich",
"description": "Skip the drive-thru. Your homemade breakfast sandwich, with cholesterol-free egg product, is better for you--and tastier!",
...
"language": "en",
"updated_at_time": "1610730959413",
"created_at_time": "1610725156807",
"published_status": "RECIPE_PUBLISHED_STATUS_DRAFT"
...
}
},
{
"recipe": {
"id": "1072bd455bd5b5b438cb3654036673fb45e",
"name": "Pudding-Chocolate Morsel Cookies",
"description": "Check out these delicious Pudding-Chocolate Morsel Cookies! Made with chocolate pudding mix and loaded with chocolate chips, these morsel cookies stay chewy even in the cookie jar.",
...
"language": "en",
"updated_at_time": "1607136379241",
"created_at_time": "1607112817836",
"published_status": "RECIPE_PUBLISHED_STATUS_PUBLISHED"
}
}
],
"paging": {
"total": "3",
"after": "2bd455bd-5b5b-438c-b365-4036673fb45e"
}
}

Note: To understand the data structure of the recipe definition, see Recipe Object.