Spoonacular API

Spoonacular API

The spoonacular Nutrition, Recipe, and Food API allows you to access over 365,000 recipes and 86,000 food products.
Free Plan $0.00 Monthly Subscribe
3,000 Requests / Monthly
Free for Lifetime
No Credit Card Required
MOST POPULAR
Starter Plan $29.00 Monthly Subscribe
30,000 Requests / Monthly
Standard Support
2600+ Ingredients
5000+ Recipes
600K+ Products
115K+ Menu Items
Pro Plan $99.00 Monthly Subscribe
100,000 Requests / Monthly
Standard Support
2600+ Ingredients
5000+ Recipes
600K+ Products
115K+ Menu Items
Enterprise Plan $179.00 Monthly Subscribe
300,000 Requests / Monthly
Standard Support
2600+ Ingredients
5000+ Recipes
600K+ Products
115K+ Menu Items
Custom Plan Volume Monthly Contact Us
Any requests volume you need
2600+ Ingredients
5000+ Recipes
600K+ Products
115K+ Menu Items

The spoonacular Nutrition, Recipe, and Food API allows you to access over 365,000 recipes and 86,000 food products. Our food ontology and semantic recipe search engine makes it possible to search for recipes using natural language queries, such as “gluten free brownies without sugar” or “low fat vegan cupcakes.” You can automatically calculate the nutritional information for any recipe, analyze recipe costs, visualize ingredient lists, find recipes for what’s in your fridge, find recipes based on special diets, nutritional requirements, or favorite ingredients, classify recipes into types and cuisines, convert ingredient amounts, or even compute an entire meal plan. With our powerful API, you can create many kinds of food and especially nutrition apps.

Special diets/dietary requirements currently available include: vegan, vegetarian, pescetarian, gluten free, grain free, dairy free, high protein, low sodium, low carb, Paleo, Primal, ketogenic, FODMAP, and Whole 30. We will soon be adding Weight Watcher points, too.

Special Diets/Intolerances

We automatically analyze recipes to check for ingredients that contain common allergens, such as wheat, dairy, eggs, soy, nuts, etc. We also determine whether a recipe is vegan, vegetarian, Paleo friendly, Whole30 compliant, and more.

Nutritional Information

We compute the nutritional information for recipes automatically using a proprietary algorithm. With this information, you can find individual recipes or even create entire meal plans that satisfy your users' dietary goals.

Search & Organize

We make it easy to add a recipe search to your app or website - and not just any recipe search. Our semantic search is fast, accurate, and pretty darn smart. "Gluten free nut free dessert without apples"? Easy as pie. Or create your own recipe manager without making your users create tons of tags to find what they're looking for next time. It's all possible.

Have your own recipe database? Great! Let us help you get it under control. With our API, your users will be able to find the recipes they want.

Plan your meals

Let your users plan their meals for the week using recipes or even your own brand of packaged foods. The daily nutritional information is calculated automatically.

Get your shopping list

Once your users are done meal planning, they can get their shopping list in a click of the mouse.

Shoppable Recipes

Finally! An all-in-one solution for cooking at home. Your users can pick their recipes and order all the ingredients from an online grocer to have everything delivered or ready for pickup.

Display recipes to inspire visitors when they browse your own packaged foods (whether dips, sauces, pickles, wraps, you name it!) Show them what they can make, and they'll be more likely to purchase.

Spoonacular API Reference

This API is organized around REST. Our API has predictable resource-oriented URLs, accepts form-encoded request bodies, returns JSON-encoded responses, and uses standard HTTP response codes, authentication, and verbs.

Just Getting Started?

Check out our development quickstart guide.

Authentication

Spoonacular API uses API keys to authenticate requests. You can view and manage your API keys in the Accounts page.

Your API keys carry many privileges, so be sure to keep them secure! Do not share your secret API keys in publicly accessible areas such as GitHub, client-side code, and so forth.

All requests made to the API must hold a custom HTTP header named "apikey". Implementation differs with each programming language. Below are some samples.

All API requests must be made over HTTPS. Calls made over plain HTTP will fail. API requests without authentication will also fail.

Endpoints

Search for simple whole foods (e.g. fruits, vegetables, nuts, grains, meat, fish, dairy etc.)

