Безкоштовні таблиці макронутрієнтів: Завантажте повні дані про харчування у форматах CSV та JSON

Завантажте безкоштовні таблиці макронутрієнтів з повними даними про харчування для 500+ поширених продуктів у форматах CSV та JSON. Включає білки, вуглеводи, жири, клітковину та калорії, організовані за категоріями продуктів.

Medically reviewed by Dr. Emily Torres, Registered Dietitian Nutritionist (RDN)

Якщо ви створюєте додаток для харчування, проводите дослідження, працюєте з клієнтами або просто хочете мати на столі надійний довідник, вам потрібні чисті дані про макронутрієнти у форматі, з яким зручно працювати. Хоча державні бази даних існують, вони часто є громіздкими, непослідовними та формуються для бюрократів, а не для розробників.

Ми підготували набір безкоштовних таблиць макронутрієнтів, що охоплюють понад 500 поширених продуктів з повними розрахунками макронутрієнтів. Дані доступні у форматах CSV та JSON, готові для використання в електронних таблицях, базах даних, скриптах або додатках. Кожен запис перевірено за первинними джерелами, а файли структуровані так, щоб ви могли почати їх використовувати відразу без додаткової обробки.

Ця сторінка містить інформацію про те, що входить до таблиць, як структуровані дані, як завантажити їх програмно та як внести виправлення, якщо ви знайдете щось, що потребує оновлення.

Що Включено

Таблиці макронутрієнтів містять понад 500 найпоширеніших продуктів, розподілених за сімома основними категоріями. Для кожного продукту ви отримуєте:

  • Назва продукту — стандартна англійська назва, що використовується в науці про харчування
  • Категорія — одна з семи основних категорій (докладніше про них нижче)
  • Підкатегорія — більш специфічна група в межах батьківської категорії
  • Опис порції — зрозумілий опис порції (наприклад, "1 середній банан", "1 склянка вареного")
  • Вага порції в грамах — еквівалент ваги цієї порції в грамах
  • Калорії — загальна енергія в кілокалоріях (ккал)
  • Білок — грами білка на порцію
  • Загальний жир — грами загального жиру на порцію
  • Насичений жир — грами насиченого жиру на порцію
  • Загальні вуглеводи — грами загальних вуглеводів на порцію
  • Клітковина — грами клітковини на порцію
  • Цукор — грами загальних цукрів на порцію
  • Натрій — міліграми натрію на порцію

Кожне значення вказується на вказану порцію, а не на 100 грамів. Ми обрали цей підхід, оскільки дані на основі порцій є найбільш корисними для відстеження прийомів їжі, складання планів харчування або відображення інформації про харчування в інтерфейсі. Якщо вам потрібні значення на 100 г, просто розділіть на вагу порції та помножте на 100 — це просто.

Таблиці не містять мікронутрієнтів, окрім натрію та клітковини. Для повних профілів мікронутрієнтів (вітаміни, мінерали, амінокислоти) дивіться розділ про API Nutrola в кінці цієї статті — там містяться детальні дані.

Специфікації формату даних

Формат CSV

CSV-файл використовує кодування UTF-8 з рядком заголовка. Поля розділені комами, а текстові поля взяті в лапки. Ось як виглядає структура:

food_name,category,subcategory,serving_description,serving_weight_g,calories_kcal,protein_g,total_fat_g,saturated_fat_g,total_carbs_g,fiber_g,sugar_g,sodium_mg
"Куряча грудинка, без кістки, варена","Білки","Птиця","1 грудинка (170г)",170,284,53.4,6.2,1.7,0.0,0.0,0.0,126
"Лосось атлантичний, варений","Білки","Риба та морепродукти","1 філе (154г)",154,280,39.3,12.4,2.5,0.0,0.0,0.0,109
"Коричневий рис, варений","Зернові та крохмали","Цільнозернові","1 склянка (195г)",195,216,5.0,1.8,0.4,44.8,3.5,0.7,10
"Банан, сирий","Фрукти","Тропічні фрукти","1 середній (118г)",118,105,1.3,0.4,0.1,27.0,3.1,14.4,1

