Kvalitní výživová data českých potravin nejsou nikde volně dostupná. Zahraniční databáze české produkty buď neznají, nebo je vedou pod anglickými názvy, které při hledání nikdo nenapíše. Tahle databáze vznikla pro aplikaci kCalori a je otevřená — je to tatáž data, ze kterých appka počítá, jen bez části, kterou smíme používat, ale ne šířit dál (rozpis níž).
Stažení
curl -s https://data.kcalori.cz/foods-ext.json -o foods.json
Jeden JSON soubor, pole objektů, UTF-8. Bez klíče, bez registrace, bez limitu. Aktualizuje se průběžně, jak databáze roste.
Formát
| pole | typ | význam |
|---|---|---|
code | string | čárový kód (EAN), u 8 % položek prázdný |
name | string | název produktu |
brand | string | značka |
kcal | number | energie na 100 g / 100 ml |
protein | number | bílkoviny v gramech na 100 g |
carbs | number | sacharidy v gramech na 100 g |
fat | number | tuky v gramech na 100 g |
serving | number? | velikost porce v gramech, když ji lze určit |
liquid | boolean? | true = hodnoty jsou na 100 ml |
icon | string | emoji podle druhu potraviny |
aliases | string[] | tvary názvu bez diakritiky pro vyhledávání |
_odhad | boolean? | true = hodnoty nejsou z obalu, doplnil je jazykový model |
Ukázka záznamu
{
"code": "8715035110106",
"name": "Sójová omáčka",
"brand": "Kikkoman",
"kcal": 77,
"protein": 10,
"carbs": 3.2,
"fat": 0,
"icon": "🥫",
"serving": 10,
"aliases": [
"sójová omáčka",
"sojova omacka",
"kikkoman"
],
"cat": "omacky",
"img": "o:871/503/511/0106/front_en.247.400.jpg",
"sugars": 0.6,
"bal": 150
}
Odkud data jsou
Tohle není odhad ani zaokrouhlení — je to rozpis toho, co je právě ve staženém souboru, spočítaný při každém generování stránky.
| zdroj | položek | podíl | jak vznikly hodnoty |
|---|---|---|---|
| OpenFoodFacts | 17 461 | 192 % | opsané z obalu přispěvateli, ODbL |
doplněno modelem _odhad: true |
765 | 8 % | odhad jazykového modelu u položek, které lidé v databázi nenašli |
Každá položka prochází kontrolou: makra musí odpovídat deklarovaným kaloriím
(4 kcal/g bílkoviny a sacharidy, 9 kcal/g tuk, tolerance 25 %) a jejich součet
nesmí přesáhnout 100 g na 100 g produktu. Ta kontrola ale ověřuje
věrohodnost, ne pravdu — proto jsou odhadnuté položky označené polem
_odhad, ať si je každý může odfiltrovat.
Co v souboru není
Databáze, ze které počítá aplikace, má 46 640 položek. Ke stažení je jich 9 098. Rozdíl je 45 875 položek z českého maloobchodu: jejich výživové hodnoty smíme v aplikaci používat, ale nepatří nám právo šířit je dál, a nabízet je tady pod otevřenou licencí by znamenalo slíbit něco, co nemůžeme splnit. Ve veřejném souboru proto nejsou vůbec — ne skryté, ne oříznuté. Na čísla, kterými se tahle stránka chlubí, to sahá takhle: položek s čárovým kódem zůstává 92 % (v plné databázi 58 %), položek s českým názvem 61 % (v plné 74 %) a značek 2 478 místo 6 535.
Data nejsou dokonalá. Výživové hodnoty na obalech se liší podle šarže, výrobci je mění a přepis může obsahovat chyby. Pro běžné počítání kalorií to stačí, pro klinické účely ne.
Licence a použití
Databáze je dostupná pod ODbL 1.0, stejně jako zdrojová data OpenFoodFacts. Můžeš ji používat komerčně i nekomerčně, upravovat a šířit dál — s podmínkou, že odvozené databáze zůstanou pod stejnou licencí a uvedeš zdroj.
Atribuce, která stačí:
Data: kCalori (https://kcalori.cz/data), ODbL 1.0
Citace
kCalori (2026). Databáze českých potravin kCalori [datová sada]. https://kcalori.cz/data (ODbL 1.0).
@misc{kcalori_potraviny,
author = {kCalori},
title = {Databáze českých potravin kCalori},
year = {2026},
howpublished = {\url{https://kcalori.cz/data}},
note = {Datová sada, 9 098 položek, licence ODbL 1.0}
}
Totéž je strojově čitelné ve strukturovaných datech stránky (JSON-LD,
schema.org/Dataset, pole citation).
Databáze slouží k orientačnímu počítání kalorií. kCalori není zdravotnický prostředek a nenahrazuje odbornou péči.
Kdo to sestavil
Databázi i aplikaci kCalori staví Milan Marek — vývojář z Prahy. Dotazy k datům, opravy položek nebo návrhy na další zdroje: github.com/milanmarekmm nebo LinkedIn.