API de Nutriție Gratuit pentru Dezvoltatori: Cum să Construiești Aplicații cu Datele Alimentare de la Nutrola
Un ghid pentru dezvoltatori despre cum să creezi aplicații conștiente de nutriție folosind API-ul gratuit de nutriție de la Nutrola. Acoperă endpoint-uri, autentificare, exemple de cod în Python, JavaScript și cURL, limite de rată și comparații cu API-urile Nutritionix, Edamam și USDA.
Crearea unei aplicații conștiente de nutriție necesita, odată, construirea unei baze de date alimentare de la zero, licențierea unor seturi de date costisitoare sau extragerea de informații din surse nesigure. Astăzi, API-urile de nutriție oferă acces structurat și programatic la baze de date cuprinzătoare despre alimente, cu informații despre macronutrienți, micronutrienți și dimensiuni ale porțiilor, livrate sub formă de JSON curat. Acest ghid îi va ajuta pe dezvoltatori să navigheze în peisajul API-urilor de nutriție, punând accent pe cum să înceapă cu nivelul gratuit de la Nutrola și cum se compară cu alternativele.
Indiferent dacă construiești o aplicație de planificare a meselor, un tracker de fitness, un instrument de cercetare, un analizator de rețete sau un asistent AI care răspunde la întrebări despre nutriție, acest ghid îți oferă detaliile tehnice necesare pentru a alege un API și a începe să faci cereri în câteva minute.
Prezentare Generală a API-urilor de Nutriție
Înainte de a te apuca de implementare, iată o comparație a principalelor API-uri de nutriție disponibile dezvoltatorilor în 2026.
| API | Nivel Gratuit | Limită de Rată (Gratuit) | Alimente în Bază de Date | Scanare Coduri de Bare | Recunoaștere Alimentară (AI) | Preț (Plătit) |
|---|---|---|---|---|---|---|
| API Nutrola | Da | 500 cereri/zi | 900,000+ | Da | Da (opțional) | De la 29$/lună |
| USDA FoodData Central | Da (complet gratuit) | 1,000/oră pe cheie | 370,000+ | Nu | Nu | Gratuit |
| API Nutritionix | Da (limită) | 50 cereri/zi | 1,000,000+ | Da | Nu | De la 299$/lună |
| API Edamam | Da | 100 cereri/zi | 900,000+ | Nu | Nu | De la 19$/lună |
| API FatSecret Platform | Da | 5,000 cereri/zi | 500,000+ | Da | Nu | Gratuit (cu atribuție) |
| API Open Food Facts | Da (complet gratuit) | Utilizare rezonabilă | 3,000,000+ | Da | Nu | Gratuit |
| Spoonacular | Da | 150 cereri/zi | 500,000+ | Nu | Nu | De la 29$/lună |
Începerea cu API-ul Nutrola
Pasul 1: Crează un Cont de Dezvoltator
Vizitează Portalul Dezvoltatorilor Nutrola la developers.nutrola.com pentru a crea un cont gratuit. După verificarea adresei de email, vei primi un API key pe tabloul de bord. Nivelul gratuit include 500 de cereri pe zi, acces la întreaga bază de date alimentară și căutare alimentară bazată pe text. Endpoint-urile de recunoaștere alimentară AI sunt disponibile în nivelurile plătite.
Pasul 2: Autentificare
Toate cererile API necesită API key-ul tău în header-ul cererii. Cheia se transmite prin header-ul X-Api-Key.
X-Api-Key: your_api_key_here
API-ul folosește exclusiv HTTPS. Toate cererile către endpoint-urile HTTP vor primi un redirect 301 către HTTPS. Nu încorpora API key-ul în codul client; proxy-ează întotdeauna cererile prin serverul tău backend.
Pasul 3: URL de Bază
Toate endpoint-urile sunt servite de la:
https://api.nutrola.com/v1/
Răspunsurile sunt în format JSON cu codare UTF-8. API-ul respectă convențiile RESTful cu coduri de stare HTTP standard.
Endpoint-uri de Bază
Căutare Alimente
Caută în baza de date alimentară folosind o interogare text. Returnează alimentele corespunzătoare cu date nutriționale.
Endpoint: GET /v1/foods/search
Parametrii:
| Parametru | Tip | Necesare | Descriere |
|---|---|---|---|
| query | string | Da | Termen de căutare (ex: "piept de pui la grătar") |
| limit | integer | Nu | Rezultate pe pagină (implicit: 10, maxim: 50) |
| offset | integer | Nu | Offset pentru paginare (implicit: 0) |
| type | string | Nu | Filtru după tip: "comun", "de marcă", "restaurant" |
| language | string | Nu | Cod de limbă (implicit: "en"). Suportă: en, es, de, fr, pt, ja, ko, zh |
Exemplu Cerere (cURL):
curl -X GET "https://api.nutrola.com/v1/foods/search?query=grilled+chicken+breast&limit=5" \
-H "X-Api-Key: your_api_key_here"
Exemplu Cerere (Python):
import requests
API_KEY = "your_api_key_here"
BASE_URL = "https://api.nutrola.com/v1"
response = requests.get(
f"{BASE_URL}/foods/search",
headers={"X-Api-Key": API_KEY},
params={
"query": "grilled chicken breast",
"limit": 5
}
)
data = response.json()
for food in data["foods"]:
print(f"{food['name']}: {food['calories']} kcal per {food['serving_size']}{food['serving_unit']}")
Exemplu Cerere (JavaScript / Node.js):
const API_KEY = "your_api_key_here";
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("grilled chicken breast").then(foods => {
foods.forEach(food => {
console.log(`${food.name}: ${food.calories} kcal per ${food.serving_size}${food.serving_unit}`);
});
});
Exemplu Răspuns:
{
"foods": [
{
"id": "nf_001234",
"name": "Piept de pui, la grătar, fără piele",
"type": "comun",
"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 grame",
"alt_servings": [
{
"description": "1 piept mediu (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
}
Obține Alimente după ID
Recuperează date nutriționale detaliate pentru un anumit aliment după ID-ul său Nutrola.
Endpoint: GET /v1/foods/{food_id}
Exemplu (cURL):
curl -X GET "https://api.nutrola.com/v1/foods/nf_001234" \
-H "X-Api-Key: your_api_key_here"
Răspunsul include profilul complet de macro și micronutrienți (30+ nutrienți), toate dimensiunile disponibile ale porțiilor, lista de ingrediente (pentru articole de marcă și restaurant), steaguri pentru alergeni, etichete dietetice (vegan, fără gluten, halal, kosher) și atribuirea sursei.
Obține Alimente după Cod de Bare
Caută un produs alimentar ambalat după codul său UPC sau EAN.
Endpoint: GET /v1/foods/barcode/{code}
Parametrii:
| Parametru | Tip | Necesare | Descriere |
|---|---|---|---|
| code | string | Da | Cod UPC (12-digit) sau EAN (13-digit) |
Exemplu (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 per {food['serving_description']}")
Analizează Input Natural
Parsează o descriere alimentară în limbaj natural și returnează date nutriționale structurate. Acest endpoint gestionează cantitățile, unitățile, metodele de preparare și mai multe articole într-un singur șir.
Endpoint: POST /v1/foods/analyze
Corpul Cererii:
{
"query": "2 ouă jumări cu o felie de pâine integrală și o jumătate de avocado",
"language": "en"
}
Exemplu (Python):
response = requests.post(
f"{BASE_URL}/foods/analyze",
headers={
"X-Api-Key": API_KEY,
"Content-Type": "application/json"
},
json={
"query": "2 scrambled eggs with a slice of whole wheat toast and half an avocado"
}
)
result = response.json()
for item in result["items"]:
print(f"{item['quantity']} {item['unit']} {item['name']}: {item['calories']} kcal")
print(f"Total: {result['total']['calories']} kcal")
Exemplu Răspuns:
{
"items": [
{
"name": "Ouă jumări",
"quantity": 2,
"unit": "mare",
"calories": 182,
"protein_g": 12.2,
"carbohydrates_g": 2.4,
"fat_g": 13.6,
"food_id": "nf_002891"
},
{
"name": "Pâine integrală",
"quantity": 1,
"unit": "felie",
"calories": 81,
"protein_g": 3.9,
"carbohydrates_g": 13.8,
"fat_g": 1.1,
"food_id": "nf_003401"
},
{
"name": "Avocado",
"quantity": 0.5,
"unit": "mediu",
"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
}
}
Recunoaștere Alimentară AI (Nivel Plătit)
Trimite o fotografie a alimentului pentru recunoaștere și analiză nutrițională bazată pe AI.
Endpoint: POST /v1/foods/recognize
Cerere: Date multipart cu fișierul de imagine sau un corp JSON cu o imagine codificată în base64.
Exemplu (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")
Răspunsul include articolele alimentare detectate cu scoruri de încredere, coordonatele cutiei de delimitare, dimensiunile estimate ale porțiilor, detalii nutriționale per articol și rezumatul nutrițional total al mesei.
Limite de Rată și Gestionarea Erorilor
Limite de Rată pe Niveluri
| Nivel | Cereri Zilnice | Cereri/Secondă | Recunoaștere AI | Preț |
|---|---|---|---|---|
| Gratuit | 500 | 5 | Nu este inclusă | $0 |
| Starter | 5,000 | 10 | 100/zi | $29/lună |
| Pro | 50,000 | 25 | 1,000/zi | $99/lună |
| Enterprise | Personalizat | Personalizat | Personalizat | Contactează vânzările |
Header-e pentru Limita de Rată
Fiecare răspuns include header-e pentru limita de rată:
X-RateLimit-Limit: 500
X-RateLimit-Remaining: 487
X-RateLimit-Reset: 1710374400
Răspunsuri de Erori
API-ul folosește coduri de stare HTTP standard cu corpuri de eroare descriptive.
{
"error": {
"code": "rate_limit_exceeded",
"message": "Limita zilnică de cereri de 500 a fost depășită. Se resetează la 00:00 UTC.",
"status": 429
}
}
| Cod Status | Semnificație |
|---|---|
| 200 | Succes |
| 400 | Cerere invalidă (parametrii invalizi) |
| 401 | Neautorizat (API key invalid sau lipsă) |
| 404 | Alimentul nu a fost găsit |
| 429 | Limita de rată depășită |
| 500 | Eroare internă a serverului |
Implementați o strategie de backoff exponențial pentru răspunsurile 429 și 500. O strategie simplă este să aștepți 1 secundă după prima eroare, 2 secunde după a doua, 4 după a treia, până la un maxim de 60 de secunde.
Cazuri de Utilizare și Modele de Implementare
Aplicații de Planificare a Meselor
Construiește un planificator de mese care să atingă macronutrienții țintiți căutând alimente, calculând totalurile nutriționale și iterând până când planul de mese îndeplinește obiectivele utilizatorului.
def find_foods_for_target(target_protein, target_calories):
"""Găsește alimente bogate în proteine în limita calorică."""
response = requests.get(
f"{BASE_URL}/foods/search",
headers={"X-Api-Key": API_KEY},
params={
"query": "high protein",
"limit": 20,
"type": "common"
}
)
foods = response.json()["foods"]
# Filtrare după raportul proteină-calorii
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)
Integrarea în Aplicații de Fitness
Asociază cu datele de activitate pentru a arăta utilizatorilor balanța calorică. Folosește endpoint-ul de limbaj natural pentru înregistrări rapide.
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();
// Stochează în baza ta de date
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;
}
Calculator de Nutriție pentru Rețete
Calculează conținutul nutrițional al unei rețete căutând fiecare ingredient și adunând valorile.
def analyze_recipe(ingredients):
"""
ingredients: list de stringuri precum ["200g piept de pui", "1 cană orez brun", "2 linguri ulei de măsline"]
"""
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
# Exemplu de utilizare
recipe = analyze_recipe([
"200g piept de pui",
"1 cană orez brun fiert",
"2 linguri ulei de măsline",
"1 cană broccoli fiert"
])
print(f"Total rețetă: {recipe['calories']} kcal, {recipe['protein_g']}g proteină")
Cercetare și Analiză de Date
Pentru cercetări academice, folosește API-ul pentru a construi profile nutriționale pentru populații studiate sau pentru a valida instrumentele de evaluare dietetică.
import pandas as pd
def build_nutrition_profile(food_log_df):
"""
food_log_df: DataFrame cu coloanele ['food_description', 'date']
Returnează un DataFrame cu detaliile nutriționale complete per intrare.
"""
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)
Comparație cu API-urile Alternative
API-ul USDA FoodData Central
API-ul USDA este complet gratuit, fără niveluri plătite, făcându-l alegerea implicită pentru proiecte academice și guvernamentale. Acoperă aproximativ 370,000 de alimente din bazele de date Foundation, SR Legacy, Survey (FNDDS) și Branded. Punctele forte includ faptul că este standardul de aur pentru datele de compoziție alimentară din SUA, autoritatea la care se referă alte baze de date. Limitările includ lipsa analizei în limbaj natural (trebuie să potrivești numele alimentelor cu cheile specifice din baza de date), lipsa căutării prin cod de bare, lipsa recunoașterii AI și datele alimentelor de marcă pot fi inconsistente deoarece se bazează pe trimiterile producătorilor. Documentația API-ului este funcțională, dar nu foarte prietenoasă pentru dezvoltatori conform standardelor moderne.
Cel mai bine pentru: Cercetări academice, proiecte guvernamentale, aplicații care necesită date de referință autoritare și au resurse de dezvoltare pentru a gestiona complexitatea potrivirii.
API-ul Nutritionix
Nutritionix are una dintre cele mai mari baze de date alimentare, cu o acoperire puternică a alimentelor de restaurant și de marcă. Endpoint-ul său de limbaj natural este matur și gestionează bine interogările complexe. Totuși, nivelul gratuit este extrem de limitat la 50 de cereri pe zi, iar planurile plătite încep de la 299$/lună, ceea ce îl face inaccesibil pentru mulți dezvoltatori independenți și startup-uri mici. API-ul este bine documentat și suportă atât căutarea text, cât și căutarea prin cod de bare.
Cel mai bine pentru: Aplicații bine finanțate care necesită date extinse despre alimentele din restaurante și își pot permite prețul.
API-ul Edamam
Edamam oferă API-uri pentru analiză nutrițională, analiză de rețete și bază de date alimentară. Nivelul gratuit oferă 100 de cereri pe zi, ceea ce este fezabil pentru prototipare. Punctul forte al Edamam este capacitatea sa de analiză a rețetelor, care poate analiza lista de ingrediente a unei rețete complete și returna date nutriționale per porție. Baza de date acoperă aproximativ 900,000 de alimente. Limitările includ inconsistențe ocazionale în datele despre dimensiunile porțiilor și o experiență de dezvoltare mai puțin intuitivă comparativ cu API-urile mai noi.
Cel mai bine pentru: Aplicații axate pe rețete, instrumente de planificare a meselor care necesită analiză la nivel de rețetă.
API-ul FatSecret Platform
FatSecret oferă un nivel generos gratuit cu 5,000 de cereri pe zi, făcându-l atractiv pentru proiecte cu buget redus. Compensarea este că trebuie să afișezi branding-ul și atribuția FatSecret în aplicația ta. Baza de date acoperă aproximativ 500,000 de alimente cu o acoperire internațională decentă. API-ul suportă autentificarea OAuth 1.0, care este mai veche și mai complexă de implementat decât abordările cu API key sau OAuth 2.0.
Cel mai bine pentru: Proiecte cu constrângeri bugetare care pot accepta cerințele de atribuție și OAuth 1.0.
API-ul Open Food Facts
Open Food Facts este o bază de date alimentară deschisă, bazată pe comunitate, cu peste 3 milioane de produse, în principal bunuri ambalate cu date de cod de bare. Este complet gratuit și deschis (Open Database License). API-ul este simplu pentru căutările prin cod de bare, dar mai puțin structurat pentru interogările nutriționale. Calitatea datelor variază deoarece contribuțiile sunt realizate de comunitate, deși un proces de revizuire comunitară prinde multe erori.
Cel mai bine pentru: Scanarea codurilor de bare pentru alimente ambalate, proiecte care se aliniază cu principiile open-source, acoperire internațională a alimentelor ambalate.
Rezumatul Comparației API-urilor
| Caracteristică | Nutrola | USDA | Nutritionix | Edamam | FatSecret | Open Food Facts |
|---|---|---|---|---|---|---|
| Limita zilnică a nivelului gratuit | 500 | 1,000/oră | 50 | 100 | 5,000 | Nelimitat |
| Analiza în limbaj natural | Da | Nu | Da | Da | Nu | Nu |
| Recunoaștere alimentară AI | Da (plătit) | Nu | Nu | Nu | Nu | Nu |
| Căutare prin cod de bare | Da | Nu | Da | Nu | Da | Da |
| Suport multi-limbă | 8 limbi | Engleză | Engleză | Engleză | 16 limbi | 40+ limbi |
| Analiza rețetelor | Prin NLP | Nu | Da | Da | Nu | Nu |
| Adâncimea micronutrienților | 30+ nutrienți | 60+ nutrienți | 20+ nutrienți | 25+ nutrienți | 15+ nutrienți | Varie |
| Autentificare | API Key | API Key | API Key | App ID + Key | OAuth 1.0 | Niciuna (opțional) |
Cele Mai Bune Practici pentru Construirea Aplicațiilor de Nutriție
Cachează agresiv
Datele nutriționale pentru alimentele comune nu se schimbă frecvent. Cachează rezultatele căutărilor alimentelor și căutările nutriționale pe backend-ul tău pentru 24 până la 72 de ore pentru a reduce apelurile API și a îmbunătăți timpii de răspuns.
Gestionează lipsa datelor cu grație
Nu fiecare intrare alimentară are date complete despre micronutrienți. Proiectează-ți UI-ul pentru a indica atunci când datele nu sunt disponibile, mai degrabă decât să afișezi zerouri, ceea ce utilizatorii ar putea interpreta greșit ca "acest aliment nu conține fier".
Validarea inputului utilizator înainte de apelurile API
Taie spațiile albe, normalizează unitățile și verifică ortografia numelui alimentelor înainte de a le trimite API-ului. O interogare bine formată produce rezultate mult mai bune decât una plină de greșeli de tipar.
Folosește endpoint-ul de limbaj natural când este posibil
În loc să construiești propriul parser pentru numele alimentelor, folosește endpoint-ul /foods/analyze. Acesta gestionează cantitățile ("2 căni"), metodele de preparare ("la grătar") și descrierile compuse ("pâine integrală cu unt") mai bine decât majoritatea implementărilor personalizate.
Respectă limitele de rată
Implementați o logică de backoff corespunzătoare. Grupați operațiunile, unde este posibil. Folosește webhook-uri sau cozi pentru operațiuni de volum mare, mai degrabă decât apeluri API sincrone.
Atribuie sursele de date
O practică bună (și uneori o cerință legală în funcție de API) este să atribui sursa de date. Afișează "Datele nutriționale sunt furnizate de Nutrola" sau echivalentul pentru orice API folosești.
Întrebări Frecvente
Este API-ul Nutrola chiar gratuit?
Da. Nivelul gratuit oferă 500 de cereri API pe zi fără costuri, fără a fi necesară o carte de credit. Acest lucru este suficient pentru prototipare, aplicații mici și proiecte personale. Nivelul gratuit include căutarea pe text, căutarea alimentelor după ID, scanarea codurilor de bare și analiza în limbaj natural. Recunoașterea alimentelor din imagini AI este disponibilă în nivelurile plătite începând de la 29$/lună.
Ce format de date returnează API-ul?
Toate răspunsurile sunt în format JSON cu codare UTF-8. Valorile nutriționale folosesc unități standard: kilocalorii pentru energie, grame pentru macronutrienți și fibre, miligrame pentru sodiu și majoritatea mineralelor, și micrograme pentru vitamine, acolo unde este cazul.
Pot folosi API-ul Nutrola într-o aplicație comercială?
Da. Atât nivelurile gratuite, cât și cele plătite permit utilizarea comercială. Nivelul gratuit necesită atribuirea Nutrola în aplicația ta. Nivelurile plătite includ opțiuni de white-label unde nu este necesară atribuirea.
Cât de des este actualizată baza de date alimentară?
Baza de date alimentară Nutrola este actualizată continuu pentru alimentele de marcă și de restaurant, cu datele de referință USDA sincronizate în termen de 30 de zile de la lansările USDA. Refresh-urile majore ale bazei de date au loc lunar, în timp ce intrările individuale de alimente pot fi actualizate zilnic pe baza modificărilor producătorilor, corecțiilor raportate de utilizatori și lansărilor de produse noi.
Suportă API-ul alimente internaționale?
Da. Baza de date acoperă alimente din peste 50 de țări, cu căutare disponibilă în 8 limbi (engleză, spaniolă, germană, franceză, portugheză, japoneză, coreeană și chineză). Acoperirea alimentelor internaționale este o prioritate principală pentru Nutrola, iar baza de date include preparate regionale, produse de marcă locale și preparate specifice bucătăriei care lipsesc adesea din bazele de date centrate pe SUA.
Pot folosi API-ul pentru o aplicație mobilă?
Da, dar nu încorpora API key-ul tău direct în codul client al aplicației mobile, deoarece poate fi extras din binarul aplicației. În schimb, configurează un server backend ușor care să proxy-eze cererile către API-ul Nutrola și să gestioneze autentificarea. Acest lucru îți oferă, de asemenea, un strat pentru caching și gestionarea cererilor.
Există o opțiune webhook sau streaming?
În prezent, API-ul funcționează pe un model de cerere-răspuns. Suportul webhook pentru rezultatele recunoașterii alimentelor asincrone (pentru procesarea în loturi mari) este pe agenda de lucru pentru 2026. Pentru operațiuni în loturi astăzi, folosește endpoint-ul /v1/foods/analyze/batch, care acceptă până la 20 de articole într-o singură cerere.
Concluzie
API-urile de nutriție au făcut posibil pentru dezvoltatori să construiască aplicații conștiente de alimente fără povara enormă de a menține o bază de date alimentară proprie. API-ul Nutrola oferă un nivel gratuit generos, o acoperire cuprinzătoare a alimentelor din diverse bucătării internaționale, înțelegere în limbaj natural și recunoaștere alimentară AI opțională, făcându-l o alegere puternică pentru proiecte care variază de la prototipuri de weekend la aplicații de producție.
Cel mai bun API pentru proiectul tău depinde de nevoile tale specifice: USDA pentru date de referință autoritare, Nutritionix pentru o acoperire profundă a restaurantelor, Open Food Facts pentru date deschise despre codurile de bare sau Nutrola pentru un echilibru între caracteristici, acuratețe și experiență de dezvoltare. În multe cazuri, combinarea mai multor API-uri îți oferă cea mai bună acoperire. Începe cu nivelul gratuit, validează-l în funcție de cazul tău de utilizare și scalează de acolo.
Ești gata să îți transformi urmărirea nutriției?
Alătură-te celor mii care și-au transformat călătoria de sănătate cu Nutrola!