CSV-файл сумісний з Microsoft Excel, Google Sheets, LibreOffice Calc, Apple Numbers та будь-якою мовою програмування, що підтримує парсинг CSV. Ніякої спеціальної конфігурації не потрібно — просто відкрийте файл, і він буде правильно оброблений.

Формат JSON

JSON-файл містить масив об'єктів, по одному для кожного продукту. Структура повторює поля CSV:

{
  "version": "1.4.0",
  "generated": "2026-03-12",
  "source": "Nutrola Macro Reference Tables",
  "record_count": 527,
  "foods": [
    {
      "food_name": "Куряча грудинка, без кістки, варена",
      "category": "Білки",
      "subcategory": "Птиця",
      "serving_description": "1 грудинка (170г)",
      "serving_weight_g": 170,
      "nutrients": {
        "calories_kcal": 284,
        "protein_g": 53.4,
        "total_fat_g": 6.2,
        "saturated_fat_g": 1.7,
        "total_carbs_g": 0.0,
        "fiber_g": 0.0,
        "sugar_g": 0.0,
        "sodium_mg": 126
      }
    }
  ]
}

JSON-файл включає метадані на верхньому рівні: рядок версії для відстеження оновлень, дату генерації, назву джерела та загальну кількість записів. Це спрощує перевірку наявності останньої версії та створення логіки перевірки оновлень у ваших додатках.

Числові значення зберігаються як числа, а не рядки. Відсутні значення не з'являються — якщо значення поживної речовини невідоме, продукт виключається з набору даних, а не включається з відсутніми даними. Це було свідомим вибором, щоб зберегти дані чистими та уникнути тихих помилок у розрахунках.

Опис полів

Ось детальний розбір кожного поля, включаючи одиниці, очікувані діапазони та крайні випадки:

Поле Тип Одиниця Опис
food_name рядок Стандартна англійська назва. Включає метод приготування, де це доречно (наприклад, "варений", "сирий", "сушений").
category рядок Одна з семи основних категорій. Дивіться розділ про категорії нижче.
subcategory рядок Більш специфічна група. Наприклад, у категорії "Білки" ви знайдете "Птиця", "Червоне м'ясо", "Риба та морепродукти", "Бобові" та "Яйця".
serving_description рядок Зрозумілий опис порції. Завжди включає вагу в грамах у дужках.
serving_weight_g число грами Числова вага порції в грамах. Цілі значення для більшості продуктів, одне десяткове місце для продуктів, де точність важлива.
calories_kcal число ккал Загальна енергія. Розрахована за системою Атватера (4 ккал/г білка, 4 ккал/г вуглеводів, 9 ккал/г жиру).
protein_g число грами Загальна кількість білка. Точність до одного десяткового знака.
total_fat_g число грами Загальна кількість жиру, включаючи насичений, мононенасичений та поліненасичений.
saturated_fat_g число грами Тільки насичені жирні кислоти.
total_carbs_g число грами Загальна кількість вуглеводів, включаючи клітковину та цукри.
fiber_g число грами Загальна кількість клітковини (розчинна + нерозчинна).
sugar_g число грами Загальна кількість цукрів (природні + додані). Набір даних не розділяє додані цукри від природних.
sodium_mg число міліграми Вміст натрію. Зверніть увагу, що це міліграми, а не грами, на відміну від інших полів поживних речовин.

Кілька зауважень щодо точності: всі значення поживних речовин округлені до одного десяткового знака. Це відповідає рівню точності вихідних даних. Звіт про більшу кількість десяткових знаків може створити хибне враження про точність — склад продуктів варіюється природно на 5-15% залежно від умов вирощування, породи тварин та методів приготування.

Категорії продуктів

500+ продуктів організовані за сімома основними категоріями, кожна з яких має кілька підкатегорій:

Білки

Приблизно 95 записів, що охоплюють птицю (куряча грудинка, стегно, індичка, фарш з індички), червоне м'ясо (яловичина, свинина, баранина), рибу та морепродукти (лосось, тунець, креветки, тріска, тилапія, сардини), яйця (цілі, білки, смажені) та рослинні білки (тофу, темпе, сейтан, едамаме). Бобові, такі як сочевиця, нут і чорні боби, включені сюди, а не в зернові, оскільки їх основна харчова роль — це постачання білка.

