Looks up what's actually in a food or branded product — nutrient values, ingredients, allergens, additives, processing classification — from two complementary sources. Does not itself perform toxicological or epidemiological analysis; feed the retrieved data into tooluniverse-toxicology (food additive/allergen safety questions) or tooluniverse-epidemiological-analysis (dietary-exposure questions) for that.
LOOK UP, DON'T GUESS: Never state a nutrient value, ingredient list, allergen, or Nutri-Score from memory — both sources are live and current; query them.
When to Use This Skill
- "How much [protein/sodium/vitamin C/...] is in [food]?" -> FoodDataCentral
- "What's the full nutrient profile of [generic or USDA reference food]?" -> FoodDataCentral
- "What are the ingredients/allergens in [branded product]?" -> OpenFoodFacts
- "Look up this barcode" ->
OpenFoodFacts_get_product - "Find products with/without [additive, allergen, Nutri-Score grade, label]" ->
OpenFoodFacts_filter_products_by_tags
NOT for: assessing whether an additive/ingredient is toxicologically safe (-> tooluniverse-toxicology, e.g. CTD/AOPWiki/EPA CompTox for the additive's own chemical hazard data — this skill only tells you a product contains it); population-level dietary-exposure or disease-association analysis (-> tooluniverse-epidemiological-analysis); clinical nutrition guidelines or diet-disease management recommendations (out of scope for both tools here — they're data lookups, not guideline sources).
1. USDA FoodData Central — Authoritative US Nutrient Values
The USDA's official nutrient database: Foundation Foods (analytically measured reference values), SR Legacy (the historical USDA standard reference), Survey/FNDDS (foods as reported in national dietary surveys), and Branded (commercial products, including label-declared values).
| Tool | Use for | Key params |
|---|---|---|
FoodDataCentral_search_foods |
Keyword search across all data types, or one filtered type | query, page_size (max 200), page_number, data_type ("Foundation" | "Branded" | "SR Legacy" | "Survey (FNDDS)") |
FoodDataCentral_get_food |
Full nutrient profile (70+ nutrients) for a known fdcId |
fdc_id |
Optional FDC_API_KEY (free, register at https://fdc.nal.usda.gov/api-guide.html) — without one, calls fall back to a shared, rate-limited DEMO_KEY, which is what this skill's live verification used successfully; register a personal key for any workload beyond occasional lookups.
Verified live: FoodDataCentral_search_foods {"query": "raw banana", "page_size": 3, "data_type": "Foundation"} returned real Foundation-food records (e.g. fdcId 1105073, "Bananas, overripe, raw") with full topNutrients arrays and totalHits: 164 across 55 pages. FoodDataCentral_get_food {"fdc_id": 1105073} returned the complete real nutrient profile for that same food, confirming the two tools are consistent. (The tool's JSON description previously cited a different, stale example fdcId that had drifted to return "Starfruit, raw" instead of the banana it claimed — this has been corrected in the tool definition; still, prefer an fdcId you actually got back from search_foods in the same session over any example ID, since USDA's own IDs can be reassigned or deprecated over time.)
2. Open Food Facts — Crowdsourced Global Product Database
3M+ products worldwide, contributed by users and scanned from packaging — broader branded/international coverage than FoodDataCentral's Branded category, but not centrally curated: expect gaps or inconsistencies in any individual product record (missing nutrient fields, unverified ingredient lists) more often than in USDA's data. No API key required for any of the 3 tools.
| Tool | Use for | Key params |
|---|---|---|
OpenFoodFacts_search_products |
Free-text search by product/brand name | search_terms (required), page_size (max 100, default 50), page |
OpenFoodFacts_get_product |
Full record for a known barcode (EAN-13/UPC) | barcode (required) |
OpenFoodFacts_filter_products_by_tags |
Faceted search by controlled-vocabulary tags — answers queries free-text search can't | additives_tags, allergens_tags, categories_tags_en, brands_tags, nutrition_grades_tags, labels_tags, countries_tags, fields, page_size, page (all optional; combine with AND) |
Verified live:
OpenFoodFacts_search_products {"search_terms": "nutella", "page_size": 2}-> real results (count: 1038), including fullingredients_textandnutrimentsfor the top match.OpenFoodFacts_get_product {"barcode": "3017620422003"}-> the real Nutella 400g record:additives_original_tags(en:e322,en:e322i— lecithins), full_keywords, ingredient text in French.OpenFoodFacts_filter_products_by_tags {"allergens_tags": "en:peanuts", "page_size": 2}-> real peanut-allergen products (count: 38821) withadditives_tags,allergens_tags,categories_tags_en,labels_tagsper record — this is the right tool for "find products containing/excluding X," whichsearch_products' free-text search cannot do reliably.- One transient failure observed:
search_productsreturned an HTML "Page temporarily unavailable" error on a first attempt, then succeeded identically on immediate retry — treat a single such failure as a transient upstream hiccup and retry once before reporting the tool as broken.
When to Use Which
| Need | Use |
|---|---|
| Rigorous nutrient values for a generic/reference food (clinical dietary calculation, research) | FoodDataCentral (Foundation or SR Legacy) |
| A specific branded product's nutrient label as declared by the manufacturer | Either — FoodDataCentral's Branded type or OpenFoodFacts, cross-check if precision matters |
| Ingredients, allergens, additives, Nutri-Score, or NOVA processing level for a branded product | OpenFoodFacts (FoodDataCentral's ingredients field is a plain string only, no structured allergen/additive tags) |
| Scanning/looking up a physical product by barcode | OpenFoodFacts (get_product) — FoodDataCentral has no barcode lookup |
| "Which products contain/avoid additive X or allergen Y" | OpenFoodFacts filter_products_by_tags — no equivalent in FoodDataCentral |
| Global/international branded products (non-US) | OpenFoodFacts — FoodDataCentral's Branded coverage skews US market |
Common Pitfalls
- Don't trust an
fdcIdfrom memory — USDA IDs can drift over time (this skill's own reference example was found and fixed once already, see above). Always source the ID from asearch_foodscall in the same session. - OpenFoodFacts data is crowdsourced, not centrally curated — a missing or odd-looking field (absent Nutri-Score, sparse nutrients) may just reflect incomplete community contribution for that specific product, not a tool malfunction. Don't assume the record is exhaustive.
filter_products_by_tags's tag fields use a controlled vocabulary (en:peanuts,en:e322, not free text) — get exact tag values from a product's own tag fields (e.g.allergens_tagsin a priorget_product/search_productsresult) rather than guessing the tag string.- Retry once on a transient OpenFoodFacts HTML error page before concluding the API is down.
References
- USDA FoodData Central: https://fdc.nal.usda.gov
- Open Food Facts: https://world.openfoodfacts.org