Parameters

intolerances (required)

A comma-separated list of intolerances. All recipes returned must not contain ingredients that are not suitable for people with the intolerances entered. See a full list of supported intolerances.

Location: Query, Data Type: string

number (required)

The number of expected results (between 1 and 100).

Location: Query, Data Type: integer

offset (required)

The number of results to skip (between 0 and 990).

Location: Query, Data Type: integer

query (required)

The partial or full ingredient name.

Location: Query, Data Type: string

sort (required)

The strategy to sort recipes by. See a full list of supported sorting options.

Location: Query, Data Type: string

sortDirection (required)

The direction in which to sort. Must be either "asc" (ascending) or "desc" (descending).

Location: Query, Data Type: string

addChildren (optional)

Whether to add children of found foods.

Location: Query, Data Type: boolean

maxCarbsPercent (optional)

The maximum percentage of carbs the food can have (between 0 and 100).

Location: Query, Data Type: integer

maxFatPercent (optional)

The maximum percentage of fat the food can have (between 0 and 100).

Location: Query, Data Type: integer

maxProteinPercent (optional)

The maximum percentage of protein the food can have (between 0 and 100).

Location: Query, Data Type: integer

metaInformation (optional)

Whether to return more meta information about the ingredients.

Location: Query, Data Type: boolean

minCarbsPercent (optional)

The minimum percentage of carbs the food must have (between 0 and 100).

Location: Query, Data Type: integer

minFatPercent (optional)

The minimum percentage of fat the food must have (between 0 and 100).

Location: Query, Data Type: integer

minProteinPercent (optional)

The minimum percentage of protein the food must have (between 0 and 100).

Location: Query, Data Type: integer

** A word enclosed with curly brackets "{ }" in the code means that it is a parameter and it should be replaced with your own values when executing. (also overwriting the curly brackets).
Returns

Below is a sample response from the endpoint


If you wish to play around interactively with real values and run code, see...

Compute the amount you need of a certain ingredient for a certain nutritional goal. For example, how much pineapple do you have to eat to get 10 grams of protein?

Parameters

id (required)

The id of the ingredient you want the amount for.

Location: Path, Data Type: integer

nutrient (optional)

The target nutrient. See a list of supported nutrients.

Location: Query, Data Type: string

target (optional)

The target number of the given nutrient.

Location: Query, Data Type: integer

unit (optional)

The target unit.

Location: Query, Data Type: string

** A word enclosed with curly brackets "{ }" in the code means that it is a parameter and it should be replaced with your own values when executing. (also overwriting the curly brackets).
Returns

Below is a sample response from the endpoint


If you wish to play around interactively with real values and run code, see...

Use an ingredient id to get all available information about an ingredient, such as its image and supermarket aisle.

Parameters

id (required)

The ingredient id.

Location: Path, Data Type: integer

amount (optional)

The amount of this ingredient.

Location: Query, Data Type: integer

unit (optional)

The unit for the given amount.

Location: Query, Data Type: string

** A word enclosed with curly brackets "{ }" in the code means that it is a parameter and it should be replaced with your own values when executing. (also overwriting the curly brackets).
Returns

Below is a sample response from the endpoint


If you wish to play around interactively with real values and run code, see...

Search over 115,000 menu items from over 800 fast food and chain restaurants. For example, McDonalds Big Mac or Starbucks Mocha.

Parameters

query (required)

The search query.

Location: Query, Data Type: string

addMenuItemInformation (optional)

If set to true, you get more information about the menu items returned.

Location: Query, Data Type: boolean

maxCalories (optional)

The maximum amount of calories the recipe can have.

Location: Query, Data Type: integer

maxCarbs (optional)

The maximum amount of carbohydrates in grams the recipe can have.

Location: Query, Data Type: integer

maxFat (optional)

The maximum amount of fat in grams the recipe can have.

Location: Query, Data Type: integer

maxProtein (optional)

The maximum amount of protein in grams the recipe can have.

Location: Query, Data Type: integer

minCalories (optional)

The minimum amount of calories the recipe must have.

Location: Query, Data Type: integer

minCarbs (optional)

The diet for which the recipes must be suitable. See a full list of supported diets.

Location: Query, Data Type: integer

minFat (optional)