Зернові та крохмали

Приблизно 80 записів, що охоплюють цільнозернові (коричневий рис, вівсянка, кіноа, ячмінь, булгур), рафіновані зерна (білий рис, білий хліб, паста), крохмалисті овочі (картопля, солодка картопля, кукурудза) та поширені зернові продукти (тортілі, бейгли, крекери, кус-кус). Для зернових, де це важливо, надаються значення як для варених, так і для сухих продуктів.

Фрукти

Приблизно 65 записів, що охоплюють поширені свіжі фрукти (яблука, банани, апельсини, полуниця, чорниця, виноград), тропічні фрукти (манго, ананас, папая, ківі), сушені фрукти (родзинки, фініки, сушені абрикоси, журавлина) та заморожені фрукти. Всі записи свіжих фруктів стосуються сирої, їстівної частини — насіння, шкірка та кісточки виключені з ваги порції, де це доречно.

Овочі

Приблизно 85 записів, що охоплюють листяні зелені (шпинат, капуста, ромейн, рукола), капустяні овочі (броколі, цвітна капуста, брюссельська капуста, капуста), коренеплоди (морква, буряк, ріпа, редис), цибулеві (цибуля, часник), пасльонові (помідори, болгарський перець, баклажани) та інші поширені овочі (огірок, селера, кабачки, гриби, спаржа). Для овочів, де приготування суттєво змінює щільність поживних речовин на порцію, надаються значення як для сирих, так і для варених.

Молочні продукти та альтернативи

Приблизно 70 записів, що охоплюють молоко (ціле, 2%, знежирене та рослинні молока), йогурт (грецький, звичайний, ароматизований, рослинний), сир (чеддер, моцарела, фета, творог, вершковий сир, пармезан), масло, вершки та поширені альтернативи молочним продуктам (мигдальне молоко, вівсяне молоко, соєве молоко, кокосовий йогурт). Рослинні молока та йогурти згруповані тут, а не в окремій категорії, оскільки користувачі зазвичай використовують їх як безпосередні замінники.

Закуски та оброблені продукти

Приблизно 75 записів, що охоплюють горіхи та насіння (мигдаль, волоські горіхи, арахіс, насіння чіа, насіння льону, соняшникові насіння), горіхові пасти (арахісова паста, мигдальна паста), поширені закуски (соломка, попкорн, гранолові батончики, протеїнові батончики, суміші для походів, чіпси, темний шоколад), намазки та приправи (гумус, гуакамоле, сальса, майонез, оливкова олія, мед) та інші часто відстежувані продукти, такі як протеїновий порошок і енергетичні кульки.

Напої

Приблизно 60 записів, що охоплюють соки (апельсиновий сік, яблучний сік, журавлиний сік), безалкогольні напої (кола, лимонно-лаймовий напій, імбирний ель), спортивні та енергетичні напої, кавові напої (чорна кава, латте, капучино, мокко з різними видами молока), основи для смузі, алкогольні напої (пиво, вино, спиртні напої) та поширені добавки (вершки, цукор, ароматизовані сиропи). Вода не включена, оскільки вона не містить макронутрієнтів.

Використання даних програмно

Основна мета надання форматів CSV та JSON — це можливість завантажити ці дані безпосередньо у ваш код. Ось робочі приклади на Python та JavaScript.

Python: Завантаження CSV

import csv

def load_macro_table(filepath):
    foods = []
    with open(filepath, newline='', encoding='utf-8') as f:
        reader = csv.DictReader(f)
        for row in reader:
            # Перетворення числових полів з рядків
            for key in ['serving_weight_g', 'calories_kcal', 'protein_g',
                        'total_fat_g', 'saturated_fat_g', 'total_carbs_g',
                        'fiber_g', 'sugar_g', 'sodium_mg']:
                row[key] = float(row[key])
            foods.append(row)
    return foods

foods = load_macro_table('macro_reference_table.csv')

# Знайти всі продукти в категорії
proteins = [f for f in foods if f['category'] == 'Білки']
print(f"Знайдено {len(proteins)} джерел білка")

