Data
Search food products by name + shelf health profile API
Searches Open Food Facts by product or brand name and returns the top-N matches normalized (barcode, brand, Nutri-Score, NOVA group), PLUS a DERIVED aggregate health profile over the result set: the Nutri-Score (A-E) and NOVA (1-4) distributions and a single 0-100 'shelf healthfulness' index. The MORE over a raw search: an agent gets a comparable, scored shortlist in one call instead of N barcode lookups. Distinct from data-food / data-openfoodfacts (single-barcode). Answers 'find products named X', 'search food by brand', 'how healthy are the top results for X', 'compare Greek yogurts'.
Price$0.01per request
MethodPOST
Route/v1/data/food-product-search
StatusLive
MIME typeapplication/json
Rate limit60/minute
Cache86400s public
datafoodsearchopenfoodfactsnutri-scorenovaproducthealth-profile
API URL
Integration docshttps://x402.hexl.dev/v1/data/food-product-searchExample request
{
"query": "greek yogurt",
"limit": 5
}Example response
{
"query": "greek yogurt",
"totalMatches": 5691,
"returned": 5,
"healthProfile": {
"productCount": 5,
"healthIndex": 85,
"scoredCount": 5,
"nutriScoreDistribution": {
"A": 2,
"B": 1,
"C": 2,
"D": 0,
"E": 0
},
"nutriScoreGradedCount": 5,
"novaDistribution": {
"1": 4,
"2": 0,
"3": 0,
"4": 0
},
"novaGradedCount": 4
},
"products": [
{
"barcode": "20047559",
"name": "Yogurt Greek Style",
"brand": "Pilos",
"quantity": "1000 gram",
"nutriScore": "C",
"novaGroup": 1
},
{
"barcode": "20416690",
"name": "Greek Style Natural Light 2% fat",
"brand": "Milbona",
"quantity": "1000 gram",
"nutriScore": "A",
"novaGroup": 1
},
{
"barcode": "4056489148739",
"name": "Creamy Greek Style Natural Yogurt",
"brand": "Milbona",
"quantity": "1kg",
"nutriScore": "C",
"novaGroup": 1
},
{
"barcode": "4088600060941",
"name": "Greek 0% Fat Authentic Greek Yogurt",
"brand": "Brooklea",
"quantity": "500g",
"nutriScore": "A",
"novaGroup": 1
},
{
"barcode": "5201054017432",
"name": "Total 5% Fat Greek Yogurt",
"brand": "FAGE",
"quantity": "450 g",
"nutriScore": "B",
"novaGroup": null
}
]
}Input schema
{
"type": "object",
"required": [
"query"
],
"properties": {
"query": {
"type": "string",
"minLength": 2,
"description": "Product or brand name, e.g. 'greek yogurt'."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 25,
"default": 10,
"description": "Max products to return (1-25)."
}
}
}Output schema
{
"type": "object",
"additionalProperties": true
}