Sources de données
Notre base fusionne deux grandes sources de données ouvertes dans un format unifié et normalisé :
Open Food Facts (4,1 M de produits) — une base mondiale maintenue par la communauté, avec une forte couverture européenne. Les produits incluent codes-barres, noms/ingrédients multilingues, notes Nutri-Score, classification NOVA, données d’allergènes et images. Sous licence ODbL.
USDA FoodData Central (2,0 M de produits) — la base complète de composition des aliments du département de l’Agriculture des États-Unis. Elle contient des valeurs nutritionnelles vérifiées en laboratoire pour les produits de marque, les aliments de base (foundation) et les aliments de référence historiques (legacy). Domaine public.
Ensemble, cela représente 6,1 millions de produits alimentaires uniques — plus que ce qu’une seule source fournit seule.
Comment nous fusionnons les données
Quand un produit existe dans les deux bases (rapprochées par code-barres), nous privilégions les valeurs nutritionnelles de l’USDA (vérifiées en laboratoire) et les complétons avec les métadonnées d’Open Food Facts (images, allergènes, Nutri-Score, noms multilingues). Vous obtenez le meilleur des deux mondes : des données nutritionnelles précises avec des métadonnées produit riches.
Niveaux de nutriments
Tous les produits n’ont pas tous les nutriments mesurés. Nous organisons les nutriments en niveaux selon leur couverture :
Niveau 1 : macronutriments de base (97 %+ de couverture)
Disponibles pour presque tous les produits de notre base :
| Nutriment | Champ | Unité |
|---|---|---|
| Énergie | energy_kcal, energy_kj | kcal, kJ |
| Protéines | proteins_g | g |
| Glucides | carbs_g | g |
| Lipides | fat_g | g |
| Sucres | sugars_g | g |
| Acides gras saturés | saturated_fat_g | g |
| Sodium | sodium_mg | mg |
| Sel | salt_g | g |
| Fibres | fiber_g | g |
Niveau 2 : nutriments courants
Disponibles pour une grande part des produits — surtout les fiches vérifiées en laboratoire — mais loin d’être tous. La couverture varie selon le nutriment et s’améliore au fil des mises à jour des sources :
| Nutriment | Champ |
|---|---|
| Cholestérol | cholesterol_mg |
| Acides gras trans | trans_fat_g |
| Calcium | calcium_mg |
| Fer | iron_mg |
| Vitamine C | vitamin_c_mg |
| Potassium | potassium_mg |
| Vitamine A | vitamin_a_iu |
| Sucres ajoutés | added_sugars_g |
Niveau 3 : nutriments étendus
Disponibles pour un sous-ensemble plus restreint, principalement des aliments analysés en laboratoire :
Vitamine D, magnésium, zinc, phosphore, vitamines B (B1, B2, B6, B9, B12), niacine, acide pantothénique, manganèse, cuivre, sélénium, iode, alcool, amidon, polyols, acides gras mono-insaturés, acides gras polyinsaturés, acides gras oméga-3 et acides gras oméga-6.
Travailler avec les données
Toutes les valeurs sont pour 100 g
Chaque valeur nutritionnelle de notre API est normalisée pour 100 g de produit. Pour calculer les valeurs par portion, multipliez par la taille de la portion :
const perServing = (valuePer100g, servingGrams) => {
return Math.round(valuePer100g * (servingGrams / 100) * 10) / 10;
};
// Example: 42 kcal per 100g, 330ml can
perServing(42, 330); // → 138.6 kcal
Gérer les valeurs null
L’API renvoie null pour les nutriments non disponibles pour un produit donné. Votre application doit gérer proprement les valeurs manquantes — ne supposez pas que chaque produit possède chaque champ.
const calories = food.nutrition_summary?.energy_kcal ?? "N/A";
Prise en charge multilingue
Les produits d’Open Food Facts contiennent des noms et des ingrédients dans plusieurs langues. Le champ name renvoie un tableau d’objets {lang, text} :
[
{"lang": "main", "text": "Coca-Cola"},
{"lang": "fr", "text": "Coca-Cola en canette"},
{"lang": "de", "text": "Coca-Cola"}
]
Le champ name_default contient toujours le texte dans la langue principale, pour un accès rapide sans parcourir le tableau.
Qualité des données
Nous appliquons plusieurs filtres de qualité dans notre pipeline de données :
- Plafonds physiques sur les valeurs nutritionnelles pour écarter les données aberrantes (par exemple, les protéines ne peuvent pas dépasser 100 g pour 100 g)
- Normalisation des unités pour garantir des unités cohérentes entre les sources (g, mg, mcg, UI)
- Déduplication par code-barres, avec priorité aux valeurs vérifiées en laboratoire pour les produits en double
- Score de complétude pour vous aider à filtrer selon la qualité des données si nécessaire
Envie de regarder les données avant d’écrire du code ? Chaque produit du catalogue a une page publique dans l’explorateur de produits qui montre exactement les champs renvoyés par l’API — tableau nutritionnel, ingrédients, allergènes, scores et le reste.
À lire aussi
Construisez-le avec FoodBase
6,1 M de produits, plus de 40 nutriments et l'analyse alimentaire par IA — gratuit pour commencer, sans carte bancaire.