# Знайти продукти з найвищим вмістом білка на калорію
foods_sorted = sorted(foods, key=lambda f: f['protein_g'] / max(f['calories_kcal'], 1), reverse=True)
print("\nТоп-10 продуктів за щільністю білка (г білка на ккал):")
for f in foods_sorted[:10]:
    ratio = f['protein_g'] / f['calories_kcal']
    print(f"  {f['food_name']}: {ratio:.3f} г/ккал ({f['protein_g']}г білка, {f['calories_kcal']} ккал)")

Python: Завантаження JSON

import json

def load_macro_json(filepath):
    with open(filepath, encoding='utf-8') as f:
        data = json.load(f)
    print(f"Завантажено {data['record_count']} продуктів (версія {data['version']})")
    return data['foods']

foods = load_macro_json('macro_reference_table.json')

# Створення словника для пошуку за назвою продукту
lookup = {f['food_name'].lower(): f for f in foods}

# Швидкий пошук
chicken = lookup.get('куряча грудинка, без кістки, варена')
if chicken:
    n = chicken['nutrients']
    print(f"Куряча грудинка на порцію ({chicken['serving_description']}):")
    print(f"  Калорії: {n['calories_kcal']} ккал")
    print(f"  Білок: {n['protein_g']}г")
    print(f"  Жир: {n['total_fat_g']}г")
    print(f"  Вуглеводи: {n['total_carbs_g']}г")

JavaScript: Завантаження JSON

// Node.js
const fs = require('fs');

function loadMacroTable(filepath) {
  const raw = fs.readFileSync(filepath, 'utf-8');
  const data = JSON.parse(raw);
  console.log(`Завантажено ${data.record_count} продуктів (версія ${data.version})`);
  return data.foods;
}

const foods = loadMacroTable('macro_reference_table.json');

// Групування продуктів за категорією
const byCategory = {};
for (const food of foods) {
  if (!byCategory[food.category]) {
    byCategory[food.category] = [];
  }
  byCategory[food.category].push(food);
}

// Виведення підсумку
for (const [category, items] of Object.entries(byCategory)) {
  console.log(`${category}: ${items.length} продуктів`);
}

// Знайти низькокалорійні, багаті на клітковину продукти
const highFiber = foods
  .filter(f => f.nutrients.fiber_g >= 5 && f.nutrients.calories_kcal <= 200)
  .sort((a, b) => b.nutrients.fiber_g - a.nutrients.fiber_g);

console.log('\nПродукти з високим вмістом клітковини та низькою калорійністю:');
highFiber.slice(0, 10).forEach(f => {
  console.log(`  ${f.food_name}: ${f.nutrients.fiber_g}г клітковини, ${f.nutrients.calories_kcal} ккал`);
});

JavaScript: Завантаження CSV у браузері

// Парсинг CSV у браузері (без залежностей)
async function loadMacroCSV(url) {
  const response = await fetch(url);
  const text = await response.text();
  const lines = text.split('\n').filter(line => line.trim());
  const headers = parseCSVLine(lines[0]);

  return lines.slice(1).map(line => {
    const values = parseCSVLine(line);
    const obj = {};
    headers.forEach((header, i) => {
      obj[header] = isNaN(values[i]) ? values[i] : parseFloat(values[i]);
    });
    return obj;
  });
}

function parseCSVLine(line) {
  const result = [];
  let current = '';
  let inQuotes = false;
  for (const char of line) {
    if (char === '"') { inQuotes = !inQuotes; }
    else if (char === ',' && !inQuotes) { result.push(current.trim()); current = ''; }
    else { current += char; }
  }
  result.push(current.trim());
  return result;
}

// Використання
const foods = await loadMacroCSV('/data/macro_reference_table.csv');
console.log(`Завантажено ${foods.length} продуктів`);

Ці приклади демонструють найпоширеніші операції: завантаження даних, пошук і фільтрацію, групування за категорією та сортування за щільністю поживних речовин. Структури даних навмисно прості, щоб вам не знадобилися спеціальні бібліотеки для роботи з ними.

Джерела даних

Таблиці макронутрієнтів складені з наступних основних джерел:

