Darmowe API Żywieniowe dla Programistów: Jak Tworzyć Aplikacje z Danymi Żywieniowymi Nutrola
Przewodnik dla programistów dotyczący tworzenia aplikacji z uwzględnieniem żywienia przy użyciu darmowego API Nutrola. Zawiera informacje o punktach końcowych, autoryzacji, przykłady kodu w Pythonie, JavaScript i cURL, limity zapytań oraz porównania z API Nutritionix, Edamam i USDA.
Tworzenie aplikacji uwzględniających żywienie kiedyś wymagało budowy własnej bazy danych żywności od podstaw, licencjonowania drogich zestawów danych lub skanowania niepewnych źródeł. Dziś API żywieniowe oferują zorganizowany, programowy dostęp do kompleksowych baz danych żywności, dostarczając danych o makro- i mikroelementach oraz wielkości porcji w formacie JSON. Ten przewodnik przeprowadzi programistów przez świat API żywieniowych, koncentrując się na tym, jak rozpocząć korzystanie z darmowego poziomu Nutrola oraz jak wypada on w porównaniu do alternatyw.
Niezależnie od tego, czy tworzysz aplikację do planowania posiłków, tracker aktywności, narzędzie badawcze, analizator przepisów, czy asystenta AI odpowiadającego na pytania dotyczące żywienia, ten przewodnik dostarcza technicznych szczegółów, które pozwolą Ci wybrać API i rozpocząć wysyłanie zapytań w ciągu kilku minut.
Przegląd API Żywieniowych
Zanim przejdziesz do implementacji, oto porównanie głównych API żywieniowych dostępnych dla programistów w 2026 roku.
| API | Darmowy Poziom | Limit Zapytania (Darmowy) | Żywności w Bazie Danych | Skanowanie Kodów Kreskowych | Rozpoznawanie Żywności (AI) | Ceny (Płatne) |
|---|---|---|---|---|---|---|
| Nutrola API | Tak | 500 zapytań/dzień | 900 000+ | Tak | Tak (dodatkowo) | Od 29 $/miesiąc |
| USDA FoodData Central | Tak (całkowicie darmowe) | 1 000/godzinę na klucz | 370 000+ | Nie | Nie | Darmowe |
| Nutritionix API | Tak (ograniczone) | 50 zapytań/dzień | 1 000 000+ | Tak | Nie | Od 299 $/miesiąc |
| Edamam API | Tak | 100 zapytań/dzień | 900 000+ | Nie | Nie | Od 19 $/miesiąc |
| FatSecret Platform API | Tak | 5 000 zapytań/dzień | 500 000+ | Tak | Nie | Darmowe (z przypisaniem) |
| Open Food Facts API | Tak (całkowicie darmowe) | Użycie w rozsądnych granicach | 3 000 000+ | Tak | Nie | Darmowe |
| Spoonacular | Tak | 150 zapytań/dzień | 500 000+ | Nie | Nie | Od 29 $/miesiąc |
Rozpoczęcie Pracy z Nutrola API
Krok 1: Utwórz Konto Dewelopera
Odwiedź portal dewelopera Nutrola pod adresem developers.nutrola.com, aby utworzyć darmowe konto. Po weryfikacji adresu e-mail otrzymasz klucz API na swoim pulpicie. Darmowy poziom obejmuje 500 zapytań dziennie, dostęp do pełnej bazy danych żywności oraz tekstowe wyszukiwanie żywności. Punkty końcowe rozpoznawania żywności AI są dostępne w płatnych poziomach.
Krok 2: Autoryzacja
Wszystkie zapytania do API wymagają Twojego klucza API w nagłówku zapytania. Klucz jest przekazywany za pomocą nagłówka X-Api-Key.
X-Api-Key: twój_klucz_api_tutaj
API korzysta wyłącznie z HTTPS. Wszystkie zapytania do punktów końcowych HTTP będą przekierowywane do HTTPS. Nie umieszczaj swojego klucza API w kodzie po stronie klienta; zawsze przekazuj zapytania przez swój serwer backendowy.
Krok 3: Podstawowy URL
Wszystkie punkty końcowe są dostępne pod adresem:
https://api.nutrola.com/v1/
Odpowiedzi są w formacie JSON z kodowaniem UTF-8. API przestrzega konwencji RESTful z standardowymi kodami statusu HTTP.
Główne Punkty Końcowe
Wyszukiwanie Żywności
Wyszukaj w bazie danych żywności według zapytania tekstowego. Zwraca pasujące produkty z danymi żywieniowymi.
Punkt końcowy: GET /v1/foods/search
Parametry:
| Parametr | Typ | Wymagany | Opis |
|---|---|---|---|
| query | string | Tak | Termin wyszukiwania (np. "grillowana pierś z kurczaka") |
| limit | integer | Nie | Wyniki na stronę (domyślnie: 10, maksymalnie: 50) |
| offset | integer | Nie | Przesunięcie paginacji (domyślnie: 0) |
| type | string | Nie | Filtruj według typu: "common", "branded", "restaurant" |
| language | string | Nie | Kod języka (domyślnie: "en"). Obsługuje: en, es, de, fr, pt, ja, ko, zh |
Przykład Zapytania (cURL):
curl -X GET "https://api.nutrola.com/v1/foods/search?query=grilled+chicken+breast&limit=5" \
-H "X-Api-Key: twój_klucz_api_tutaj"
Przykład Zapytania (Python):
import requests
API_KEY = "twój_klucz_api_tutaj"
BASE_URL = "https://api.nutrola.com/v1"
response = requests.get(
f"{BASE_URL}/foods/search",
headers={"X-Api-Key": API_KEY},
params={
"query": "grillowana pierś z kurczaka",
"limit": 5
}
)
data = response.json()
for food in data["foods"]:
print(f"{food['name']}: {food['calories']} kcal na {food['serving_size']}{food['serving_unit']}")
Przykład Zapytania (JavaScript / Node.js):
const API_KEY = "twój_klucz_api_tutaj";
const BASE_URL = "https://api.nutrola.com/v1";
async function searchFoods(query) {
const url = new URL(`${BASE_URL}/foods/search`);
url.searchParams.append("query", query);
url.searchParams.append("limit", "5");
const response = await fetch(url, {
headers: { "X-Api-Key": API_KEY }
});
const data = await response.json();
return data.foods;
}
searchFoods("grillowana pierś z kurczaka").then(foods => {
foods.forEach(food => {
console.log(`${food.name}: ${food.calories} kcal na ${food.serving_size}${food.serving_unit}`);
});
});
Przykład Odpowiedzi:
{
"foods": [
{
"id": "nf_001234",
"name": "Pierś z kurczaka, grillowana, bez skóry",
"type": "common",
"calories": 165,
"protein_g": 31.0,
"carbohydrates_g": 0.0,
"fat_g": 3.6,
"fiber_g": 0.0,
"sugar_g": 0.0,
"sodium_mg": 74,
"serving_size": 100,
"serving_unit": "g",
"serving_description": "100 gramów",
"alt_servings": [
{
"description": "1 średnia pierś (196g)",
"multiplier": 1.96
},
{
"description": "1 oz (28g)",
"multiplier": 0.28
}
],
"source": "USDA SR Legacy",
"updated": "2026-01-15"
}
],
"total_results": 47,
"offset": 0,
"limit": 5
}
Pobierz Żywność po ID
Pobierz szczegółowe dane żywieniowe dla konkretnego produktu za pomocą jego ID Nutrola.
Punkt końcowy: GET /v1/foods/{food_id}
Przykład (cURL):
curl -X GET "https://api.nutrola.com/v1/foods/nf_001234" \
-H "X-Api-Key: twój_klucz_api_tutaj"
Odpowiedź zawiera pełny profil makro- i mikroelementów (ponad 30 składników), wszystkie dostępne wielkości porcji, listę składników (dla produktów markowych i restauracyjnych), flagi alergenów, oznaczenia dietetyczne (wegańskie, bezglutenowe, halal, koszerne) oraz przypisanie źródła.
Pobierz Żywność po Kodzie Kreskowym
Wyszukaj produkt spożywczy po jego kodzie kreskowym UPC lub EAN.
Punkt końcowy: GET /v1/foods/barcode/{code}
Parametry:
| Parametr | Typ | Wymagany | Opis |
|---|---|---|---|
| code | string | Tak | Kod kreskowy UPC (12-cyfrowy) lub EAN (13-cyfrowy) |
Przykład (Python):
response = requests.get(
f"{BASE_URL}/foods/barcode/041331092609",
headers={"X-Api-Key": API_KEY}
)
food = response.json()
print(f"{food['name']}: {food['calories']} kcal na {food['serving_description']}")
Analiza Opisu Żywności w Języku Naturalnym
Przetwórz opis żywności w języku naturalnym i zwróć zorganizowane dane żywieniowe. Ten punkt końcowy obsługuje ilości, jednostki, metody przygotowania oraz wiele produktów w jednym ciągu.
Punkt końcowy: POST /v1/foods/analyze
Ciało Żądania:
{
"query": "2 jajka sadzone z kromką chleba pełnoziarnistego i połową awokado",
"language": "en"
}
Przykład (Python):
response = requests.post(
f"{BASE_URL}/foods/analyze",
headers={
"X-Api-Key": API_KEY,
"Content-Type": "application/json"
},
json={
"query": "2 jajka sadzone z kromką chleba pełnoziarnistego i połową awokado"
}
)
result = response.json()
for item in result["items"]:
print(f"{item['quantity']} {item['unit']} {item['name']}: {item['calories']} kcal")
print(f"Suma: {result['total']['calories']} kcal")
Przykład Odpowiedzi:
{
"items": [
{
"name": "Jajka sadzone",
"quantity": 2,
"unit": "duże",
"calories": 182,
"protein_g": 12.2,
"carbohydrates_g": 2.4,
"fat_g": 13.6,
"food_id": "nf_002891"
},
{
"name": "Chleb pełnoziarnisty",
"quantity": 1,
"unit": "kromka",
"calories": 81,
"protein_g": 3.9,
"carbohydrates_g": 13.8,
"fat_g": 1.1,
"food_id": "nf_003401"
},
{
"name": "Awokado",
"quantity": 0.5,
"unit": "średnie",
"calories": 120,
"protein_g": 1.5,
"carbohydrates_g": 6.4,
"fat_g": 11.0,
"food_id": "nf_000892"
}
],
"total": {
"calories": 383,
"protein_g": 17.6,
"carbohydrates_g": 22.6,
"fat_g": 25.7
}
}
Rozpoznawanie Żywności AI (Płatny Poziom)
Prześlij zdjęcie żywności do rozpoznania przez AI i analizy żywieniowej.
Punkt końcowy: POST /v1/foods/recognize
Żądanie: Multipart form data z plikiem obrazu lub ciało JSON z obrazem zakodowanym w base64.
Przykład (Python):
with open("meal_photo.jpg", "rb") as f:
response = requests.post(
f"{BASE_URL}/foods/recognize",
headers={"X-Api-Key": API_KEY},
files={"image": ("meal.jpg", f, "image/jpeg")}
)
result = response.json()
for item in result["detected_items"]:
print(f"{item['name']} ({item['confidence']:.1%}): {item['calories']} kcal")
Odpowiedź zawiera wykryte produkty żywnościowe z wynikami pewności, współrzędnymi prostokątów ograniczających, szacowanymi rozmiarami porcji, rozkładem wartości odżywczych na produkt oraz całkowym podsumowaniem wartości odżywczych posiłku.
Limity Zapytania i Obsługa Błędów
Limity Zapytania według Poziomu
| Poziom | Dzienna Liczba Zapytania | Zapytania/Sekundę | Rozpoznawanie AI | Cena |
|---|---|---|---|---|
| Darmowy | 500 | 5 | Nie wliczone | 0 $ |
| Starter | 5 000 | 10 | 100/dzień | 29 $/miesiąc |
| Pro | 50 000 | 25 | 1 000/dzień | 99 $/miesiąc |
| Enterprise | Niestandardowy | Niestandardowy | Niestandardowy | Skontaktuj się z działem sprzedaży |
Nagłówki Limitów Zapytania
Każda odpowiedź zawiera nagłówki limitów zapytań:
X-RateLimit-Limit: 500
X-RateLimit-Remaining: 487
X-RateLimit-Reset: 1710374400
Odpowiedzi Błędów
API używa standardowych kodów statusu HTTP z opisowymi treściami błędów.
{
"error": {
"code": "rate_limit_exceeded",
"message": "Przekroczono dzienny limit zapytań wynoszący 500. Resetuje się o 00:00 UTC.",
"status": 429
}
}
| Kod Statusu | Znaczenie |
|---|---|
| 200 | Sukces |
| 400 | Złe zapytanie (nieprawidłowe parametry) |
| 401 | Nieautoryzowany (nieprawidłowy lub brakujący klucz API) |
| 404 | Żywność nie znaleziona |
| 429 | Przekroczono limit zapytań |
| 500 | Błąd wewnętrzny serwera |
Zaimplementuj exponential backoff dla odpowiedzi 429 i 500. Prosta strategia to czekać 1 sekundę po pierwszej awarii, 2 sekundy po drugiej, 4 po trzeciej, aż do maksymalnie 60 sekund.
Przykłady Zastosowań i Wzorce Implementacji
Aplikacje do Planowania Posiłków
Zbuduj planista posiłków, który osiąga docelowe makroelementy, wyszukując produkty, obliczając wartości odżywcze i iterując, aż plan posiłków spełni cele użytkownika.
def find_foods_for_target(target_protein, target_calories):
"""Znajdź produkty bogate w białko w ramach budżetu kalorycznego."""
response = requests.get(
f"{BASE_URL}/foods/search",
headers={"X-Api-Key": API_KEY},
params={
"query": "wysokobiałkowy",
"limit": 20,
"type": "common"
}
)
foods = response.json()["foods"]
# Filtruj według stosunku białka do kalorii
efficient_foods = [
f for f in foods
if f["protein_g"] / max(f["calories"], 1) > 0.15
]
return sorted(efficient_foods, key=lambda f: f["protein_g"], reverse=True)
Integracja z Aplikacją Fitness
Połącz z danymi aktywności, aby pokazać użytkownikom ich bilans kaloryczny. Użyj punktu końcowego analizy języka naturalnego do szybkiego logowania.
async function logMealFromText(description) {
const response = await fetch(`${BASE_URL}/foods/analyze`, {
method: "POST",
headers: {
"X-Api-Key": API_KEY,
"Content-Type": "application/json"
},
body: JSON.stringify({ query: description })
});
const data = await response.json();
// Zapisz w swojej bazie danych
await db.meals.insert({
user_id: currentUser.id,
items: data.items,
total_calories: data.total.calories,
total_protein: data.total.protein_g,
timestamp: new Date()
});
return data;
}
Kalkulator Wartości Odżywczych Przepisu
Oblicz zawartość odżywczą przepisu, wyszukując każdy składnik i sumując wartości.
def analyze_recipe(ingredients):
"""
ingredients: lista ciągów jak ["200g pierś z kurczaka", "1 szklanka brązowego ryżu", "2 łyżki oliwy z oliwek"]
"""
recipe_nutrition = {"calories": 0, "protein_g": 0, "carbohydrates_g": 0, "fat_g": 0}
for ingredient in ingredients:
response = requests.post(
f"{BASE_URL}/foods/analyze",
headers={
"X-Api-Key": API_KEY,
"Content-Type": "application/json"
},
json={"query": ingredient}
)
data = response.json()
for item in data["items"]:
recipe_nutrition["calories"] += item["calories"]
recipe_nutrition["protein_g"] += item["protein_g"]
recipe_nutrition["carbohydrates_g"] += item["carbohydrates_g"]
recipe_nutrition["fat_g"] += item["fat_g"]
return recipe_nutrition
# Przykład użycia
recipe = analyze_recipe([
"200g pierś z kurczaka",
"1 szklanka brązowego ryżu gotowanego",
"2 łyżki oliwy z oliwek",
"1 szklanka gotowanego brokuła"
])
print(f"Suma przepisu: {recipe['calories']} kcal, {recipe['protein_g']}g białka")
Badania i Analiza Danych
Dla badań akademickich użyj API do budowy profili żywieniowych dla populacji badawczych lub walidacji narzędzi oceny diety.
import pandas as pd
def build_nutrition_profile(food_log_df):
"""
food_log_df: DataFrame z kolumnami ['food_description', 'date']
Zwraca DataFrame z pełnym rozkładem wartości odżywczych dla każdego wpisu.
"""
results = []
for _, row in food_log_df.iterrows():
response = requests.post(
f"{BASE_URL}/foods/analyze",
headers={
"X-Api-Key": API_KEY,
"Content-Type": "application/json"
},
json={"query": row["food_description"]}
)
data = response.json()
results.append({
"date": row["date"],
"description": row["food_description"],
"calories": data["total"]["calories"],
"protein_g": data["total"]["protein_g"],
"carbs_g": data["total"]["carbohydrates_g"],
"fat_g": data["total"]["fat_g"]
})
return pd.DataFrame(results)
Porównanie z Alternatywnymi API
USDA FoodData Central API
API USDA jest całkowicie darmowe, bez płatnych poziomów, co czyni je domyślnym wyborem dla projektów akademickich i rządowych. Obejmuje około 370 000 produktów w bazach danych Foundation, SR Legacy, Survey (FNDDS) i Branded. Mocne strony to bycie złotym standardem danych o składzie żywności w USA, autorytet, na który powołują się inne bazy danych. Ograniczenia to brak analizy języka naturalnego (musisz dopasować nazwy żywności do ich specyficznych kluczy w bazie), brak wyszukiwania kodów kreskowych, brak rozpoznawania AI, a dane o żywności markowej mogą być niespójne, ponieważ opierają się na zgłoszeniach producentów. Dokumentacja API jest funkcjonalna, ale nieprzyjazna dla programistów według nowoczesnych standardów.
Najlepsze dla: Badań akademickich, projektów rządowych, aplikacji, które potrzebują autorytatywnych danych referencyjnych i mają zasoby deweloperskie do obsługi złożoności dopasowania.
Nutritionix API
Nutritionix ma jedną z największych baz danych żywności z silnym pokryciem żywności restauracyjnej i markowej. Jego punkt końcowy analizy języka naturalnego jest dojrzały i dobrze obsługuje złożone zapytania. Jednak darmowy poziom jest niezwykle ograniczony do 50 zapytań dziennie, a płatne plany zaczynają się od 299 $ miesięcznie, co wyklucza wiele niezależnych programistów i małe startupy. API jest dobrze udokumentowane i obsługuje zarówno wyszukiwanie tekstowe, jak i kodów kreskowych.
Najlepsze dla: Aplikacji z dużym budżetem, które potrzebują rozległych danych o żywności restauracyjnej i mogą sobie pozwolić na takie ceny.
Edamam API
Edamam oferuje API do analizy żywienia, analizy przepisów i bazy danych żywności. Darmowy poziom zapewnia 100 zapytań dziennie, co jest wykonalne dla prototypowania. Siłą Edamam jest jego zdolność do analizy przepisów, która może przetwarzać pełną listę składników przepisu i zwracać dane żywieniowe na porcję. Baza danych obejmuje około 900 000 produktów. Ograniczenia to sporadyczne niespójności w danych dotyczących wielkości porcji oraz mniej intuicyjne doświadczenie dewelopera w porównaniu do nowszych API.
Najlepsze dla: Aplikacji skoncentrowanych na przepisach, narzędzi do planowania posiłków, które potrzebują analizy na poziomie przepisu.
FatSecret Platform API
FatSecret oferuje hojny darmowy poziom z 5 000 zapytań dziennie, co czyni go atrakcyjnym dla projektów z ograniczonym budżetem. Wymaganiem jest jednak wyświetlanie marki FatSecret i przypisanie w Twojej aplikacji. Baza danych obejmuje około 500 000 produktów z przyzwoitym międzynarodowym pokryciem. API obsługuje autoryzację OAuth 1.0, co jest starsze i bardziej skomplikowane do wdrożenia niż podejścia oparte na kluczu API lub OAuth 2.0.
Najlepsze dla: Projektów z ograniczonym budżetem, które mogą zaakceptować wymagania dotyczące przypisania i OAuth 1.0.
Open Food Facts API
Open Food Facts to społecznościowa, otwarta baza danych żywności z ponad 3 milionami produktów, głównie artykułów pakowanych z danymi kodów kreskowych. Jest całkowicie darmowa i otwarta (Open Database License). API jest proste do wyszukiwania kodów kreskowych, ale mniej zorganizowane dla zapytań dotyczących żywności. Jakość danych różni się, ponieważ wkłady są crowdsourcingowe, chociaż proces przeglądu społecznościowego wychwytuje wiele błędów.
Najlepsze dla: Skanowania kodów kreskowych żywności pakowanej, projektów, które są zgodne z zasadami open-source, międzynarodowego pokrycia żywności pakowanej.
Podsumowanie Porównania API
| Cechy | Nutrola | USDA | Nutritionix | Edamam | FatSecret | Open Food Facts |
|---|---|---|---|---|---|---|
| Limit dzienny darmowego poziomu | 500 | 1 000/godz. | 50 | 100 | 5 000 | Nieograniczone |
| Analiza języka naturalnego | Tak | Nie | Tak | Tak | Nie | Nie |
| Rozpoznawanie żywności AI | Tak (płatne) | Nie | Nie | Nie | Nie | Nie |
| Wyszukiwanie kodów kreskowych | Tak | Nie | Tak | Nie | Tak | Tak |
| Wsparcie wielojęzyczne | 8 języków | Angielski | Angielski | Angielski | 16 języków | 40+ języków |
| Analiza przepisów | Poprzez NLP | Nie | Tak | Tak | Nie | Nie |
| Głębokość mikroelementów | 30+ składników | 60+ składników | 20+ składników | 25+ składników | 15+ składników | Różni się |
| Autoryzacja | Klucz API | Klucz API | Klucz API | ID aplikacji + klucz | OAuth 1.0 | Brak (opcjonalnie) |
Najlepsze Praktyki dla Budowy Aplikacji Żywieniowych
Agresywne buforowanie
Dane żywieniowe dla powszechnych produktów nie zmieniają się często. Buforuj wyniki wyszukiwania żywności i zapytania o wartości odżywcze na swoim backendzie przez 24 do 72 godzin, aby zmniejszyć liczbę wywołań API i poprawić czasy odpowiedzi.
Zgrabna obsługa brakujących danych
Nie każdy wpis żywności ma pełne dane o mikroelementach. Zaprojektuj swój interfejs użytkownika tak, aby wskazywał, gdy dane są niedostępne, zamiast wyświetlać zera, które użytkownicy mogą błędnie zinterpretować jako "ta żywność zawiera zero żelaza".
Walidacja danych wejściowych użytkownika przed wywołaniami API
Przycinaj białe znaki, normalizuj jednostki i sprawdzaj pisownię nazw żywności przed wysłaniem ich do API. Dobrze sformułowane zapytanie daje znacznie lepsze wyniki niż zapytanie pełne literówek.
Używaj punktu końcowego analizy języka naturalnego, gdy to możliwe
Zamiast budować własny parser nazw żywności, skorzystaj z punktu końcowego /foods/analyze. Obsługuje ilości ("2 szklanki"), metody przygotowania ("grillowane") i złożone opisy ("chleb pełnoziarnisty z masłem") lepiej niż większość niestandardowych implementacji.
Szanuj limity zapytań
Zaimplementuj odpowiednią logikę opóźnienia. Grupuj operacje, gdzie to możliwe. Używaj webhooków lub kolejek do operacji o dużej objętości, zamiast synchronicznych wywołań API.
Przypisuj źródła danych
Dobrą praktyką (a czasami również wymogiem prawnym, w zależności od API) jest przypisanie źródła danych. Wyświetlaj "Dane żywieniowe dostarczone przez Nutrola" lub odpowiednik dla dowolnego API, którego używasz.
Najczęściej Zadawane Pytania
Czy Nutrola API jest naprawdę darmowe?
Tak. Darmowy poziom zapewnia 500 zapytań API dziennie bez żadnych kosztów, bez potrzeby podawania danych karty kredytowej. To wystarczająco dużo do prototypowania, małych aplikacji i projektów osobistych. Darmowy poziom obejmuje wyszukiwanie tekstowe, wyszukiwanie żywności po ID, skanowanie kodów kreskowych i analizę języka naturalnego. Rozpoznawanie żywności AI z obrazów jest dostępne w płatnych poziomach, zaczynających się od 29 $ miesięcznie.
W jakim formacie API zwraca dane?
Wszystkie odpowiedzi są w formacie JSON z kodowaniem UTF-8. Wartości odżywcze używają standardowych jednostek: kilokalorie dla energii, gramy dla makroskładników i błonnika, miligramy dla sodu i większości minerałów oraz mikrogramy dla witamin, gdzie to możliwe.
Czy mogę używać Nutrola API w aplikacji komercyjnej?
Tak. Zarówno darmowe, jak i płatne poziomy pozwalają na użycie komercyjne. Darmowy poziom wymaga przypisania Nutrola w Twojej aplikacji. Płatne poziomy obejmują opcje białej etykiety, gdzie przypisanie nie jest wymagane.
Jak często aktualizowana jest baza danych żywności?
Baza danych żywności Nutrola jest ciągle aktualizowana dla produktów markowych i restauracyjnych, z danymi referencyjnymi USDA synchronizowanymi w ciągu 30 dni od wydania USDA. Główne aktualizacje bazy danych odbywają się co miesiąc, podczas gdy pojedyncze wpisy żywności mogą być aktualizowane codziennie na podstawie zmian producentów, zgłoszeń użytkowników oraz wprowadzenia nowych produktów.
Czy API obsługuje żywność międzynarodową?
Tak. Baza danych obejmuje żywność z ponad 50 krajów, a wyszukiwanie dostępne jest w 8 językach (angielski, hiszpański, niemiecki, francuski, portugalski, japoński, koreański i chiński). Międzynarodowe pokrycie żywności jest kluczowym priorytetem dla Nutrola, a baza danych zawiera dania regionalne, lokalne produkty markowe oraz przygotowania specyficzne dla kuchni, które często brakuje w bazach danych skoncentrowanych na USA.
Czy mogę używać API w aplikacji mobilnej?
Tak, ale nie umieszczaj swojego klucza API bezpośrednio w kodzie klienta mobilnego, ponieważ może być on wyodrębniony z binarnego pliku aplikacji. Zamiast tego skonfiguruj lekki serwer backendowy, który będzie pośredniczył w zapytaniach do API Nutrola i obsługiwał autoryzację. Daje to również warstwę do buforowania i zarządzania zapytaniami.
Czy istnieje opcja webhook lub strumieniowania?
Obecnie API działa na modelu żądanie-odpowiedź. Wsparcie dla webhooków dla asynchronicznych wyników rozpoznawania żywności (dla dużych operacji wsadowych) jest planowane na 2026 rok. Dla operacji wsadowych dzisiaj, użyj punktu końcowego /v1/foods/analyze/batch, który akceptuje do 20 produktów w jednym żądaniu.
Podsumowanie
API żywieniowe umożliwiły programistom budowanie aplikacji uwzględniających żywienie bez ogromnych kosztów związanych z utrzymywaniem własnej bazy danych żywności. API Nutrola oferuje hojny darmowy poziom, kompleksowe pokrycie żywności z międzynarodowych kuchni, zrozumienie języka naturalnego oraz opcjonalne rozpoznawanie żywności AI, co czyni je silnym wyborem dla projektów od weekendowych prototypów po aplikacje produkcyjne.
Najlepsze API dla Twojego projektu zależy od Twoich specyficznych potrzeb: USDA dla autorytatywnych danych referencyjnych, Nutritionix dla głębokiego pokrycia żywności restauracyjnej, Open Food Facts dla otwartych danych kodów kreskowych lub Nutrola dla równowagi funkcji, dokładności i doświadczenia dewelopera. W wielu przypadkach połączenie wielu API daje najlepsze pokrycie. Rozpocznij od darmowego poziomu, zweryfikuj go w kontekście swojego przypadku użycia i skaluj od tego momentu.
Gotowy, aby przeksztalcic sledzenie zywienia?
Dolacz do tysiecy osob, ktore przeksztalcily swoja podroz zdrowotna z Nutrola!