Public API
A read-only JSON API, served from our own database. Please be reasonable: 20 requests per second maximum, and cache the responses.
| Endpoint | Description |
|---|---|
GET /proxy/v2/search?q=… | Recherche plein texte. Paramètres : q, prefix=1 (saisie partielle), page (≤ 200), page_size (≤ 100), sort_by (unique_scans_n, last_modified_t, product_name), fields. Un code-barres dans q renvoie directement le produit (barcode_match). |
… &is_halal=1 / &is_excluded=1 | Produits au statut halal / haram (aussi : &halal_status=doubtful). |
… &labels_tags=en:organic | Filtres par tag exact : labels_tags, categories_tags, countries_tags (répétables), nutriscore=a, nova=1, palm_oil_free=1. |
GET /proxy/v2/product/{code}.json | Fiche complète, dont halal_status et halal (raisons détaillées). |
GET /proxy/stats | Chiffres clés. Répond 503 + Retry-After pendant le calcul. |
GET /proxy/facets/{type}.json | countries, labels, categories, contributors. |
GET /proxy/top · /proxy/recent | Produits les plus consultés / modifiés récemment (page_size ≤ 50). |
Statut halal (halal_status)
halal- Halal label declared, or ingredients provided with no alcohol or pork.
haram- Alcohol or pork in the ingredients, or an alcohol / non-halal label declared.
doubtful- Conflicting labels, or ingredient of uncertain origin (gelatine, E120, E471, rennet…) without a halal label.
unknown- Ingredient list missing.
These statuses are not certifications. Data under licence ODbL : credit Halal Open Food Facts and Open Food Facts.
Example
curl "https://halalopenfoodfacts.org/proxy/v2/search?q=couscous&is_halal=1&page_size=5&fields=code,product_name,halal_status"