База даних USDA SR Legacy. База даних USDA Standard Reference Legacy є основним набором даних для складу харчування в США. Вона містить лабораторно проаналізовані дані про поживні речовини для понад 7600 продуктів. Наші таблиці використовують SR Legacy як основне джерело для загальних/небрендованих продуктів. Ми обрали SR Legacy замість новішої бази даних FoodData Central FNDDS, оскільки значення SR Legacy є більш широко перевіреними та цитованими в дослідженнях харчування.

Центр харчування USDA. Для продуктів, не охоплених SR Legacy, особливо нових продуктів та оновлених значень, ми посилаємося на набори даних Foundation Foods та Survey Foods з FoodData Central.

Міжнародні бази даних складу харчування. Для продуктів, що споживаються у всьому світі, але можуть не з'являтися в американських базах даних, ми перехресно перевіряємо дані з таблиць складу McCance і Widdowson Public Health England, NUTTAB Food Standards Australia New Zealand (FSANZ), Canadian Nutrient File (CNF) та Danish Food Composition Databank (Frida). Це особливо актуально для тропічних фруктів, регіональних злаків та методів приготування, поширених за межами США.

Дані виробників. Для оброблених і брендованих продуктів у категоріях закусок і напоїв ми посилаємося на етикетки харчування, надані виробниками. Якщо дані виробника суперечать лабораторному аналізу, ми зазначаємо розбіжність і зазвичай віддаємо перевагу лабораторним значенням.

Всі значення були перевірені за принаймні двома незалежними джерелами. Якщо джерела розходяться більш ніж на 10%, ми досліджуємо причину (зазвичай різні методи приготування або відмінності в сортах) і вибираємо значення, яке найкраще відображає те, як продукт зазвичай споживається.

Набір даних має версію. Поточна версія — 1.4.0, останнє оновлення — березень 2026 року. Ми оновлюємо таблиці приблизно кожні три місяці, щоб включити виправлення, додати запитувані продукти та відобразити будь-які значні зміни в базах даних джерел.

Як внести виправлення

Дані про харчування за своєю природою є недосконалими. Склад продуктів варіюється залежно від регіону, сезону, сорту та методу приготування. Якщо ви знайдете помилку або маєте виправлення, підтверджене надійним джерелом, ми хочемо про це дізнатися.

Є три способи подати виправлення:

GitHub Issues. Таблиці макронутрієнтів розміщені в публічному репозиторії GitHub. Відкрийте запит з назвою продукту, полем, яке, на вашу думку, є неправильним, поточним значенням, значенням, яке ви вважаєте правильним, та посиланням на ваше джерело. Ми переглядаємо запити щотижня.

Електронна пошта. Надішліть виправлення на адресу data@nutrola.com з тією ж інформацією: назва продукту, поле, поточне значення, запропоноване значення та джерело. Ми відповімо протягом п'яти робочих днів.

Запити на злиття. Якщо ви знайомі з Git, ви можете форкнути репозиторій, безпосередньо відредагувати файл CSV або JSON і надіслати запит на злиття. Включіть ваше джерело в опис запиту. Ми переглянемо та об'єднаємо виправлення, які підтримуються надійними даними.

Ми не приймаємо заявки на брендовані або власницькі продукти через цей процес. Вони обробляються через основний pipeline бази даних Nutrola, який має свій власний процес перевірки.

Інтеграція з API Nutrola для отримання даних у реальному часі

Завантажувані таблиці макронутрієнтів є статичним знімком — чудово підходять для офлайн-використання, вбудованих додатків, навчальних матеріалів та швидких запитів. Але якщо вам потрібні дані про харчування в реальному часі в масштабах, API Nutrola Nutrition Data надає все це та багато іншого.

API охоплює понад 3 мільйони записів про їжу (в порівнянні з 500+ у таблицях посилань), включає повні профілі мікронутрієнтів з 70+ поживними речовинами на одиницю, підтримує сканування штрих-кодів, текстовий пошук та автозаповнення, а також надає дані про брендовані продукти з 47 країн. Це ті ж дані, які живлять додаток Nutrola, яким користуються понад 2 мільйони людей щодня.