The minimum amount of fat in grams the recipe must have.

Location: Query, Data Type: integer

minProtein (optional)

The minimum amount of protein in grams the recipe must have.

Location: Query, Data Type: integer

number (optional)

The number of expected results (between 1 and 10).

Location: Query, Data Type: integer

offset (optional)

The offset number for paging (between 0 and 990).

Location: Query, Data Type: integer

** A word enclosed with curly brackets "{ }" in the code means that it is a parameter and it should be replaced with your own values when executing. (also overwriting the curly brackets).
Returns

Below is a sample response from the endpoint


If you wish to play around interactively with real values and run code, see...

Use a menu item id to get all available information about a menu item, such as nutrition.

Parameters

id (required)

The menu item id.

Location: Path, Data Type: integer

** A word enclosed with curly brackets "{ }" in the code means that it is a parameter and it should be replaced with your own values when executing. (also overwriting the curly brackets).
Returns

Below is a sample response from the endpoint


If you wish to play around interactively with real values and run code, see...

Search packaged food products, such as frozen pizza or Greek yogurt.

Parameters

query (required)

The search query.

Location: Query, Data Type: string

addProductInformation (optional)

If set to true, you get more information about the products returned.

Location: Query, Data Type: boolean

maxCalories (optional)

The maximum amount of calories the recipe can have.

Location: Query, Data Type: integer

maxCarbs (optional)

The maximum amount of carbohydrates in grams the recipe can have.

Location: Query, Data Type: integer

maxFat (optional)

The maximum amount of fat in grams the recipe can have.

Location: Query, Data Type: integer

maxProtein (optional)

The maximum amount of protein in grams the recipe can have.

Location: Query, Data Type: integer

minCalories (optional)

The minimum amount of calories the recipe must have.

Location: Query, Data Type: integer

minCarbs (optional)

The diet for which the recipes must be suitable. See a full list of supported diets.

Location: Query, Data Type: integer

minFat (optional)

The minimum amount of fat in grams the recipe must have.

Location: Query, Data Type: integer

minProtein (optional)

The minimum amount of protein in grams the recipe must have.

Location: Query, Data Type: integer

number (optional)

The number of expected results (between 1 and 100).

Location: Query, Data Type: integer

offset (optional)

The number of results to skip (between 0 and 900).

Location: Query, Data Type: integer

** A word enclosed with curly brackets "{ }" in the code means that it is a parameter and it should be replaced with your own values when executing. (also overwriting the curly brackets).
Returns

Below is a sample response from the endpoint


If you wish to play around interactively with real values and run code, see...

Use a product id to get full information about a product, such as ingredients, nutrition, etc. The nutritional information is per serving.

Parameters

id (required)

The id of the packaged food.

Location: Path, Data Type: integer

** A word enclosed with curly brackets "{ }" in the code means that it is a parameter and it should be replaced with your own values when executing. (also overwriting the curly brackets).
Returns

Below is a sample response from the endpoint


If you wish to play around interactively with real values and run code, see...

Autocomplete a partial input to suggest possible recipe names.

Parameters

query (required)

The query to be autocompleted.

Location: Query, Data Type: string

number (optional)

The number of results to return (between 1 and 25).

Location: Query, Data Type: integer

** A word enclosed with curly brackets "{ }" in the code means that it is a parameter and it should be replaced with your own values when executing. (also overwriting the curly brackets).
Returns

Below is a sample response from the endpoint


If you wish to play around interactively with real values and run code, see...

Search through hundreds of thousands of recipes using advanced filtering and ranking. NOTE: This method combines searching by query, by ingredients, and by nutrients into one endpoint.

Parameters

query (required)

The (natural language) search query.

Location: Query, Data Type: string

addRecipeInformation (optional)

If set to true, you get more information about the recipes returned.

Location: Query, Data Type: boolean

addRecipeNutrition (optional)

If set to true, you get nutritional information about each recipes returned.

Location: Query, Data Type: boolean

author (optional)

The username of the recipe author.

Location: Query, Data Type: string

cuisine (optional)

The cuisine(s) of the recipes. One or more, comma separated (will be interpreted as "OR"). See a full list of supported cuisines.

Location: Query, Data Type: string

diet (optional)

The diet for which the recipes must be suitable. See a full list of supported diets.

