GET/nutrients
Catalogul de nutrienți, id, name, unit, categorie, pentru a descoperi valorile nutrientId acceptate de endpoint-urile de căutare inversă.
Interogați datele nutriționale de referință ale Food Info în mod programatic. Un REST API mic, versionat, doar pentru citire. Gratuit la început: creați un cont, generați o cheie și primiți 100 de cereri pe zi. Cererile se autentifică cu o cheie API în antetul X-Api-Key.
Versionat sub /api/v1, doar JSON, server-to-server (fără CORS în browser). Utilizează aceleași date de referință pe care rulează site-ul. Creați o cheie în "Cheile dvs. API" de mai jos; un cont gratuit este suficient pentru a obține una.
https://api.food-info.org/api/v1X-Api-Keyantet Descrierea completă OpenAPI 3 este publicată la https://api.food-info.org/api/v1/openapi.json, astfel încât o puteți importa în Postman sau Insomnia, sau puteți genera un client tipizat, în loc să îl scrieți manual.
Trimiteți cheia secretă în antetul X-Api-Key la fiecare cerere. Cheile sunt legate de contul dvs.; păstrați-le pe server și nu le expuneți niciodată într-un browser sau aplicație mobilă. O cheie lipsă, invalidă sau revocată returnează 401.
curl -H "X-Api-Key: YOUR_KEY" \
"https://api.food-info.org/api/v1/nutrients"Două niveluri. Fiecare endpoint de citire de mai jos funcționează pe ambele; planul plătit cumpără debit, nu acces. Limitele sunt contorizate per cont, nu per cheie, deci generarea de chei suplimentare nu vă crește cota.
| Plan | Pe minut | Pe zi | Endpointuri rețete |
|---|---|---|---|
| Gratuit | 10 | 100 | Nu (403) |
| Practitioner | 60 | 10,000 | Da |
Fiecare răspuns conține X-RateLimit-Limit-Minute, X-RateLimit-Limit-Day și X-RateLimit-Tier, astfel încât puteți citi alocația curentă în-band în loc să o descoperiți la un 429. Depășirea unei limite returnează 429 cu un antet Retry-After în secunde, astfel încât vă puteți retrage precis.
Două puncte la început marchează un parametru de cale (ex. :id). Acolo unde este indicat: limit este 1-100 (implicit 25); home_nation este un cod de țară ISO (ex. GB) care prioritizează alimentele de referință din țara respectivă.
/nutrientsCatalogul de nutrienți, id, name, unit, categorie, pentru a descoperi valorile nutrientId acceptate de endpoint-urile de căutare inversă.
/foods/searchCăutați alimente după nume (subșir fără distincție majuscule/minuscule). Parametri: q (obligatoriu, ≤200 caractere), home_nation, limit. Returnează id, description, ndbNumber.
curl -H "X-Api-Key: YOUR_KEY" \
"https://api.food-info.org/api/v1/foods/search?q=oats&limit=5"/foods/:idUn singur aliment după id-ul FoodData Central: id, description, ndbNumber, dataType, publicationDate. 404 dacă nu este găsit.
/foods/:id/panelPanou complet de nutrienți: valori grupate per 100 g + per porție și % aport de referință. Parametri: portionId (opțional), source ("UK RI" / "FDA 2016"; implicit UK RI). 404 dacă nu este găsit.
/nutrients/:nutrientId/top-foodsCăutare inversă: alimentele de referință cele mai bogate într-un nutrient per 100 g, în ordine descrescătoare. Parametri: home_nation, limit.
curl -H "X-Api-Key: YOUR_KEY" \
"https://api.food-info.org/api/v1/nutrients/1089/top-foods?limit=3"Răspuns (id-urile/cantitățile alimentelor sunt ilustrative):
{
"Nutrient": { "Id": 1089, "Name": "Iron, Fe", "Unit": "MG" },
"Results": [
{ "FoodId": 170554, "Description": "Spices, thyme, dried", "Amount": 123.6 },
{ "FoodId": 169966, "Description": "Seeds, sesame flour", "Amount": 14.6 }
]
}/nutrients/:nutrientId/bottom-foodsInversul top-foods: alimentele de referință cu cea mai mică cantitate dintr-un nutrient per 100 g. Aceiași parametri și același format de răspuns.
Cele două endpoint-uri de mai jos necesită o cheie Practitioner. O cheie gratuită le accesează, dar primește 403 cu nivelul necesar și cel curent indicate în corp. Ambele sunt POST și acceptă JSON.
/recipes/parseAnalizează liniile brute de ingrediente în cantitate structurată, unitate și denumire aliment. Procesare deterministă a textului, fără căutare în baza de date și fără potrivire aliment, deci este apelul ieftin de utilizat când aveți nevoie doar de structură. Corp: { "lines": ["2 tbsp olive oil", "200g plain flour"] }.
curl -H "X-Api-Key: YOUR_KEY" -H "Content-Type: application/json" \
-d '{"lines":["2 tbsp olive oil","200g plain flour"]}' \
"https://api.food-info.org/api/v1/recipes/parse"/recipes/analyzeAnaliză completă: rezolvă fiecare linie la un aliment, apoi returnează valorile nutriționale per porție și per 100 g, cu atribuirea sursei și marcaje de revizuire pentru liniile incerte. Corpul acceptă lines (obligatoriu), region (cod de țară ISO, orientează potrivirea spre alimentele de referință ale țării respective) și servings.
Returnează ingredients, perServing, per100g, totalGrams, servings, sources, reviewFlags și nutrientGroups. Fiecare rând de nutrient conține nutrientId, name, unit, perServing, per100g, percentDailyValue și referenceAmount. Verificați reviewFlags înainte de a afișa un rezultat ca fiind autoritar.
curl -H "X-Api-Key: YOUR_KEY" -H "Content-Type: application/json" \
-d '{"lines":["2 eggs","100ml milk"],"region":"GB","servings":2}' \
"https://api.food-info.org/api/v1/recipes/analyze"| Status | Semnificație |
|---|---|
400 | Date de intrare invalide, ex. q gol sau un nutrientId non-pozitiv. Corpul răspunsului este un obiect JSON cu un mesaj error. |
401 / 403 | Cheie lipsă, invalidă sau revocată (401), sau un endpoint exclusiv Practitioner apelat cu o cheie gratuită (403). Corpul răspunsului 403 indică nivelul necesar și nivelul deținut. |
404 | Niciun aliment sau nutrient cu acel id. |
429 | Limită de rată depășită, consultați Retry-After. |
Conectați-vă pentru a genera o cheie API. Un cont gratuit este suficient pentru a începe: 100 de cereri pe zi.
Creați un cont gratuit