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.

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

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!