Location: Query, Data Type: string

equipment (optional)

The equipment required. Multiple values will be interpreted as "or". For example, value could be "blender, frying pan, bowl".

Location: Query, Data Type: string

excludeCuisine (optional)

The cuisine(s) the recipes must not match. One or more, comma separated (will be interpreted as "AND"). See a full list of supported cuisines.

Location: Query, Data Type: string

excludeIngredients (optional)

A comma-separated list of ingredients or ingredient types that the recipes must not contain.

Location: Query, Data Type: string

fillIngredients (optional)

Add information about the ingredients and whether they are used or missing in relation to the query.

Location: Query, Data Type: boolean

ignorePantry (optional)

Whether to ignore typical pantry items, such as water, salt, flour, etc.

Location: Query, Data Type: boolean

includeIngredients (optional)

A comma-separated list of ingredients that should/must be used in the recipes.

Location: Query, Data Type: string

instructionsRequired (optional)

Whether the recipes must have instructions.

Location: Query, Data Type: boolean

intolerances (optional)

A comma-separated list of intolerances. All recipes returned must not contain ingredients that are not suitable for people with the intolerances entered. See a full list of supported intolerances.

Location: Query, Data Type: string

limitLicense (optional)

Whether the recipes should have an open license that allows display with proper attribution.

Location: Query, Data Type: boolean

maxAlcohol (optional)

The maximum amount of alcohol in grams the recipe can have.

Location: Query, Data Type: integer

maxCaffeine (optional)

The maximum amount of caffeine in milligrams the recipe can have.

Location: Query, Data Type: integer

maxCalcium (optional)

The maximum amount of calcium in milligrams the recipe can have.

Location: Query, Data Type: integer

maxCalories (optional)

The maximum amount of calories the recipe can have.

Location: Query, Data Type: integer

maxCarbs (optional)

The maximum amount of carbohydrates in grams the recipe can have.

Location: Query, Data Type: integer

maxCholesterol (optional)

The maximum amount of cholesterol in milligrams the recipe can have.

Location: Query, Data Type: integer

maxCholine (optional)

The maximum amount of choline in milligrams the recipe can have.

Location: Query, Data Type: integer

maxCopper (optional)

The maximum amount of copper in milligrams the recipe can have.

Location: Query, Data Type: integer

maxFat (optional)

The maximum amount of fat in grams the recipe can have.

Location: Query, Data Type: integer

maxFiber (optional)

The maximum amount of fiber in grams the recipe can have.

Location: Query, Data Type: integer

maxFluoride (optional)

The maximum amount of fluoride in milligrams the recipe can have.

Location: Query, Data Type: integer

maxFolate (optional)

The maximum amount of folate in micrograms the recipe can have.

Location: Query, Data Type: integer

maxFolicAcid (optional)

The maximum amount of folic acid in micrograms the recipe can have.

Location: Query, Data Type: integer

maxIodine (optional)

The maximum amount of iodine in micrograms the recipe can have.

Location: Query, Data Type: integer

maxIron (optional)

The maximum amount of iron in milligrams the recipe can have.

Location: Query, Data Type: integer

maxMagnesium (optional)

The maximum amount of magnesium in milligrams the recipe can have.

Location: Query, Data Type: integer

maxManganese (optional)

The maximum amount of manganese in milligrams the recipe can have.

Location: Query, Data Type: integer

maxPhosphorus (optional)

The maximum amount of phosphorus in milligrams the recipe can have.

Location: Query, Data Type: integer

maxPotassium (optional)

The maximum amount of potassium in milligrams the recipe can have.

Location: Query, Data Type: integer

maxProtein (optional)

The maximum amount of protein in grams the recipe can have.

Location: Query, Data Type: integer

maxReadyTime (optional)

The maximum time in minutes it should take to prepare and cook the recipe.

Location: Query, Data Type: string

maxSaturatedFat (optional)

The maximum amount of saturated fat in grams the recipe can have.

Location: Query, Data Type: integer

maxSelenium (optional)

The maximum amount of selenium in micrograms the recipe can have.

Location: Query, Data Type: integer

maxSodium (optional)

The maximum amount of sodium in milligrams the recipe can have.

Location: Query, Data Type: integer

