Why we scan the food label, not the barcode
A barcode is a code for identifying a product. It does not tell you what is actually inside the package you are holding right now.
Last updated: September 21, 2026
A barcode identifies a product — it is not an ingredient list
A barcode (JAN code) is a code used to identify a product. The barcode itself does not carry any ingredient information.
Some food-checking apps read the JAN code and pull ingredient information from a product database they have built themselves. For products already registered, this has a real advantage: scan the barcode and the information appears immediately.
Foodfit Japan takes a different view. Rather than showing past product information stored in a database, we focus on checking the ingredient list on the product the user is holding right now.
Japan has no consumer database that reaches down to ingredients
Japan does have product databases linked to JAN codes. JICFS/IFDB, operated by GS1 Japan, manages basic product information such as the JAN code and the product name. However, it is primarily a system for manufacturers, wholesalers and retailers — not a database where an ordinary consumer can freely obtain the latest ingredient information for every food product from its JAN code.
So, to build a service that judges ingredients from a barcode, you would need to gather product information yourself and build and maintain your own per-product ingredient database.
That approach requires continuously updating ingredient information as new products launch and existing products are reformulated.
The same JAN code does not guarantee the same ingredient list
Even when the JAN code is the same, the ingredient labelling is not necessarily the same.
The Food Labelling Subcommittee of Japan's Cabinet Office has explained that products may be treated as the same item under one JAN code even when the content volume, nutritional values or ingredients differ in part, and that for the purpose of providing food labelling information, a JAN code alone cannot always identify a product uniquely.
At the subcommittee's 2021 session, it was also explained that when ingredients are changed within the range where the product is still treated as the same item, the barcode may remain unchanged.
On the other hand, not every ingredient change keeps the same JAN code. Under GS1 Japan's current GTIN change rules, a new GTIN should in principle be assigned when, for example, the type of flour or the sweetener is changed and the product labelling changes accordingly.
In short, JAN codes and product databases are useful systems, but “the ingredients registered in a database for this JAN code” and “the ingredient list on the product in front of you” are not always a perfect match.
Store-made products may carry a store's own code
Products made in-store and sold at supermarkets may use the store's own product-management code rather than the standard JAN code assigned by a manufacturer. In that case, identifying the product through an external product database becomes difficult.
That is why Foodfit Japan reads the label in front of you
For these reasons, Foodfit Japan does not rely on product-database information alone. We read the ingredient list printed on the package of the product the user is holding right now.
Rather than looking up product information registered in the past from a barcode, we read the ingredients actually printed on the product in front of you. That is the basic idea behind Foodfit Japan.