canonical: https://jentic.com/apis/edamam.com/edamam

# Edamam Food Database API

Jentic publishes the only available OpenAPI specification for Food Database API, keeping it validated and agent-ready. The Edamam Food Database API converts free-text food queries and grocery items into structured nutrition data drawn from a curated foods database. It exposes a parser endpoint for food search, nutrient lookup endpoints for full nutrition retrieval (including a beta image-based lookup), and an autocomplete endpoint to power search-as-you-type interfaces. Health, fitness, and recipe applications use it to attach nutrition facts to user-entered foods without maintaining their own food taxonomy.

## For AI agents

Search Edamam's foods database, look up full nutrition by foodId or image, and power autocomplete for food search via four REST endpoints.

## Scope

Does not handle recipe analysis, meal planning, or shopping list generation - use for Edamam food search, nutrient lookup, image-based nutrition (beta), and autocomplete only.

## Capabilities

- Parse a free-text food query into matching Edamam foodIds with portion measures
- Look up full nutrition for a chosen foodId and quantity via the nutrients endpoint
- Run a beta nutrition lookup from a meal image to extract nutrient totals
- Provide autocomplete suggestions for food search inputs
- Return per-100g and per-serving nutrient breakdowns for downstream meal-tracking apps

## Use cases

### Meal Logging Nutrition Lookup

Diet and fitness apps let users enter foods in natural language and need to attach nutrition facts to each entry. The Food Database API's GET /api/food-database/v2/parser turns the user's query into Edamam foodIds with portion measures, then POST /api/food-database/v2/nutrients returns the full nutrient breakdown for the chosen quantity. The pair covers the parse-then-resolve flow most meal trackers depend on.

Example prompt: GET /api/food-database/v2/parser for the user's food entry, pick the closest match, then POST /api/food-database/v2/nutrients for the chosen quantity.

### Search-As-You-Type Food Pickers

Food pickers and grocery search inputs benefit from low-latency autocomplete. GET /auto-complete returns suggestion strings for a partial query, which the client can render below the input. This is independent of the parser flow - it suggests text, not foodIds - so it works as a thin layer on the front end.

Example prompt: Call GET /auto-complete on every keystroke after two characters and render the returned suggestions in the picker dropdown.

### AI Vision Meal Estimation (Beta)

POST /api/food-database/nutrients-from-image is a beta endpoint that takes a meal image and returns nutrient estimates. Apps offering 'snap-and-track' meal logging use it as a drop-in for users who don't want to type every food. The endpoint is in beta so production apps usually allow a manual confirmation step before persisting the values.

Example prompt: POST /api/food-database/nutrients-from-image with the meal photo, present the estimated foods to the user, and let them confirm before logging.

### AI Agent Nutrition Assistant

An AI agent built into a wellness app can use Jentic to discover the parser, nutrients, and autocomplete endpoints and chain them into a 'log my meal' flow. The agent parses the user's prompt, picks the best foodId match, calls the nutrients endpoint for full breakdown, and writes the result back to the user's diary, all without a custom Edamam integration.

Example prompt: Through Jentic, search 'parse food and get nutrition', load the parser and nutrients schemas, and execute the chained call for 'two slices of whole wheat toast'.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | /api/food-database/v2/parser | Search foods and return foodIds with measures |
| POST | /api/food-database/v2/nutrients | Full nutrition lookup by foodId and quantity |
| POST | /api/food-database/nutrients-from-image | Beta nutrition lookup from a meal image |
| GET | /auto-complete | Autocomplete suggestions for food search |

## Key resources

- **Food Search (parser)** — Parse a free-text query into Edamam foodIds with measures
- **Nutrients** — Look up full nutrition for chosen foodIds and quantities
- **Nutrients from Image (Beta)** — Estimate nutrition from a meal photo
- **Autocomplete** — Suggest food search terms for partial inputs

## Why Jentic

- **Setup:** Wiring the Edamam Food Database API by hand means appending your app_id and app_key query parameters on every request across the parser, nutrients, image, and autocomplete endpoints on the api.edamam.com host. Through Jentic you install once, import the Food Database API from the API Directory, store the app_id and app_key once, and your agent calls it.
- **Permission scoping:** These are flat endpoints, such as /api/food-database/v2/parser and /api/food-database/v2/nutrients, with no resource id in the URL path, so scope it by operation: you limit the agent to the operations it needs, such as parsing food and looking up nutrients. Every operation is a read-only lookup, so the agent retrieves nutrition data and cannot change anything.
- **Credential handling:** Your Edamam app_id and app_key are stored once, encrypted, by your own Jentic One instance and injected as the request query parameters at execution time. They never enter the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'parse a food and get its nutrition', and Jentic returns the matching parser or nutrients operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Spoonacular API** — Broader recipes-and-nutrition platform covering meal planning beyond Edamam's food database
- **Nutritionix API** — Natural-language nutrition lookup with restaurant and grocery brand coverage
- **CROssBAR Data API** — Biomedical reference data for research workflows that pair with nutrition lookups

## FAQ

### Why is there no official OpenAPI spec for Food Database API?

Edamam does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call Food Database API via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the Edamam Food Database API use?

The Edamam Food Database API uses an app_id and app_key pair as API key credentials. Through Jentic, both values are stored encrypted in your Jentic One instance and injected into the request at call time so the raw key never enters the agent's context.

### Can I get nutrition data for a free-text food query with the Food Database API?

Yes. GET /api/food-database/v2/parser turns a free-text query into matching foodIds with portion measures, and POST /api/food-database/v2/nutrients returns the full nutrient breakdown for a chosen foodId and quantity.

### What are the rate limits for the Edamam Food Database API?

The OpenAPI spec does not declare rate limits. Edamam applies plan-based call quotas tied to the app_id; the parser, nutrients, and autocomplete endpoints share that pool, so cache parser results and reuse foodIds to keep call volume down.

### How do I run the beta image nutrition endpoint through Jentic?

Search 'edamam nutrition from image' in Jentic, load the POST /api/food-database/nutrients-from-image schema, send the image payload, and Jentic returns the estimated foods and nutrients. The endpoint is in beta so allow user confirmation before persisting values.

### Does the Food Database API include recipe analysis?

No. This spec covers food search, nutrient lookup, image-based nutrition, and autocomplete only. Recipe-level analysis is provided by Edamam's separate Recipe Search and Nutrition Analysis APIs.

### Can I limit what my agent is allowed to do with the Food Database API?

Yes. Because you run Jentic One yourself, your own rules decide which of the Food Database API operations your agent can call and which credentials it may use. These are flat endpoints with no resource id in the path, so you scope by operation: for example, allow only GET /api/food-database/v2/parser and POST /api/food-database/v2/nutrients while withholding the beta image lookup. Every operation is a read-only lookup, so the agent can retrieve nutrition data but cannot change anything.