maxSugar (optional)

The maximum amount of sugar in grams the recipe can have.

Location: Query, Data Type: integer

maxVitaminA (optional)

The maximum amount of Vitamin A in IU the recipe can have.

Location: Query, Data Type: integer

maxVitaminB1 (optional)

The maximum amount of Vitamin B1 in milligrams the recipe can have.

Location: Query, Data Type: integer

maxVitaminB12 (optional)

The maximum amount of Vitamin B12 in micrograms the recipe can have.

Location: Query, Data Type: integer

maxVitaminB2 (optional)

The maximum amount of Vitamin B2 in milligrams the recipe can have.

Location: Query, Data Type: integer

maxVitaminB3 (optional)

The maximum amount of Vitamin B3 in milligrams the recipe can have.

Location: Query, Data Type: integer

maxVitaminB5 (optional)

The maximum amount of Vitamin B5 in milligrams the recipe can have.

Location: Query, Data Type: integer

maxVitaminB6 (optional)

The maximum amount of Vitamin B6 in milligrams the recipe can have.

Location: Query, Data Type: integer

maxVitaminC (optional)

The maximum amount of Vitamin C in milligrams the recipe can have.

Location: Query, Data Type: integer

maxVitaminD (optional)

The maximum amount of Vitamin D in micrograms the recipe can have.

Location: Query, Data Type: integer

maxVitaminE (optional)

The maximum amount of Vitamin E in milligrams the recipe can have.

Location: Query, Data Type: integer

maxVitaminK (optional)

The maximum amount of Vitamin K in micrograms the recipe can have.

Location: Query, Data Type: integer

maxZinc (optional)

The maximum amount of zinc in milligrams the recipe can have.

Location: Query, Data Type: integer

minAlcohol (optional)

The minimum amount of alcohol in grams the recipe must have.

Location: Query, Data Type: integer

minCaffeine (optional)

The minimum amount of caffeine in milligrams the recipe must have.

Location: Query, Data Type: integer

minCalcium (optional)

The minimum amount of calcium in milligrams the recipe must have.

Location: Query, Data Type: integer

minCalories (optional)

The minimum amount of calories the recipe must have.

Location: Query, Data Type: integer

minCarbs (optional)

The diet for which the recipes must be suitable. See a full list of supported diets.

Location: Query, Data Type: integer

minCholesterol (optional)

The minimum amount of cholesterol in milligrams the recipe must have.

Location: Query, Data Type: integer

minCholine (optional)

The minimum amount of choline in milligrams the recipe must have.

Location: Query, Data Type: integer

minCopper (optional)

The minimum amount of copper in milligrams the recipe must have.

Location: Query, Data Type: integer

minFat (optional)

The minimum amount of fat in grams the recipe must have.

Location: Query, Data Type: integer

minFiber (optional)

The minimum amount of fiber in grams the recipe must have.

Location: Query, Data Type: integer

minFluoride (optional)

The minimum amount of fluoride in milligrams the recipe must have.

Location: Query, Data Type: integer

minFolate (optional)

The minimum amount of folate in micrograms the recipe must have.

Location: Query, Data Type: integer

minFolicAcid (optional)

The minimum amount of folic acid in micrograms the recipe must have.

Location: Query, Data Type: integer

minIodine (optional)

The minimum amount of iodine in micrograms the recipe must have.

Location: Query, Data Type: integer

minIron (optional)

The minimum amount of iron in milligrams the recipe must have.

Location: Query, Data Type: integer

minMagnesium (optional)

The minimum amount of magnesium in milligrams the recipe must have.

Location: Query, Data Type: integer

minManganese (optional)

The minimum amount of manganese in milligrams the recipe must have.

Location: Query, Data Type: integer

minPhosphorus (optional)

The minimum amount of phosphorus in milligrams the recipe must have.

Location: Query, Data Type: integer

minPotassium (optional)

The minimum amount of potassium in milligrams the recipe must have.

Location: Query, Data Type: integer

minProtein (optional)

The minimum amount of protein in grams the recipe must have.

Location: Query, Data Type: integer

minSaturatedFat (optional)

The minimum amount of saturated fat in grams the recipe must have.

Location: Query, Data Type: integer

minSelenium (optional)

