API Nutritionnelle
CIQUAL 2025
Accédez à la base de données officielle de composition nutritionnelle des aliments via une API simple et gratuite.
Exemple rapide
GET https://wikimindai.github.io/ciqual-api/data.json
# Filtrer côté client par nom :
const data = await fetch('https://wikimindai.github.io/ciqual-api/data.json');
const aliments = await data.json();
const pomme = aliments.filter(a =>
a.names.fr.toLowerCase().includes('pomme')
);
Comment ça marche
L'API CIQUAL est hébergée statiquement sur GitHub Pages. Les données proviennent de la base CIQUAL 2025 de l'ANSES. Vous récupérez le fichier JSON complet et filtrez côté client — aucun serveur requis.
La clé API permet de s'identifier dans des futurs endpoints avancés et de contribuer à la communauté Wikimind. Elle est stockée dans Firebase et vérifiée à chaque appel d'endpoint authentifié.
Connectez-vous pour créer et gérer vos clés API.
Introduction
L'API CIQUAL donne accès à la base de données officielle de composition nutritionnelle des aliments de l'ANSES (version 2025), comprenant 3 484 aliments.
L'API est entièrement statique et hébergée sur GitHub Pages. Elle ne nécessite aucun serveur. Les données sont servies sous forme d'un fichier JSON unique que vous filtrez côté client.
https://wikimindai.github.io/ciqual-apiJSONAPI Key (optionnel)Authentification
L'endpoint principal /data.json est public et ne nécessite aucune authentification.
Pour les endpoints avancés (futurs), une clé API est requise. Passez-la via le paramètre api_key :
https://wikimindai.github.io/ciqual-api/data.json?api_key=wm-fd12345678
Les clés sont de la forme wm-fd suivi de 8 chiffres aléatoires uniques. Elles sont stockées dans Firebase et vérifiables via l'endpoint /validate.
Valider une clé API
Vérifie qu'une clé API existe et n'est pas expirée. Répond avec les métadonnées de la clé.
{
"valid": true,
"key": "wm-fd12345678",
"name": "Mon appli",
"created_at": "2025-06-01T10:00:00Z",
"expires_at": "2025-09-01T10:00:00Z"
}
Endpoints
Retourne la totalité des 3 484 aliments de la base CIQUAL 2025.
PARAMÈTRES (côté client)
Ce endpoint retourne le JSON brut. Filtrez les résultats côté client :
| Paramètre | Type | Description |
|---|---|---|
| searchoptionnel | string | Filtre par nom (insensible à la casse) |
| idoptionnel | string | Filtre par identifiant CIQUAL |
| group_codeoptionnel | string | Filtre par code de groupe (0–11) |
| limitoptionnel | number | Nombre de résultats max |
Structure des données
Chaque aliment est un objet JSON avec la structure suivante :
{
"id": "2001",
"names": {
"fr": "Pomme, pulpe et peau, crue"
},
"categories": {
"group_code": "2",
"group_name": "fruits, légumes, légumineuses et oléagineux",
"subgroup_code": "201",
"subgroup_name": "fruits"
},
"nutrition": {
"energy": { "kcal": 52, "kj": 218 },
"carbohydrates": { "total_g": 11.8, "sugars_g": 10.4 },
"fats": { "total_g": 0.2, "saturated_g": 0.03 }
},
"minerals": {
"calcium_mg": 6,
"iron_mg": 0.12,
"potassium_mg": 107
},
"vitamins": {
"vitamin_c_mg": 4.6,
"vitamin_b6_mg": 0.041
},
"source": "CIQUAL 2025",
"language": "fr"
}
Codes de groupes
| Code | Groupe |
|---|---|
| 0 | Non classé |
| 1 | Entrées et plats composés |
| 2 | Fruits, légumes, légumineuses et oléagineux |
| 3 | Produits céréaliers |
| 4 | Viandes, œufs, poissons |
| 5 | Produits laitiers |
| 6 | Eaux et autres boissons |
| 7 | Produits sucrés |
| 8 | Glaces et sorbets |
| 9 | Matières grasses |
| 10 | Aides culinaires et ingrédients divers |
| 11 | Aliments infantiles |
Exemples d'intégration
JavaScript (Fetch API)
// Récupérer tous les aliments
const res = await fetch('https://wikimindai.github.io/ciqual-api/data.json');
const aliments = await res.json();
// Rechercher par nom
const results = aliments.filter(a =>
a.names.fr.toLowerCase().includes('pomme')
);
// Filtrer par catégorie (fruits = groupe 2)
const fruits = aliments.filter(a =>
a.categories.group_code === '2'
).slice(0, 10); // 10 premiers
Python
import requests
url = "https://wikimindai.github.io/ciqual-api/data.json"
aliments = requests.get(url).json()
# Recherche par nom
resultats = [
a for a in aliments
if 'pomme' in a['names']['fr'].lower()
]
print(f"{len(resultats)} résultats trouvés")
for a in resultats[:3]:
print(f"• {a['names']['fr']} (id: {a['id']})")
Avec authentification API
const API_KEY = 'wm-fd12345678'; // Votre clé
// Valider la clé avant d'appeler
async function validateKey(key) {
const db = firebase.database();
const snap = await db.ref(`api_keys/${key}`).once('value');
return snap.exists() && !snap.val().expired;
}
// Appel sécurisé
const isValid = await validateKey(API_KEY);
if (isValid) {
const data = await fetch(
`https://wikimindai.github.io/ciqual-api/data.json`
).then(r => r.json());
// Traitement...
}
Limites & Quota
/data.json (GitHub Pages)Les données étant statiques (GitHub Pages), il n'y a pas de limite de requêtes. La clé API sert principalement d'identification pour les services futurs et les intégrations avancées.