Edamam
Edamam is a food and nutrition data platform powering recipe search, NLP-based nutrition analysis, food database lookup (keyword / brand / UPC / AI Vision), and personalized meal planning. The flagship Recipe Search API v2 covers a 2M+ recipe index with 30+ filters across diet, health, cuisine, meal, dish, nutrients, time, glycemic index, and CO2 emissions class.
4 APIs
10 Features
Food And DrinkRecipesNutritionDietAllergensMeal PlanningSustainabilityCarbon FootprintPublic APIs
Search and look up recipes from a 2M+ recipe index with 30+ filters (q, diet, health, cuisineType, mealType, dishType, calories, time, excluded, nutrients, glycemicIndex, random...
Natural-language nutrition analysis. Submit free-text ingredient lines or full recipes and receive computed energy, macronutrients, diet/health labels, and recipe classification...
Look up nutrition data for foods by keyword, brand, UPC/EAN barcode, AI Vision photo analysis, or autocomplete. Returns per-100g nutrient values, allergen / health labels, and c...
Generate personalized meal plans (up to 14 days) with daily structure of sections and slots, fit to nutritional ranges and diet/health constraints. Includes DRI calculation, rec...
2M+ Recipe Index
Search across 2 million recipes from third-party sources plus 20,000+ Edamam-owned recipes with cooking instructions.
30+ Filters
Filter by diet, health/allergen labels, cuisine, meal type, dish type, calorie range, total time, nutrients, glycemic index, and excluded ingredients.
28+ Nutrients
Per-recipe and per-food breakdowns including macros, vitamins (A, B-12, C, D, E, K), minerals (Ca, Fe, K, Mg, P, Zn), fiber, sodium, sugars.
Carbon Footprint (CO2e)
Recipes carry a CO2 emissions class (A+ through G) when beta=true is set.
AI Vision Food Recognition
Submit a public image URL or base64 data URI to the Food Database API and receive detected food + nutrition estimates.
NLP Recipe Analysis
Submit raw recipe text (title + ingredient lines) to the Nutrition Analysis API and receive structured nutrient and label output.
Active User Tracking
Use the Edamam-Account-User header to bind per-user budgets and caching rights (required on Enterprise and Meal Planner plans).
Shopping List Aggregation
Aggregate ingredient quantities across one or more recipes into a consolidated shopping list, with optional Instacart integration on Enterprise tiers.
HTTP Compression
gzip supported via Accept-Encoding header.
HATEOAS Pagination
_links.next on paged responses; _links.self on individual hits.
Recipe Search Enterprise Basic
$9/mo, 10,000 calls/mo, 10 calls/min, third-party web recipes, 10-day trial.
Recipe Search Enterprise Core
$99/mo, 500,000 calls/mo, 100 calls/min.
Recipe Search Enterprise Plus
$399/mo, 1,000,000 calls/mo, 300 calls/min, Edamam-owned recipes with cooking instructions, CO2e data.
Recipe Search Enterprise Unlimited
Custom — contact sales for unlimited usage and custom content.
Food Database Basic Vision
$14/mo, 100,000 calls + 500 Vision requests, includes MCP server access.
Food Database Core
$69/mo, 750,000 calls, pay-as-you-go Vision.
Food Database Plus
$299/mo, 5,000,000 calls, 10,000 Vision requests.
Meal Planner Developer
Free, 10 MAU, 20 meal-plan calls/day, 300 recipe calls/min, non-commercial.
Meal Planner Enterprise Core
$300/mo, 1,000 MAU, 30 meal-plan calls/day, 5,000 recipe calls/min, Instacart integration.
opencollection: 1.0.0
info:
name: Recipe Search and Shopping List API
version: '2.9'
items:
- info:
name: Recipe Search
type: folder
items:
- info:
name: Search for a Recipe
type: http
http:
method: GET
url: https://api.edamam.com/api/recipes/v2
headers:
- name: Accept-Language
value: ''
params:
- name: type
value: ''
type: query
description: Type of recipes to search for. For backward compatibility you can also specify `any` and it will be equivalent
to specifying all enumerated values.
- name: beta
value: ''
type: query
description: Allow beta features in the request and response
- name: q
value: ''
type: query
description: Query text, for example "chicken".<br> __REQUIRED__ if no other parameter is specified. __NOT REQUIRED__
if any other parameter (other than application credentials) is specified.
- name: ingr
value: ''
type: query
description: 'Filter by number of ingredients (MIN+, MIN-MAX, MAX), where MIN and MAX are integer numbers.
Example: `ingr=5-8`
'
- name: diet
value: ''
type: query
description: Diet label. You can select multiple labels by holding shift and left-clicking all the labels needed.
- name: health
value: ''
type: query
description: Health label. You can select multiple labels by holding shift and left-clicking all the labels needed.
- name: cuisineType
value: ''
type: query
description: The type of cuisine of the recipe
- name: mealType
value: ''
type: query
description: The type of meal a recipe belongs to
- name: dishType
value: ''
type: query
description: The dish type a recipe belongs to
- name: calories
value: ''
type: query
description: 'The format is calories=RANGE where RANGE is in one of MIN+, MIN-MAX or MAX, where MIN and MAX are
non-negative floating point numbers. The + symbol needs to be properly encoded. Example: `calories=100-300`
will return all recipes with which have between 100 and 300 kcal per serving.
'
- name: time
value: ''
type: query
description: 'Time range for the total cooking and prep time for a recipe. The format is time=RANGE where RANGE is
one of
MIN+, MIN-MAX or MAX, where MIN and MAX are non-negative integer numbers. The + symbol needs to be properly
encoded. Example: `time=1%2B` will return all recipes with available total time greater then 1 minute.
'
- name: imageSize
value: ''
type: query
description: Show only recipes, which have images with selected sizes
- name: glycemicIndex
value: ''
type: query
description: Filter by glycemic index. The format is FLOAT-RANGE
- name: inflammatoryIndex
value: ''
type: query
description: Filter by diet inflammatory index. The format is FLOAT-RANGE
- name: excluded
value: ''
type: query
description: 'Excluding recipes with certain ingredients. The format is `excluded=FOOD` where FOOD is replaced by
the name
of the specific food you don''t want to be present in the recipe results. More than one food can be excluded
at the same time. Example: excluded=vinegar&excluded=pretzel will exclude any recipes which contain vinegar
or pretzels in their ingredient list.
'
- name: random
value: ''
type: query
description: 'Select whether you want this query to respond with a random selection of 20 recipes based on the criteria
filled. If there were only 20 or less possible results, this will return those results in random order.
'
- name: nutrients[CA]
value: ''
type: query
description: "Calcium, Ca. Unit: mg. Input the range which is one of MIN+, MIN-MAX or MAX, where MIN and MAX are \n\
non-negative floating point numbers.<br>\nFor example: `nutrients[CA]=50+` means minimum 50mg calcium, where `50+`\
\ has to be properly encoded as\n`50%2B` `nutrients[FAT]=30` means maximum 30g fat and `nutrients[FE]=5-10` means\
\ iron between 5mg and 10mg\ninclusive.\n"
- name: nutrients[CHOCDF]
value: ''
type: query
description: 'Carbohydrate, by difference. Unit: g. Input the range which is one of MIN+, MIN-MAX or MAX, where MIN
and
MAX are non-negative floating point numbers.<br>
See calcium for an example for how to fill in the range.
'
- name: nutrients[CHOCDF.net]
value: ''
type: query
description: 'Carbohydrates (net). Unit: g. Input the range which is one of MIN+, MIN-MAX or MAX, where MIN and MAX
are
non-negative floating point numbers.<br>
See calcium for an example for how to fill in the range.
'
- name: nutrients[CHOLE]
value: ''
type: query
description: 'Cholesterol. Unit: mg. Input the range which is one of MIN+, MIN-MAX or MAX, where MIN and MAX are
non-negative floating point numbers.<br>
See calcium for an example for how to fill in the range.
'
- name: nutrients[ENERC_KCAL]
value: ''
type: query
description: 'Energy. Unit: kcal. Input the range which is one of MIN+, MIN-MAX or MAX, where MIN and MAX are non-negative
floating point numbers.<br>
See calcium for an example for how to fill in the range.
'
- name: nutrients[FAMS]
value: ''
type: query
description: 'Fatty acids, total monounsaturated. Unit: g. Input the range which is one of MIN+, MIN-MAX or MAX, where
MIN
and MAX are non-negative floating point numbers.<br>
See calcium for an example for how to fill in the range.
'
- name: nutrients[FAPU]
value: ''
type: query
description: 'Fatty acids, total polyunsaturated. Unit: g. Input the range which is one of MIN+, MIN-MAX or MAX, where
MIN
and MAX are non-negative floating point numbers.<br>
See calcium for an example for how to fill in the range.
'
- name: nutrients[FASAT]
value: ''
type: query
description: 'Fatty acids, total saturated. Unit: g. Input the range which is one of MIN+, MIN-MAX or MAX, where MIN
and
MAX are non-negative floating point numbers.<br>
See calcium for an example for how to fill in the range.
'
- name: nutrients[FAT]
value: ''
type: query
description: 'Total lipid (fat). Unit: g. Input the range which is one of MIN+, MIN-MAX or MAX, where MIN and MAX
are
non-negative floating point numbers.<br>
See calcium for an example for how to fill in the range.
'
- name: nutrients[FATRN]
value: ''
type: query
description: 'Fatty acids, total trans. Unit: g. Input the range which is one of MIN+, MIN-MAX or MAX, where MIN and
MAX
are non-negative floating point numbers.<br>
See calcium for an example for how to fill in the range.
'
- name: nutrients[FE]
value: ''
type: query
description: 'Iron, Fe. Unit: mg. Input the range which is one of MIN+, MIN-MAX or MAX, where MIN and MAX are non-negative
floating point numbers.<br>
See calcium for an example for how to fill in the range.
'
- name: nutrients[FIBTG]
value: ''
type: query
description: 'Fiber, total dietary. Unit: g. Input the range which is one of MIN+, MIN-MAX or MAX, where MIN and MAX
are
non-negative floating point numbers.<br>
See calcium for an example for how to fill in the range.
'
- name: nutrients[FOLAC]
value: ''
type: query
description: 'Folic acid. Unit: µg. Input the range which is one of MIN+, MIN-MAX or MAX, where MIN and MAX are
non-negative floating point numbers.<br>
See calcium for an example for how to fill in the range.
'
- name: nutrients[FOLDFE]
value: ''
type: query
description: 'Folate, DFE. Unit: µg. Input the range which is one of MIN+, MIN-MAX or MAX, where MIN and MAX are
non-negative floating point numbers.<br>
See calcium for an example for how to fill in the range.
'
- name: nutrients[FOLFD]
value: ''
type: query
description: 'Folate (food). Unit: µg. Input the range which is one of MIN+, MIN-MAX or MAX, where MIN and MAX are
non-negative floating point numbers.<br>
See calcium for an example for how to fill in the range.
'
- name: nutrients[K]
value: ''
type: query
description: 'Potassium, K. Unit: mg. Input the range which is one of MIN+, MIN-MAX or MAX, where MIN and MAX are
non-negative floating point numbers.<br>
See calcium for an example for how to fill in the range.
'
- name: nutrients[MG]
value: ''
type: query
description: 'Magnesium. Unit: mg. Input the range which is one of MIN+, MIN-MAX or MAX, where MIN and MAX are
non-negative floating point numbers.<br>
See calcium for an example for how to fill in the range.
'
- name: nutrients[NA]
value: ''
type: query
description: 'Sodium, Na. Unit: mg. Input the range which is one of MIN+, MIN-MAX or MAX, where MIN and MAX are
non-negative floating point numbers.<br>
See calcium for an example for how to fill in the range.
'
- name: nutrients[NIA]
value: ''
type: query
description: 'Niacin. Unit: mg. Input the range which is one of MIN+, MIN-MAX or MAX, where MIN and MAX are non-negative
floating point numbers.<br>
See calcium for an example for how to fill in the range.
'
- name: nutrients[P]
value: ''
type: query
description: 'Phosphorus, P. Unit: mg. Input the range which is one of MIN+, MIN-MAX or MAX, where MIN and MAX are
non-negative floating point numbers.<br>
See calcium for an example for how to fill in the range.
'
- name: nutrients[PROCNT]
value: ''
type: query
description: 'Protein. Unit: g. Input the range which is one of MIN+, MIN-MAX or MAX, where MIN and MAX are non-negative
floating point numbers.<br>
See calcium for an example for how to fill in the range.
'
- name: nutrients[RIBF]
value: ''
type: query
description: 'Riboflavin. Unit: mg. Input the range which is one of MIN+, MIN-MAX or MAX, where MIN and MAX are
non-negative floating point numbers.<br>
See calcium for an example for how to fill in the range.
'
- name: nutrients[SUGAR]
value: ''
type: query
description: 'Sugars, total. Unit: g. Input the range which is one of MIN+, MIN-MAX or MAX, where MIN and MAX are
non-negative floating point numbers.<br>
See calcium for an example for how to fill in the range.
'
- name: nutrients[SUGAR.added]
value: ''
type: query
description: 'Sugars, added. Unit: g. Input the range which is one of MIN+, MIN-MAX or MAX, where MIN and MAX are
non-negative floating point numbers.<br>
See calcium for an example for how to fill in the range.
'
- name: nutrients[Sugar.alcohol]
value: ''
type: query
description: 'Sugar alcohols. Unit: g. Input the range which is one of MIN+, MIN-MAX or MAX, where MIN and MAX are
non-negative floating point numbers.<br>
See calcium for an example for how to fill in the range.
'
- name: nutrients[THIA]
value: ''
type: query
description: 'Thiamin. Unit: mg. Input the range which is one of MIN+, MIN-MAX or MAX, where MIN and MAX are non-negative
floating point numbers.<br>
See calcium for an example for how to fill in the range.
'
- name: nutrients[TOCPHA]
value: ''
type: query
description: 'Vitamin E (alpha-tocopherol). Unit: mg. Input the range which is one of MIN+, MIN-MAX or MAX, where
MIN and
MAX are non-negative floating point numbers.<br>
See calcium for an example for how to fill in the range.
'
- name: nutrients[VITA_RAE]
value: ''
type: query
description: 'Vitamin A, RAE. Unit: µg. Input the range which is one of MIN+, MIN-MAX or MAX, where MIN and MAX are
non-negative floating point numbers.<br>
See calcium for an example for how to fill in the range.
'
- name: nutrients[VITB12]
value: ''
type: query
description: 'Vitamin B12. Unit: µg. Input the range which is one of MIN+, MIN-MAX or MAX, where MIN and MAX are
non-negative floating point numbers.<br>
See calcium for an example for how to fill in the range.
'
- name: nutrients[VITB6A]
value: ''
type: query
description: 'Vitamin B6. Unit: mg. Input the range which is one of MIN+, MIN-MAX or MAX, where MIN and MAX are
non-negative floating point numbers.<br>
See calcium for an example for how to fill in the range.
'
- name: nutrients[VITC]
value: ''
type: query
description: "Vitamin C, total ascorbic acid. Unit: mg. Input the range which is one of MIN+, MIN-MAX or MAX, where\
\ MIN \nand MAX are non-negative floating point numbers.<br>\nSee calcium for an example for how to fill in the\
\ range.\n"
- name: nutrients[VITD]
value: ''
type: query
description: 'Vitamin D (D2 + D3). Unit: µg. Input the range which is one of MIN+, MIN-MAX or MAX, where MIN and MAX
are
non-negative floating point numbers.<br>
See calcium for an example for how to fill in the range.
'
- name: nutrients[VITK1]
value: ''
type: query
description: 'Vitamin K (phylloquinone). Unit: µg. Input the range which is one of MIN+, MIN-MAX or MAX, where MIN
and MAX
are non-negative floating point numbers.<br>
See calcium for an example for how to fill in the range.
'
- name: nutrients[WATER]
value: ''
type: query
description: 'Water. Unit: g. Input the range which is one of MIN+, MIN-MAX or MAX, where MIN and MAX are non-negative
floating point numbers.<br>
See calcium for an example for how to fill in the range.
'
- name: nutrients[ZN]
value: ''
type: query
description: 'Zinc, Zn. Unit: mg. Input the range which is one of MIN+, MIN-MAX or MAX, where MIN and MAX are non-negative
floating point numbers.<br>
See calcium for an example for how to fill in the range.
'
- name: field
value: ''
type: query
description: Recipe fields to be included in the response.
- name: co2EmissionsClass
value: ''
type: query
description: Filter recipes by their CO2 footprint.
- name: tag
value: ''
type: query
description: Show only recipes containing the specified tags.
- name: sysTag
value: ''
type: query
description: '_(Beta)_ Show only recipes containing the specified system tags. This field is subject to account
subscription restrictions.
'
auth:
type: apikey
key: app_id
value: '{{app_id}}'
placement: query
docs: 'This endpoint returns a list of recipes matching the provided criteria. Get started by placing your search query
in the `q` parameter, fill in your 3scale credentials, and press the "Try it out!" button at the bottom.
Additionally, refine your search by using the optional parameters to specify what you are looking for.
__Note:__
- When mentioned, ''floating point values'' refers to values such as `50.0`, `50.`, `0.5`, and `.5`.
- When speaking of ranges, the API accepts values such as `1.0+`, `1.'
- info:
name: Lookup Recipe(s) using their URI(s)
type: http
http:
method: GET
url: https://api.edamam.com/api/recipes/v2/by-uri
headers:
- name: Accept-Language
value: ''
params:
- name: type
value: ''
type: query
description: This parameter is no longer used. It's kept here for backwards compatibility.
- name: beta
value: ''
type: query
description: Allow beta features in the request and response
- name: uri
value: ''
type: query
description: Recipe URIs - up to 20
- name: field
value: ''
type: query
description: Recipe fields to be included in the response.
auth:
type: apikey
key: app_id
value: '{{app_id}}'
placement: query
docs: 'Search for recipes by their URI. Note, that the API response doesn''t directly indicate if there are missing
recipes. Instead, you need to compare he URIs to see if any are missing.
'
- info:
name: Lookup a Specific Recipe by ID
type: http
http:
method: GET
url: https://api.edamam.com/api/recipes/v2/:id
headers:
- name: Accept-Language
value: ''
params:
- name: id
value: ''
type: path
description: The recipe ID
- name: type
value: ''
type: query
description: This parameter is no longer used. It's kept here for backwards compatibility.
- name: beta
value: ''
type: query
description: Allow beta features in response.
- name: field
value: ''
type: query
description: Recipe fields to be included in the response.
auth:
type: apikey
key: app_id
value: '{{app_id}}'
placement: query
docs: 'Returns the nutritional information for given recipe. These requests are constructed automatically and can
be found in `hits[]._links.self.href`.
'
- info:
name: Shopping List
type: folder
items:
- info:
name: Create Shopping List From Total Meal Quantities
type: http
http:
method: POST
url: https://api.edamam.com/api/shopping-list/v2
params:
- name: beta
value: ''
type: query
description: Turn on support for beta features
- name: shopping-cart
value: ''
type: query
description: (BETA only) Generate a shopping cart page for the the foods aggregated in the shopping list
body:
type: json
data: '{}'
auth:
type: apikey
key: app_id
value: '{{app_id}}'
placement: query
docs: Create Shopping List From Total Meal Quantities
bundled: true