The minimum amount of selenium in micrograms the recipe must have.

Location: Query, Data Type: integer

minSodium (optional)

The minimum amount of sodium in milligrams the recipe must have.

Location: Query, Data Type: integer

minSugar (optional)

The minimum amount of sugar in grams the recipe must have.

Location: Query, Data Type: integer

minVitaminA (optional)

The minimum amount of Vitamin A in IU the recipe must have.

Location: Query, Data Type: integer

minVitaminB1 (optional)

The minimum amount of Vitamin B1 in milligrams the recipe must have.

Location: Query, Data Type: integer

minVitaminB12 (optional)

The minimum amount of Vitamin B12 in micrograms the recipe must have.

Location: Query, Data Type: integer

minVitaminB2 (optional)

The minimum amount of Vitamin B2 in milligrams the recipe must have.

Location: Query, Data Type: integer

minVitaminB3 (optional)

The minimum amount of Vitamin B3 in milligrams the recipe must have.

Location: Query, Data Type: integer

minVitaminB5 (optional)

The minimum amount of Vitamin B5 in milligrams the recipe must have.

Location: Query, Data Type: integer

minVitaminB6 (optional)

The minimum amount of Vitamin B6 in milligrams the recipe must have.

Location: Query, Data Type: integer

minVitaminC (optional)

The minimum amount of Vitamin C milligrams the recipe must have.

Location: Query, Data Type: integer

minVitaminD (optional)

The minimum amount of Vitamin D in micrograms the recipe must have.

Location: Query, Data Type: integer

minVitaminE (optional)

The minimum amount of Vitamin E in milligrams the recipe must have.

Location: Query, Data Type: integer

minVitaminK (optional)

The minimum amount of Vitamin K in micrograms the recipe must have.

Location: Query, Data Type: integer

minZinc (optional)

The minimum amount of zinc in milligrams the recipe must have.

Location: Query, Data Type: integer

number (optional)

The number of expected results (between 1 and 100).

Location: Query, Data Type: integer

offset (optional)

The number of results to skip (between 0 and 900).

Location: Query, Data Type: integer

recipeBoxId (optional)

The id of the recipe box to which the search should be limited to.

Location: Query, Data Type: integer

sort (optional)

The strategy to sort recipes by. See a full list of supported sorting options.

Location: Query, Data Type: string

sortDirection (optional)

The direction in which to sort. Must be either "asc" (ascending) or "desc" (descending).

Location: Query, Data Type: string

tags (optional)

User defined tags that have to match. The author param has to be set.

Location: Query, Data Type: string

titleMatch (optional)

Enter text that must be found in the title of the recipes.

Location: Query, Data Type: string

type (optional)

The type of recipe. See a full list of supported meal types.

Location: Query, Data Type: string

** A word enclosed with curly brackets "{ }" in the code means that it is a parameter and it should be replaced with your own values when executing. (also overwriting the curly brackets).
Returns

Below is a sample response from the endpoint


If you wish to play around interactively with real values and run code, see...

Convert amounts like "2 cups of flour to grams"

Parameters

ingredientName (required)

The ingredient which you want to convert.

Location: Query, Data Type: string

sourceAmount (required)

The amount from which you want to convert, e.g. the 2.5 in "2.5 cups of flour to grams".

Location: Query, Data Type: float

sourceUnit (required)

The unit from which you want to convert, e.g. the grams in "2.5 cups of flour to grams". You can also use "piece", e.g. "3.4 oz tomatoes to piece"8

Location: Query, Data Type: string

targetUnit (required)

The unit to which you want to convert, e.g. the grams in "2.5 cups of flour to grams". You can also use "piece", e.g. "3.4 oz tomatoes to piece"

Location: Query, Data Type: string

** A word enclosed with curly brackets "{ }" in the code means that it is a parameter and it should be replaced with your own values when executing. (also overwriting the curly brackets).
Returns

Below is a sample response from the endpoint


If you wish to play around interactively with real values and run code, see...

This endpoint lets you extract recipe data such as title, ingredients, and instructions from any properly formatted Website.

Parameters

url (required)

The URL of the recipe page.

Location: Query, Data Type: string

analyze (optional)

If true, the recipe will be analyzed and classified resolving in more data such as cuisines, dish types, and more.