Для розробників: API є RESTful, повертає JSON та пропонує безкоштовний рівень з 500 запитами на день — достатньо для прототипування та особистих проектів. Платні рівні масштабуються до мільйонів запитів. Ви можете знайти повну документацію на api.nutrola.com/docs.

Для дослідників та установ: ми пропонуємо академічні ліцензії з підвищеними лімітами на запити та можливостями масового експорту. Зв'яжіться з research@nutrola.com для отримання деталей.

Таблиці макронутрієнтів та API доповнюють один одного. Використовуйте таблиці для офлайн-роботи, вбудованих наборів даних і ситуацій, коли вам потрібен самодостатній файл. Використовуйте API, коли вам потрібні широта, глибина, оновлення в реальному часі та функціональність пошуку.

Часті запитання

Як часто оновлюються таблиці макронутрієнтів?

Ми оновлюємо таблиці приблизно кожні три місяці. Кожен реліз отримує новий номер версії (поточна версія — 1.4.0). Оновлення включають виправлення, надіслані користувачами, додавання часто запитуваних продуктів та коригування, коли наші бази даних джерел публікують переглянуті значення. JSON-файл містить версію та дату генерації в своїх метаданих, тому ви можете програмно перевірити, чи у вас остання версія.

Чи можу я використовувати ці дані у своєму комерційному додатку?

Так. Таблиці макронутрієнтів випущені під ліцензією Creative Commons Attribution 4.0 (CC BY 4.0). Ви можете використовувати, модифікувати та розповсюджувати дані в особистих та комерційних проектах, якщо ви надаєте атрибуцію. Посилання на nutrola.com або згадка "Таблиці макронутрієнтів Nutrola" у ваших кредитах даних є достатніми. Вам не потрібно запитувати дозволу чи сплачувати внесок.

Чому лише 500+ продуктів, а не вся база даних Nutrola?

Таблиці посилань призначені бути практичним, високоякісним підмножиною найпоширеніших продуктів. Охоплення 500+ одиниць у семи категоріях відповідає приблизно 90% того, що люди споживають щодня в більшості країн. Розширення до 3 мільйонів записів зробить файли громіздкими для багатьох випадків використання (повна база даних перевищує 2 ГБ). Якщо вам потрібен повний набір даних, API Nutrola надає доступ до всього.

Чи є значення на порцію чи на 100 грамів?

На порцію. Кожен запис включає опис порції (наприклад, "1 середнє яблуко (182г)") та відповідну вагу в грамах, тому ви можете легко конвертувати значення на 100 г, розділивши кожне значення поживної речовини на вагу порції та помноживши на 100. Ми обрали значення на порцію, оскільки вони є більш корисними для відстеження прийомів їжі, складання планів харчування та додатків, орієнтованих на клієнтів.

Як мені конвертувати дані в значення на 100 г?

Помножте кожне значення поживної речовини на 100 та розділіть на поле serving_weight_g. Наприклад, якщо порція курячої грудинки вагою 170 г містить 53.4 г білка, значення на 100 г білка становитиме (53.4 * 100) / 170 = 31.4 г. Ось швидка функція на Python:

def per_100g(food, nutrient_field):
    """Конвертувати значення поживної речовини на порцію в значення на 100 г."""
    serving_weight = food['serving_weight_g']
    if serving_weight == 0:
        return 0
    return round(food[nutrient_field] * 100 / serving_weight, 1)

Що робити, якщо продукт, який мені потрібен, не включений до таблиці?

Спочатку перевірте, чи існує подібний продукт під іншим ім'ям — використовуйте функцію пошуку вашого текстового редактора або простий скрипт для пошуку в полі food_name. Якщо продукт дійсно не включений, у вас є два варіанти: надіслати запит через наш репозиторій GitHub (ми пріоритетно розглядаємо додавання на основі попиту) або скористатися API Nutrola, який охоплює понад 3 мільйони продуктів і, ймовірно, має те, що вам потрібно. Для одноразових запитів сам додаток Nutrola дозволяє безкоштовно шукати в повній базі даних.

Готові трансформувати своє відстеження харчування?

Приєднуйтесь до тисяч, які трансформували свою подорож до здоров'я з Nutrola!