# Open Food Facts — Zapi reference > Retrieve product information, ingredients, and nutritional data from packaged foods. **Base URL:** `https://api.zpi.web.id` **Auth:** Send `x-api-key: YOUR_KEY` header on every request. Get a free key at https://zpi.web.id/dashboard/keys. **Response envelope:** `{ status, message, content }` **Rate limit:** 60 req/min on free tier. **Related:** - Detail page: https://zpi.web.id/api/food/openfoodfacts - Endpoint catalog: https://zpi.web.id/category/food - Concise index: https://zpi.web.id/llms.txt - Full reference: https://zpi.web.id/llms-full.txt --- ## Open Food Facts **Category:** food · **Slug:** `openfoodfacts` **Detail page:** https://zpi.web.id/api/food/openfoodfacts Retrieve product information, ingredients, and nutritional data from packaged foods. **Tags:** food, recipe, nutrition ### Product Get product details by barcode. - **Method:** `GET` - **Endpoint:** `https://api.zpi.web.id/v1/food:openfoodfacts/product` - **Cache TTL:** 300s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `barcode` | string | query | yes | Product barcode (EAN/UPC), 8-13 digits | **cURL:** ```bash curl "https://api.zpi.web.id/v1/food:openfoodfacts/product?barcode=3017620422003" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zpi.web.id/v1/food:openfoodfacts/product?barcode=3017620422003", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zpi.web.id/v1/food:openfoodfacts/product?barcode=3017620422003", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "ok": true, "product": { "name": "Nutella", "brands": "Nutella", "labels": "Sans gluten, Triman, en:Sans colorants, en:Sans conservateurs, en:Sans gluten, en:Sans matière grasse hydrogénée, en:Végétarien", "barcode": "3017620422003", "quantity": "", "allergens": "lait, fruits à coque, soja", "countries": "France, Italie, Luxembourg, Philippines, en:Allemagne, en:Belgique, en:Espagne, en:Inde, en:Maroc, en:Pays-Bas, en:Pologne, en:Roumanie, en:Royaume-Uni, en:Suisse, en:Turquie, en:États-Unis", "image_url": "https://images.openfoodfacts.org/images/products/301/762/042/2003/front_en.820.400.jpg", "categories": "en:Petit-déjeuners, en:Produits à tartiner, en:Produits à tartiner sucrés, en:Pâtes à tartiner", "nutriments": { "fat_100g": 30.9, "salt_100g": 0.107, "sugars_100g": 56.3, "proteins_100g": 6.3, "energy_kcal_100g": 539, "carbohydrates_100g": 57.5 }, "ecoscore_grade": "unknown", "ingredients_text": "Sucre, huile de palme, NOISETTES 13%, cacao maigre 7,4%, LAIT écrémé en poudre 6,6%, LACTOSERUM en poudre, émulsifiants: lécithines [SOJA), vanilline. Sans gluten.", "nutriscore_grade": "e" } } ``` --- _Generated: 2026-08-02T14:32:49.442Z_