Location: Query, Data Type: boolean

forceExtraction (optional)

If true, the extraction will be triggered whether we already know the recipe or not. Use this only if information is missing as this operation is slower.

Location: Query, Data Type: boolean

includeNutrition (optional)

Whether nutrition data should be added to correctly parsed ingredients.

Location: Query, Data Type: boolean

includeTaste (optional)

Whether taste data should be added to correctly parsed ingredients.

Location: Query, Data Type: boolean

** A word enclosed with curly brackets "{ }" in the code means that it is a parameter and it should be replaced with your own values when executing. (also overwriting the curly brackets).
Returns

Below is a sample response from the endpoint


If you wish to play around interactively with real values and run code, see...

Use a recipe id to get full information about a recipe, such as ingredients, nutrition, diet and allergen information, etc.f

Parameters

id (required)

The id of the recipe

Location: Path, Data Type: integer

includeNutrition (optional)

Include nutrition data in the recipe information. Nutrition data is per serving. If you want the nutrition data for the entire recipe, just multiply by the number of servings.

Location: Query, Data Type: boolean

** A word enclosed with curly brackets "{ }" in the code means that it is a parameter and it should be replaced with your own values when executing. (also overwriting the curly brackets).
Returns

Below is a sample response from the endpoint


If you wish to play around interactively with real values and run code, see...

Extract an ingredient from plain text.

Parameters

includeNutrition (required)

Whether nutrition data should be added to correctly parsed ingredients.

Location: Body, Data Type: boolean

ingredientList (required)

The ingredient list of the recipe, one ingredient per line.

Location: Body, Data Type: string

servings (required)

The number of servings that you can make from the ingredients.

Location: Body, Data Type: integer

language (optional)

The input language, either "en" or "de".

Location: Query, Data Type: string

** A word enclosed with curly brackets "{ }" in the code means that it is a parameter and it should be replaced with your own values when executing. (also overwriting the curly brackets).
Returns

Below is a sample response from the endpoint


If you wish to play around interactively with real values and run code, see...

Rate Limiting

Each subscription has its own rate limit. When you become a member, you start by choosing a rate limit that suits your usage needs. Do not worry; You can upgrade or downgrade your plan at any time. For this reason, instead of starting with a larger plan that you do not need, we can offer you to upgrade your plan after you start with "free" or "gold plan" options and start using the API.

When you reach a rate limit (both daily and monthly), the service will stop responding and returning the HTTP 429 response status code (Too many requests) for each request with the following JSON string body text.

{
"message":"You have exceeded your daily\/monthly API rate limit. Please review and upgrade your subscription plan at https:\/\/apilayer.com\/subscriptions to continue."
}

A reminder email will be sent to you when your API usage reaches both 80% and 90%, so that you can take immediate actions such as upgrading your plan in order to prevent your application using the API from being interrupted.

You can also programmatically check your rate limit yourself. As a result of each request made to the APILayer, the following 4 fields provide you with all the necessary information within the HTTP Headers.

x-ratelimit-limit-month: Request limit per month
x-ratelimit-remaining-month: Request limit remaining this month
x-ratelimit-limit-day: Request limit per day
x-ratelimit-remaining-day: Request limit remaining today

You can contact our support unit if you need any assistance with your application regarding to handle the returned result by looking at the header information.

Error Codes

APILayer uses standard HTTP response codes to indicate the success or failure of an API request. In general: Codes in the 2xx range indicate success. Codes in the 4xx range indicate a clientside error, which means that failed given the information provided (e.g., a missing parameter, unauthorized access etc.). Codes in the 5xx range indicate an error with APILayer's servers (normally this should'nt happen at all).

If the response code is not 200, it means the operation failed somehow and you may need to take an action accordingly. You can check the response (which will be in JSON format) for a field called 'message' that briefly explains the error reported.

Status Code Explanation
400 - Bad Request The request was unacceptable, often due to missing a required parameter.
401 - Unauthorized No valid API key provided.
404 - Not Found The requested resource doesn't exist.
429 - Too many requests API request limit exceeded. See section Rate Limiting for more info.
5xx - Server Error We have failed to process your request. (You can contact us anytime)

You can always contact for support and ask for more assistance. We'll be glad to assist you with building your product.