search: Search products

API: openfoodfacts.org:open-food-facts-api
Endpoint: /api/v2/search
Response format: application/json +1 format
Charset: utf-8
Auth: unknown
Method: GET
Last Status: 200
Latency: 729ms

Description

Search for products using various criteria including keywords, categories, labels, brands, and nutritional criteria. Supports pagination and field selection.

Parameters (16)

additives_tags (string, query, optional)

Filter by additive

brands_tags (string, query, optional)

Filter by brand tag

categories_tags (string, query, optional)

Filter by category tag

countries_tags (string, query, optional)

Filter by country where product is sold

fields (string, query, optional)

Comma-separated list of fields to return

ingredients_from_palm_oil_tags (string, query, optional)

Filter by palm oil content

Constraints: {'enum': ['yes', 'no', 'maybe']}

labels_tags (string, query, optional)

Filter by label tag (e.g., 'organic', 'fair-trade')

nutriment_energy_100g (string, query, optional)

Filter by energy content (syntax: '<400' or '>100')

nutriment_sugars_100g (string, query, optional)

Filter by sugar content (syntax: '<10' or '>5')

page (integer, query, optional, default: 1)

Page number for pagination

page_size (integer, query, optional, default: 20)

Number of products per page (max 100)

Constraints: {'maximum': 100}

search_terms (string, query, optional)

Search terms to match in product name, brands, categories, ingredients

sort_by (string, query, optional, default: popularity)

Sort order for results

Constraints: {'enum': ['popularity', 'popularity_rank', 'scanning', 'unique_scans', 'product_name', 'created_t', 'last_modified_t', 'completeness']}

tag_0 (string, query, optional)

First tag value

tag_contains_0 (string, query, optional)

Match condition for first tag

Constraints: {'enum': ['contains', 'does_not_contain']}

tagtype_0 (string, query, optional)

First tag type for structured search

Examples (2)

Search products openapi-spec
curl 'https://world.openfoodfacts.org/api/v2/search?search_terms=chocolate&categories_tags_en=chocolates&brands_tags=nutella&labels_tags_en=organic&nutrition_grades=a&allergens_tags=en%3Amilk&additives_tags=en%3Ae330&countries_tags_en=france&page=1&page_size=20&fields=code%2Cproduct_name%2Cbrands%2Cnutrition_grades%2Cimage_url'
import requests

resp = requests.get(
    "https://world.openfoodfacts.org/api/v2/search",
    params={
        'search_terms': 'chocolate',
        'categories_tags_en': 'chocolates',
        'brands_tags': 'nutella',
        'labels_tags_en': 'organic',
        'nutrition_grades': 'a',
        'allergens_tags': 'en:milk',
        'additives_tags': 'en:e330',
        'countries_tags_en': 'france',
        'page': '1',
        'page_size': '20',
        'fields': 'code,product_name,brands,nutrition_grades,image_url',
    },
)
data = resp.json()
import zingu_apis

api = zingu_apis.api("openfoodfacts")
result = api.fetch("api/v2/search", search_terms="chocolate", categories_tags_en="chocolates", brands_tags="nutella", labels_tags_en="organic", nutrition_grades="a", allergens_tags="en:milk", additives_tags="en:e330", countries_tags_en="france", page=1, page_size=20, fields="code,product_name,brands,nutrition_grades,image_url")

for item in result:
    print(item)
const resp = await fetch("https://world.openfoodfacts.org/api/v2/search?search_terms=chocolate&categories_tags_en=chocolates&brands_tags=nutella&labels_tags_en=organic&nutrition_grades=a&allergens_tags=en%3Amilk&additives_tags=en%3Ae330&countries_tags_en=france&page=1&page_size=20&fields=code%2Cproduct_name%2Cbrands%2Cnutrition_grades%2Cimage_url");
const data = await resp.json();
Search products openapi-spec
curl 'https://world.openfoodfacts.org/api/v2/search?search_terms=chocolate&page=1&page_size=24&sort_by=popularity&fields=code%2Cproduct_name%2Cbrands%2Cnutriments&brands_tags=nestle&categories_tags=chocolates&labels_tags=organic&countries_tags=united-states&ingredients_from_palm_oil_tags=no&additives_tags=e322&nutriment_energy_100g=%3C400&nutriment_sugars_100g=%3C10&tagtype_0=categories&tag_contains_0=contains&tag_0=chocolates'
import requests

resp = requests.get(
    "https://world.openfoodfacts.org/api/v2/search",
    params={
        'search_terms': 'chocolate',
        'page': '1',
        'page_size': '24',
        'sort_by': 'popularity',
        'fields': 'code,product_name,brands,nutriments',
        'brands_tags': 'nestle',
        'categories_tags': 'chocolates',
        'labels_tags': 'organic',
        'countries_tags': 'united-states',
        'ingredients_from_palm_oil_tags': 'no',
        'additives_tags': 'e322',
        'nutriment_energy_100g': '<400',
        'nutriment_sugars_100g': '<10',
        'tagtype_0': 'categories',
        'tag_contains_0': 'contains',
        'tag_0': 'chocolates',
    },
)
data = resp.json()
import zingu_apis

api = zingu_apis.api("openfoodfacts")
result = api.fetch("api/v2/search", search_terms="chocolate", page=1, page_size=24, sort_by="popularity", fields="code,product_name,brands,nutriments", brands_tags="nestle", categories_tags="chocolates", labels_tags="organic", countries_tags="united-states", ingredients_from_palm_oil_tags="no", additives_tags="e322", nutriment_energy_100g="<400", nutriment_sugars_100g="<10", tagtype_0="categories", tag_contains_0="contains", tag_0="chocolates")

for item in result:
    print(item)
const resp = await fetch("https://world.openfoodfacts.org/api/v2/search?search_terms=chocolate&page=1&page_size=24&sort_by=popularity&fields=code%2Cproduct_name%2Cbrands%2Cnutriments&brands_tags=nestle&categories_tags=chocolates&labels_tags=organic&countries_tags=united-states&ingredients_from_palm_oil_tags=no&additives_tags=e322&nutriment_energy_100g=%3C400&nutriment_sugars_100g=%3C10&tagtype_0=categories&tag_contains_0=contains&tag_0=chocolates");
const data = await resp.json();

Probe History

Latency

Status Codes

TimeStatusLatencySize
2026-04-16 16:49:50.895088 200 729ms
2026-04-16 02:18:15.396906 503 219ms
2026-04-16 00:22:02.905988 503 222ms
2026-04-15 02:30:02.393396 200 1054ms
2026-04-15 01:17:42.986864 503 252ms
2026-04-14 01:59:26.632142 503 247ms
2026-04-14 00:11:38.378714 200 720ms
2026-04-12 15:49:45.551443 503 286ms
2026-04-12 13:40:49.936384 503 205ms
2026-04-10 02:11:09.850173 503 199ms
2026-04-10 01:30:36.477304 503 136ms
2026-04-09 03:12:37.188699 200 698ms
2026-04-09 02:41:56.885867 200 702ms
2026-04-08 07:01:15.261329 200 797ms
2026-04-07 01:11:06.078978 503 193ms
2026-04-06 04:38:02.955050 503 256ms
2026-04-05 02:46:38.585926 503 278ms
2026-04-04 02:20:05.413242 503 229ms
2026-04-03 13:22:23.833028 200 903ms
2026-03-30 02:33:18.661029 200 712ms
2026-03-29 13:29:38.565115 503 199ms
2026-03-23 10:44:50.056994 200 12146ms