The short version
- Everyday foods (an apple, plain yogurt, cooked lentils) come from USDA FoodData Central, which is in the public domain.
- Packaged products come from Open Food Facts, a non-profit open database, and from USDA FoodData Central’s branded foods.
- Recipes come from USDA MyPlate Kitchen.
- The score is ours. Nobody hands us a number: we compute it from the data above with our own published rules.
Our sources
| Source | What it gives us | License |
|---|---|---|
| Open Food Facts | Barcodes, product names and brands, ingredient lists, nutrition per 100 g, NOVA groups, allergen tags and product photos | ODbL 1.0 for the database, DbCL 1.0 for its contents, CC BY-SA 3.0 for photos |
| USDA FoodData Central | Everyday foods with standard household portions, and branded products with their label nutrients and ingredients | Public domain (CC0 1.0) |
| USDA Food Patterns Equivalents Database | Added sugars for USDA survey foods, which have no nutrition label | Public domain |
| App users | A small number of products added from label photos submitted for products the databases didn’t have | Licensed to us under our terms of service |
| USDA MyPlate Kitchen | Recipes for meal plans | US federal government work, not protected by copyright in the United States |
Open Food Facts attribution
Product data from Open Food Facts, made available under the Open Database License (ODbL) 1.0. The individual contents of the database are available under the Database Contents License (DbCL) 1.0. Authorship belongs to Open Food Facts and its contributors (© Open Food Facts contributors). In the app, every screen built from their data carries a short credit, “Product data from Open Food Facts, under ODbL”, which links to this page.
Open Food Facts asks that its data not be used for medical purposes and notes that it can contain errors. That is one reason Chickpea is general information and asks you to check the package label.
Our copy of the Open Food Facts database
This is the part of the page the license requires. Our product table contains a substantial extract of the Open Food Facts database, which makes it a Derivative Database under the ODbL, and we use it publicly to show products and scores. Under section 4.6 of the ODbL we offer the method we used to make it, so anyone can rebuild it from the public upstream data:
- Start from the official dump. Open Food Facts publishes its full export at world.openfoodfacts.org/data. We read the global Parquet file it publishes on Hugging Face, with no country slice.
- Filter rows. Keep every product whose barcode has 8 to 14 digits once non-digits are removed and which has a product name in any language. Where the dump has several rows for one barcode, keep the newest revision. There is no country, category, quality or popularity filter.
- Keep a fixed set of columns: code, product_name, generic_name, brands, brands_tags, quantity, product_quantity, product_quantity_unit, serving_size, serving_quantity, categories_tags, labels_tags, countries_tags, ingredients_tags, allergens_tags, traces_tags, additives_tags, additives_n, nova_group, nova_groups_tags, lang, ingredients_text, ingredients_text_en, nutriments, nutrition_data_per, nutriscore_grade, nutriscore_score, image_front_url, image_front_small_url, image_ingredients_url, image_nutrition_url, popularity_key, scans_n, unique_scans_n, completeness, states_tags, data_quality_errors_tags, owners_tags, rev, created_t, last_modified_t and last_updated_t.
- Change no values. Names, spellings, units and conventions are kept exactly as Open Food Facts ships them. The one exception is a storage limit, not an edit: the NUL character is removed from text, because the database cannot store it.
- Add two lookup columns that are not facts about the product: a 14-digit barcode key computed from the code, and the time of our import.
- Combine that extract with USDA FoodData Central branded foods and with products submitted by app users, matched by the 14-digit barcode, into the one product table the app reads. When a barcode appears in more than one source, fixed precedence rules decide which source each field comes from. Our food score is not stored in this table; it is calculated when you look a product up.
- Refresh the whole table periodically from a new dump, currently about every three months.
Our derivative database is licensed under the ODbL 1.0, like the original. To get the extraction script and the merge rules, or a machine-readable copy of the Open Food Facts part of our database, email support@joinchickpea.com with “ODbL” in the subject line.
Product photos
Photos of packaging were taken by Open Food Facts contributors and carry a different license from the data: Creative Commons Attribution-ShareAlike 3.0, © Open Food Facts contributors. We show each photo with that credit and serve our own copy instead of loading it from Open Food Facts’ servers, so a non-profit doesn’t pay for our traffic.
USDA FoodData Central
U.S. Department of Agriculture, Agricultural Research Service. FoodData Central (fdc.nal.usda.gov). This data is in the public domain. We credit it because USDA asks us to, not because a license requires it.
Our scores are our own
The word Chickpea shows for a food is not in any of the databases above. We compute it with fixed rules: the same food with the same data always gets the same word, and no AI model invents it. Under the ODbL, the score is a “Produced Work” and stays ours. That is no reason to keep it secret: every rule and its source is on our how we score page.
When the data is wrong
Crowd-sourced and government data both contain errors: misread labels, decimal points in the wrong place, one product’s ingredients attached to another’s barcode. If key nutrients are missing, the app says so instead of guessing. If you spot something wrong, email support@joinchickpea.com with the barcode. We fix it in our copy and, where the error came from Open Food Facts, report it upstream so it is fixed for everyone. Manufacturers are welcome to send corrections with a current label.