Edamam · Capability
Edamam Recipe Search — Recipe Search
Recipe Search — Recipe Search. 3 operations. Lead operation: Search for a Recipe. Self-contained Naftiko capability covering one Edamam business surface.
What You Can Do
GET
Searchforrecipe
— Search for a recipe.
/v1/recipes
GET
Lookuprecipesbyuri
— Lookup recipes by URI.
/v1/recipes/by-uri
GET
Lookuprecipebyid
— Lookup a recipe by ID.
/v1/recipes/{id}
MCP Tools
search-recipes
Search for recipes by query and filters.
read-only
idempotent
lookup-recipes-by-uri
Lookup one or more recipes by URI.
read-only
idempotent
lookup-recipe-by-id
Lookup a specific recipe by ID.
read-only
idempotent
Capability Spec
naftiko: "1.0.0-alpha2"
info:
label: "Edamam Recipe Search — Recipe Search"
description: >-
Recipe Search — Recipe Search. 3 operations. Lead operation: Search for a Recipe.
Self-contained Naftiko capability covering one Edamam business surface.
tags:
- Edamam
- Recipe Search
- Food And Drink
created: "2026-05-30"
modified: "2026-05-30"
binds:
- namespace: env
keys:
EDAMAM_RECIPE_APP_ID: EDAMAM_RECIPE_APP_ID
EDAMAM_RECIPE_APP_KEY: EDAMAM_RECIPE_APP_KEY
EDAMAM_ACCOUNT_USER: EDAMAM_ACCOUNT_USER
capability:
consumes:
- type: http
namespace: "recipe-search-recipe-search"
baseUri: "https://api.edamam.com"
description: "Edamam Recipe Search API v2 — Recipe Search surface. Self-contained, no shared references."
authentication:
type: apikey
key: app_id
value: "{{env.EDAMAM_RECIPE_APP_ID}}"
placement: query
resources:
- name: "recipes-v2"
path: "/api/recipes/v2"
operations:
- name: "searchForRecipe"
method: GET
description: "Search for a recipe by query, filters, diet, health labels, cuisine, meal, dish type."
inputParameters:
- name: type
in: query
type: string
required: true
description: "public | user | any (request type)."
- name: q
in: query
type: string
required: false
description: "Free-text query for recipe search."
- name: app_id
in: query
type: string
required: true
description: "Edamam Recipe app_id."
- name: app_key
in: query
type: string
required: true
description: "Edamam Recipe app_key."
- name: diet
in: query
type: array
required: false
description: "Diet labels (balanced, high-fiber, high-protein, low-carb, low-fat, low-sodium)."
- name: health
in: query
type: array
required: false
description: "Health/allergen labels (vegan, gluten-free, keto-friendly, etc.)."
- name: cuisineType
in: query
type: array
required: false
description: "Cuisine filter (American, Asian, Chinese, French, Indian, Italian, etc.)."
- name: mealType
in: query
type: array
required: false
description: "Meal type (breakfast, brunch, lunch/dinner, snack, teatime)."
- name: dishType
in: query
type: array
required: false
description: "Dish type filter."
- name: calories
in: query
type: string
required: false
description: "Calorie range filter (e.g. 100-300, 500+)."
- name: time
in: query
type: string
required: false
description: "Total time range in minutes."
- name: excluded
in: query
type: array
required: false
description: "Ingredients to exclude."
- name: nutrients
in: query
type: array
required: false
description: "Per-nutrient range filters (e.g. nutrients[PROCNT]=20+)."
- name: glycemicIndex
in: query
type: string
required: false
description: "Glycemic index range."
- name: random
in: query
type: boolean
required: false
description: "Return random subset of matches."
- name: imageSize
in: query
type: array
required: false
description: "Image sizes to include (THUMBNAIL, SMALL, REGULAR, LARGE)."
- name: beta
in: query
type: boolean
required: false
description: "Include beta features such as CO2e emissions."
- name: Edamam-Account-User
in: header
type: string
required: false
description: "Active User Tracking header (required for Enterprise plans)."
outputRawFormat: json
outputParameters:
- name: result
type: object
value: "$."
- name: "recipes-v2-by-uri"
path: "/api/recipes/v2/by-uri"
operations:
- name: "lookupRecipesByUri"
method: GET
description: "Lookup one or more recipes by their Edamam URIs."
inputParameters:
- name: type
in: query
type: string
required: true
- name: uri
in: query
type: array
required: true
description: "One or more recipe URIs."
- name: app_id
in: query
type: string
required: true
- name: app_key
in: query
type: string
required: true
- name: Edamam-Account-User
in: header
type: string
required: false
outputRawFormat: json
outputParameters:
- name: result
type: object
value: "$."
- name: "recipes-v2-by-id"
path: "/api/recipes/v2/{id}"
operations:
- name: "lookupRecipeById"
method: GET
description: "Lookup a single recipe by its Edamam ID."
inputParameters:
- name: id
in: path
type: string
required: true
description: "Recipe ID."
- name: type
in: query
type: string
required: true
- name: app_id
in: query
type: string
required: true
- name: app_key
in: query
type: string
required: true
- name: Edamam-Account-User
in: header
type: string
required: false
outputRawFormat: json
outputParameters:
- name: result
type: object
value: "$."
exposes:
- type: rest
namespace: "recipe-search-recipe-search-rest"
port: 8080
description: "REST adapter for Edamam Recipe Search. One Spectral-compliant resource per consumed operation, prefixed with /v1."
resources:
- path: "/v1/recipes"
name: "recipes"
description: "REST surface for recipe search."
operations:
- method: GET
name: "searchForRecipe"
description: "Search for a recipe."
call: "recipe-search-recipe-search.searchForRecipe"
with:
type: "rest.type"
q: "rest.q"
app_id: "rest.app_id"
app_key: "rest.app_key"
diet: "rest.diet"
health: "rest.health"
cuisineType: "rest.cuisineType"
mealType: "rest.mealType"
dishType: "rest.dishType"
calories: "rest.calories"
time: "rest.time"
excluded: "rest.excluded"
nutrients: "rest.nutrients"
glycemicIndex: "rest.glycemicIndex"
random: "rest.random"
imageSize: "rest.imageSize"
beta: "rest.beta"
Edamam-Account-User: "rest.Edamam-Account-User"
outputParameters:
- type: object
mapping: "$."
- path: "/v1/recipes/by-uri"
name: "recipes-by-uri"
description: "Lookup recipes by URI."
operations:
- method: GET
name: "lookupRecipesByUri"
description: "Lookup recipes by URI."
call: "recipe-search-recipe-search.lookupRecipesByUri"
with:
type: "rest.type"
uri: "rest.uri"
app_id: "rest.app_id"
app_key: "rest.app_key"
Edamam-Account-User: "rest.Edamam-Account-User"
outputParameters:
- type: object
mapping: "$."
- path: "/v1/recipes/{id}"
name: "recipes-by-id"
description: "Lookup a recipe by ID."
operations:
- method: GET
name: "lookupRecipeById"
description: "Lookup a recipe by ID."
call: "recipe-search-recipe-search.lookupRecipeById"
with:
id: "rest.id"
type: "rest.type"
app_id: "rest.app_id"
app_key: "rest.app_key"
Edamam-Account-User: "rest.Edamam-Account-User"
outputParameters:
- type: object
mapping: "$."
- type: mcp
namespace: "recipe-search-recipe-search-mcp"
port: 9090
transport: http
description: "MCP adapter for Edamam Recipe Search. One tool per consumed operation."
tools:
- name: "search-recipes"
description: "Search for recipes by query and filters."
hints:
readOnly: true
destructive: false
idempotent: true
call: "recipe-search-recipe-search.searchForRecipe"
with:
type: "tools.type"
q: "tools.q"
app_id: "tools.app_id"
app_key: "tools.app_key"
diet: "tools.diet"
health: "tools.health"
cuisineType: "tools.cuisineType"
mealType: "tools.mealType"
dishType: "tools.dishType"
calories: "tools.calories"
time: "tools.time"
excluded: "tools.excluded"
nutrients: "tools.nutrients"
glycemicIndex: "tools.glycemicIndex"
random: "tools.random"
imageSize: "tools.imageSize"
beta: "tools.beta"
Edamam-Account-User: "tools.Edamam-Account-User"
outputParameters:
- type: object
mapping: "$."
- name: "lookup-recipes-by-uri"
description: "Lookup one or more recipes by URI."
hints:
readOnly: true
destructive: false
idempotent: true
call: "recipe-search-recipe-search.lookupRecipesByUri"
with:
type: "tools.type"
uri: "tools.uri"
app_id: "tools.app_id"
app_key: "tools.app_key"
Edamam-Account-User: "tools.Edamam-Account-User"
outputParameters:
- type: object
mapping: "$."
- name: "lookup-recipe-by-id"
description: "Lookup a specific recipe by ID."
hints:
readOnly: true
destructive: false
idempotent: true
call: "recipe-search-recipe-search.lookupRecipeById"
with:
id: "tools.id"
type: "tools.type"
app_id: "tools.app_id"
app_key: "tools.app_key"
Edamam-Account-User: "tools.Edamam-Account-User"
outputParameters:
- type: object
mapping: "$."