{"openapi":"3.1.0","info":{"title":"Edamam Recipe Search (BYOK) API","version":"0.1.0","description":"Edamam Recipe Search (BYOK) lets an AI assistant read your own Edamam data through the Edamam API with a key you supply (application key (app_key)). Read-only: 5 tools (search_recipes, search_recipes_by_label, get_random_recipes, get_recipe, get_recipes_by_uri). The BYOK key travels with each request, is used for that one call only and is never stored, logged or cached; it is only ever sent to...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-edamam.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-edamam/docs"},"termsOfService":"https://connectorbay.com/byok-edamam/terms"},"servers":[{"url":"https://byok-edamam.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-edamam/docs"},"security":[{"upstreamKey":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."},"upstreamKey":{"type":"apiKey","in":"header","name":"X-Upstream-Key","description":"Your own key for the service this connector wraps (bring your own key). Used for that one call only; never stored, logged or cached."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/search_recipes":{"post":{"operationId":"search_recipes","summary":"Search recipes by keyword with optional limits on calories per serving, total minutes and number of ingredients. Returns","description":"Search recipes by keyword with optional limits on calories per serving, total minutes and number of ingredients. Returns one page of results (the provider's page size); the follow-up link of the provider carries the key, so it is not returned. Use for \"Find chicken recipes under 500 calories that take 30 minutes or less\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"type":{"anyOf":[{"const":"public","type":"string"},{"type":"null"}],"default":"public","description":"Recipe collection to search; 'public' is the shared recipe database.","title":"Type"},"q":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Search text, for example 'chicken'. Needed unless another filter is given.","title":"Q"},"calories":{"anyOf":[{"maxLength":30,"type":"string"},{"type":"null"}],"default":null,"description":"Calories per serving as a range: MIN-MAX, MIN+ or MAX, for example '100-500'.","title":"Calories"},"time":{"anyOf":[{"maxLength":30,"type":"string"},{"type":"null"}],"default":null,"description":"Total cooking and preparation minutes as a range: MIN-MAX, MIN+ or MAX, for example '30'.","title":"Time"},"ingr":{"anyOf":[{"maxLength":30,"type":"string"},{"type":"null"}],"default":null,"description":"Number of ingredients as a range: MIN-MAX, MIN+ or MAX, for example '5-8'.","title":"Ingr"}},"title":"search_recipesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/search_recipes_by_label":{"post":{"operationId":"search_recipes_by_label","summary":"Search recipes filtered by one diet, health label, cuisine, meal type or dish type, with optional search text. Returns o","description":"Search recipes filtered by one diet, health label, cuisine, meal type or dish type, with optional search text. Returns one page of results (the provider's page size); the follow-up link of the provider carries the key, so it is not returned. Use for \"Find vegan Indian dinner recipes\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"type":{"anyOf":[{"const":"public","type":"string"},{"type":"null"}],"default":"public","description":"Recipe collection to search; 'public' is the shared recipe database.","title":"Type"},"q":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Optional search text, for example 'lentil'.","title":"Q"},"diet":{"anyOf":[{"enum":["balanced","high-fiber","high-protein","low-carb","low-fat","low-sodium"],"type":"string"},{"type":"null"}],"default":null,"description":"Diet label.","title":"Diet"},"health":{"anyOf":[{"enum":["alcohol-free","celery-free","crustacean-free","dairy-free","DASH","egg-free","fish-free","fodmap-free","gluten-free","keto-friendly","kidney-friendly","kosher","low-fat-abs","low-potassium","low-sugar","lupine-free","Mediterranean","mollusk-free","mustard-free","no-oil-added","paleo","peanut-free","pescatarian","pork-free","red-meat-free","sesame-free","shellfish-free","soy-free","sugar-conscious","sulfite-free","tree-nut-free","vegan","vegetarian","wheat-free"],"type":"string"},{"type":"null"}],"default":null,"description":"Health label such as vegan, gluten-free or peanut-free.","title":"Health"},"cuisine_type":{"anyOf":[{"enum":["American","Asian","British","Caribbean","Central Europe","Chinese","Eastern Europe","French","Greek","Indian","Italian","Japanese","Korean","Kosher","Mediterranean","Mexican","Middle Eastern","Nordic","South American","South East Asian"],"type":"string"},{"type":"null"}],"default":null,"description":"Cuisine.","title":"Cuisine Type"},"meal_type":{"anyOf":[{"enum":["Breakfast","Dinner","Lunch","Snack","Teatime"],"type":"string"},{"type":"null"}],"default":null,"description":"Meal type.","title":"Meal Type"},"dish_type":{"anyOf":[{"enum":["Biscuits and cookies","Bread","Cereals","Condiments and sauces","Desserts","Drinks","Main course","Pancake","Preps","Preserve","Salad","Sandwiches","Side dish","Soup","Starter","Sweets"],"type":"string"},{"type":"null"}],"default":null,"description":"Dish type.","title":"Dish Type"}},"title":"search_recipes_by_labelArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_random_recipes":{"post":{"operationId":"get_random_recipes","summary":"Get a random selection of up to 20 recipes that match optional search text, diet or meal type. Use for \"Suggest some ran","description":"Get a random selection of up to 20 recipes that match optional search text, diet or meal type. Use for \"Suggest some random lunch recipes\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"type":{"anyOf":[{"const":"public","type":"string"},{"type":"null"}],"default":"public","description":"Recipe collection to search; 'public' is the shared recipe database.","title":"Type"},"random":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":true,"description":"True to return a random selection instead of the best matches.","title":"Random"},"q":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Optional search text, for example 'salad'.","title":"Q"},"meal_type":{"anyOf":[{"enum":["Breakfast","Dinner","Lunch","Snack","Teatime"],"type":"string"},{"type":"null"}],"default":null,"description":"Meal type.","title":"Meal Type"}},"title":"get_random_recipesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_recipe":{"post":{"operationId":"get_recipe","summary":"Get one recipe by its id (the last part of a recipe uri, for example the 32-character code). Returns the recipe's title,","description":"Get one recipe by its id (the last part of a recipe uri, for example the 32-character code). Returns the recipe's title, source link, servings, calories, labels and ingredient lines; the cooking steps are on the source site. Use for \"Show me the details of this Edamam recipe\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"id":{"description":"Recipe id: the code after '#recipe_' in a recipe uri returned by the search tools.","maxLength":200,"title":"Id","type":"string"},"type":{"anyOf":[{"const":"public","type":"string"},{"type":"null"}],"default":"public","description":"Recipe collection to search; 'public' is the shared recipe database.","title":"Type"}},"required":["id"],"title":"get_recipeArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_recipes_by_uri":{"post":{"operationId":"get_recipes_by_uri","summary":"Get one recipe by its full Edamam recipe uri, as returned in the 'uri' field of a search result. Returns the recipe's ti","description":"Get one recipe by its full Edamam recipe uri, as returned in the 'uri' field of a search result. Returns the recipe's title, source link, servings, calories, labels and ingredient lines; the cooking steps are on the source site. Use for \"Look up the recipe with uri http://www.edamam.com/ontologies/edamam.owl#recipe_9b5945e03f05acbf9d69625138385408\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"uri":{"description":"Full recipe uri, for example 'http://www.edamam.com/ontologies/edamam.owl#recipe_9b5945e03f05acbf9d69625138385408'.","maxLength":300,"title":"Uri","type":"string"},"type":{"anyOf":[{"const":"public","type":"string"},{"type":"null"}],"default":"public","description":"Recipe collection to search; 'public' is the shared recipe database.","title":"Type"}},"required":["uri"],"title":"get_recipes_by_uriArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}