Gratis Ernærings-API for Utviklere: Slik Bygger Du Apper med Nutrola's Matdata
En utviklerguide for å bygge ernæringsbevisste applikasjoner med Nutrola's gratis ernærings-API. Dekker endepunkter, autentisering, kodeeksempler i Python, JavaScript og cURL, hastighetsbegrensninger, og sammenligninger med Nutritionix, Edamam og USDA API-er.
Å bygge en ernæringsbevisst applikasjon krevde tidligere å sette sammen sin egen matdatabase fra bunnen av, lisensiere dyre datasett eller skrape usikre kilder. I dag gir ernærings-API-er strukturert, programmatisk tilgang til omfattende matdatabaser med makro- og mikronæringsstoffer, samt serveringsstørrelsesdata levert som ren JSON. Denne guiden tar utviklere gjennom landskapet av ernærings-API-er, med fokus på hvordan man kommer i gang med Nutrola's gratis nivå og hvordan det sammenlignes med alternativer.
Enten du bygger en måltidsplanlegger, en treningssporer, et forskningsverktøy, en oppskriftanalysator, eller en AI-assistent som svarer på ernæringsspørsmål, gir denne guiden deg de tekniske detaljene for å velge et API og begynne å sende forespørsel på minutter.
Oversikt over Ernærings-API-er
Før vi dykker inn i implementeringen, her er en sammenligning av de viktigste ernærings-API-ene tilgjengelig for utviklere i 2026.
| API | Gratis nivå | Hastighetsbegrensning (Gratis) | Mat i databasen | Strekkodeavlesning | Matgjenkjenning (AI) | Priser (Betalt) |
|---|---|---|---|---|---|---|
| Nutrola API | Ja | 500 forespørsel/dag | 900,000+ | Ja | Ja (tillegg) | Fra $29/måned |
| USDA FoodData Central | Ja (helt gratis) | 1,000/time per nøkkel | 370,000+ | Nei | Nei | Gratis |
| Nutritionix API | Ja (begrenset) | 50 forespørsel/dag | 1,000,000+ | Ja | Nei | Fra $299/måned |
| Edamam API | Ja | 100 forespørsel/dag | 900,000+ | Nei | Nei | Fra $19/måned |
| FatSecret Platform API | Ja | 5,000 forespørsel/dag | 500,000+ | Ja | Nei | Gratis (med attribusjon) |
| Open Food Facts API | Ja (helt gratis) | Rimelig bruk | 3,000,000+ | Ja | Nei | Gratis |
| Spoonacular | Ja | 150 forespørsel/dag | 500,000+ | Nei | Nei | Fra $29/måned |
Komme i Gang med Nutrola API
Steg 1: Opprett en Utviklerkonto
Besøk Nutrola Developer Portal på developers.nutrola.com for å opprette en gratis konto. Etter e-postverifisering vil du motta en API-nøkkel på dashbordet ditt. Det gratis nivået inkluderer 500 forespørsel per dag, tilgang til hele matdatabasen, og tekstbasert mat søk. Endepunkter for AI matgjenkjenning er tilgjengelige på betalte nivåer.
Steg 2: Autentisering
Alle API-forespørsel krever din API-nøkkel i forespørselshodet. Nøkkelen sendes via X-Api-Key hodet.
X-Api-Key: din_api_nøkkel_her
API-en bruker kun HTTPS. Alle forespørsel til HTTP-endepunkter vil motta en 301-omdirigering til HTTPS. Ikke legg inn API-nøkkelen i klientkode; alltid proxy forespørsel gjennom din backend-server.
Steg 3: Grunnleggende URL
Alle endepunkter serveres fra:
https://api.nutrola.com/v1/
Svarene er i JSON-format med UTF-8-koding. API-en følger RESTful-konvensjoner med standard HTTP-statuskoder.
Kjerneendepunkter
Søk etter Mat
Søk i matdatabasen med tekstforespørsel. Returnerer matvarer som matcher med ernæringsdata.
Endepunkt: GET /v1/foods/search
Parametere:
| Parameter | Type | Påkrevd | Beskrivelse |
|---|---|---|---|
| query | string | Ja | Søkebegrep (f.eks. "grillet kyllingbryst") |
| limit | integer | Nei | Resultater per side (standard: 10, maks: 50) |
| offset | integer | Nei | Paginering offset (standard: 0) |
| type | string | Nei | Filtrer etter type: "common", "branded", "restaurant" |
| language | string | Nei | Språk kode (standard: "en"). Støtter: en, es, de, fr, pt, ja, ko, zh |
Eksempelforespørsel (cURL):
curl -X GET "https://api.nutrola.com/v1/foods/search?query=grilled+chicken+breast&limit=5" \
-H "X-Api-Key: din_api_nøkkel_her"
Eksempelforespørsel (Python):
import requests
API_KEY = "din_api_nøkkel_her"
BASE_URL = "https://api.nutrola.com/v1"
response = requests.get(
f"{BASE_URL}/foods/search",
headers={"X-Api-Key": API_KEY},
params={
"query": "grillet kyllingbryst",
"limit": 5
}
)
data = response.json()
for food in data["foods"]:
print(f"{food['name']}: {food['calories']} kcal per {food['serving_size']}{food['serving_unit']}")
Eksempelforespørsel (JavaScript / Node.js):
const API_KEY = "din_api_nøkkel_her";
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("grillet kyllingbryst").then(foods => {
foods.forEach(food => {
console.log(`${food.name}: ${food.calories} kcal per ${food.serving_size}${food.serving_unit}`);
});
});
Eksempel Respons:
{
"foods": [
{
"id": "nf_001234",
"name": "Kyllingbryst, Grillet, Uten Skinn",
"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",
"alt_servings": [
{
"description": "1 middels bryst (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
}
Hent Mat etter ID
Hent detaljerte ernæringsdata for et spesifikt matvare ved hjelp av Nutrola ID-en.
Endepunkt: GET /v1/foods/{food_id}
Eksempel (cURL):
curl -X GET "https://api.nutrola.com/v1/foods/nf_001234" \
-H "X-Api-Key: din_api_nøkkel_her"
Responsen inkluderer full makro- og mikronæringsprofil (30+ næringsstoffer), alle tilgjengelige serveringsstørrelser, ingrediensliste (for merkede og restaurantvarer), allergenflagg, kostholdsetiketter (vegan, glutenfri, halal, kosher), og kilde-attribusjon.
Hent Mat etter Strekkode
Søk etter et pakket matprodukt ved hjelp av UPC- eller EAN-strekkoden.
Endepunkt: GET /v1/foods/barcode/{code}
Parametere:
| Parameter | Type | Påkrevd | Beskrivelse |
|---|---|---|---|
| code | string | Ja | UPC (12-sifret) eller EAN (13-sifret) strekkode |
Eksempel (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']}")
Analyser Naturlig Språk Inndata
Analyser en naturlig språk matbeskrivelse og returner strukturert ernæringsdata. Dette endepunktet håndterer mengder, enheter, tilberedningsmetoder, og flere elementer i en enkelt streng.
Endepunkt: POST /v1/foods/analyze
Forespørsel Body:
{
"query": "2 rørte egg med en skive fullkornsbrød og en halv avokado",
"language": "en"
}
Eksempel (Python):
response = requests.post(
f"{BASE_URL}/foods/analyze",
headers={
"X-Api-Key": API_KEY,
"Content-Type": "application/json"
},
json={
"query": "2 rørte egg med en skive fullkornsbrød og en halv avokado"
}
)
result = response.json()
for item in result["items"]:
print(f"{item['quantity']} {item['unit']} {item['name']}: {item['calories']} kcal")
print(f"Totalt: {result['total']['calories']} kcal")
Eksempel Respons:
{
"items": [
{
"name": "Rørte Egg",
"quantity": 2,
"unit": "store",
"calories": 182,
"protein_g": 12.2,
"carbohydrates_g": 2.4,
"fat_g": 13.6,
"food_id": "nf_002891"
},
{
"name": "Fullkornsbrød",
"quantity": 1,
"unit": "skive",
"calories": 81,
"protein_g": 3.9,
"carbohydrates_g": 13.8,
"fat_g": 1.1,
"food_id": "nf_003401"
},
{
"name": "Avokado",
"quantity": 0.5,
"unit": "medium",
"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
}
}
AI Matgjenkjenning (Betalt Nivå)
Send et bilde av mat for AI-drevet gjenkjenning og ernæringsanalyse.
Endepunkt: POST /v1/foods/recognize
Forespørsel: Multipart formdata med bilde filen, eller en JSON-body med et base64-kodet bilde.
Eksempel (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")
Responsen inkluderer gjenkjente matvarer med tillitsnivåer, koordinater for avgrensningsboks, estimerte porsjonsstørrelser, ernæringsoppsummering per element, og total ernæringsoppsummering for måltidet.
Hastighetsbegrensninger og Feilhåndtering
Hastighetsbegrensninger etter Nivå
| Nivå | Daglige Forespørsel | Forespørsel/Sekund | AI Gjenkjenning | Pris |
|---|---|---|---|---|
| Gratis | 500 | 5 | Ikke inkludert | $0 |
| Starter | 5,000 | 10 | 100/dag | $29/måned |
| Pro | 50,000 | 25 | 1,000/dag | $99/måned |
| Enterprise | Tilpasset | Tilpasset | Tilpasset | Kontakt salg |
Hastighetsbegrensningshoder
Hver respons inkluderer hastighetsbegrensningshoder:
X-RateLimit-Limit: 500
X-RateLimit-Remaining: 487
X-RateLimit-Reset: 1710374400
Feilrespons
API-en bruker standard HTTP-statuskoder med beskrivende feilkropper.
{
"error": {
"code": "rate_limit_exceeded",
"message": "Daglig forespørselgrense på 500 overskredet. Nullstiller ved 00:00 UTC.",
"status": 429
}
}
| Statuskode | Betydning |
|---|---|
| 200 | Succes |
| 400 | Dårlig forespørsel (ugyldige parametere) |
| 401 | Uautorisert (ugyldig eller manglende API-nøkkel) |
| 404 | Mat ikke funnet |
| 429 | Hastighetsgrense overskredet |
| 500 | Intern serverfeil |
Implementer eksponentiell tilbakeholdelse for 429 og 500-responser. En enkel strategi er å vente 1 sekund etter første feil, 2 sekunder etter den andre, 4 etter den tredje, opp til et maksimum på 60 sekunder.
Bruksområder og Implementeringsmønstre
Måltidsplanleggingsapplikasjoner
Bygg en måltidsplanlegger som treffer målmakroer ved å søke etter matvarer, beregne ernæringstotaler, og iterere til måltidsplanen møter brukerens mål.
def find_foods_for_target(target_protein, target_calories):
"""Finn proteinrike matvarer innen kalori budsjett."""
response = requests.get(
f"{BASE_URL}/foods/search",
headers={"X-Api-Key": API_KEY},
params={
"query": "høyt protein",
"limit": 20,
"type": "common"
}
)
foods = response.json()["foods"]
# Filtrer etter protein-til-kalori-forhold
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)
Integrering med Treningsapper
Koble med aktivitetsdata for å vise brukerne deres kalori-balanse. Bruk naturlig språk-endepunktet for rask logging.
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();
// Lagre i databasen din
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;
}
Oppskriftsnæringskalkulator
Beregn næringsinnholdet i en oppskrift ved å se opp hver ingrediens og summere verdiene.
def analyze_recipe(ingredients):
"""
ingredients: liste av strenger som ["200g kyllingbryst", "1 kopp brun ris", "2 ss olivenolje"]
"""
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
# Eksempel på bruk
recipe = analyze_recipe([
"200g kyllingbryst",
"1 kopp brun ris kokt",
"2 spiseskjeer olivenolje",
"1 kopp dampet brokkoli"
])
print(f"Oppskrift total: {recipe['calories']} kcal, {recipe['protein_g']}g protein")
Forskning og Dataanalyse
For akademisk forskning, bruk API-en til å bygge ernæringsprofiler for studiepopulasjoner eller validere kostholdsverktøy.
import pandas as pd
def build_nutrition_profile(food_log_df):
"""
food_log_df: DataFrame med kolonner ['food_description', 'date']
Returnerer DataFrame med full ernæringsoppsummering per oppføring.
"""
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)
Sammenligning med Alternative API-er
USDA FoodData Central API
USDA API-en er helt gratis uten betalte nivåer, noe som gjør den til standardvalget for akademiske og offentlige prosjekter. Den dekker omtrent 370,000 matvarer på tvers av Foundation, SR Legacy, Survey (FNDDS), og Branded databaser. Styrker inkluderer å være gullstandarden for amerikanske matkomposisjonsdata, autoriteten som andre databaser refererer til. Begrensninger inkluderer ingen naturlig språk-parsing (du må matche matnavn til deres spesifikke database-nøkler), ingen strekkodeoppslag, ingen AI-gjenkjenning, og den merkede matdata kan være inkonsekvent fordi den er avhengig av produsentinnsendinger. API-dokumentasjonen er funksjonell, men ikke utviklervennlig etter moderne standarder.
Best for: Akademisk forskning, offentlige prosjekter, applikasjoner som trenger autoritative referansedata og har utviklerressurser til å håndtere matchingskompleksitet.
Nutritionix API
Nutritionix har en av de største matdatabasene med sterk dekning av restaurant- og merkede matvarer. Dens naturlige språk-endepunkt er modent og håndterer komplekse forespørsel godt. Imidlertid er det gratis nivået ekstremt begrenset til 50 forespørsel per dag, og de betalte planene starter på $299 per måned, noe som setter det utenfor rekkevidde for mange uavhengige utviklere og små oppstartsselskaper. API-en er godt dokumentert og støtter både tekst- og strekkodeoppslag.
Best for: Velfinansierte applikasjoner som trenger omfattende restaurantmatdata og har råd til prisene.
Edamam API
Edamam tilbyr ernæringsanalyse, oppskriftanalyse, og matdatabase API-er. Det gratis nivået gir 100 forespørsel per dag, som er håndterbart for prototyping. Edamams styrke er dens oppskriftanalysekapasitet, som kan analysere en fullstendig oppskrift sin ingrediensliste og returnere per-serverings ernæringsdata. Databasen dekker omtrent 900,000 matvarer. Begrensninger inkluderer sporadiske inkonsekvenser i serveringsstørrelsesdata og en mindre intuitiv utvikleropplevelse sammenlignet med nyere API-er.
Best for: Oppskriftsfokuserte applikasjoner, måltidsplanleggingsverktøy som trenger oppskriftsnivåanalyse.
FatSecret Platform API
FatSecret tilbyr et generøst gratis nivå med 5,000 forespørsel per dag, noe som gjør det attraktivt for bootstrappede prosjekter. Avveiningen er at du må vise FatSecret-merkevare og attribusjon i applikasjonen din. Databasen dekker omtrent 500,000 matvarer med anstendig internasjonal dekning. API-en støtter OAuth 1.0-autentisering, som er eldre og mer kompleks å implementere enn API-nøkkel eller OAuth 2.0-tilnærminger.
Best for: Budsjettbegrensede prosjekter som kan imøtekomme attribusjonskrav og OAuth 1.0.
Open Food Facts API
Open Food Facts er en fellesskapsdrevet, åpen kildekode matdatabase med over 3 millioner produkter, primært pakket varer med strekkodedata. Den er helt gratis og åpen (Open Database License). API-en er enkel for strekkodeoppslag, men mindre strukturert for ernæringssøkeforespørsel. Datakvaliteten varierer fordi bidragene er crowdsourcet, selv om en fellesskapsgjennomgangsprosess fanger mange feil.
Best for: Pakket matstrekkodeavlesning, prosjekter som samsvarer med åpen kildekildeprinsipper, internasjonal dekning av pakket mat.
API-sammenligningsoppsummering
| Funksjon | Nutrola | USDA | Nutritionix | Edamam | FatSecret | Open Food Facts |
|---|---|---|---|---|---|---|
| Daglig grense for gratis nivå | 500 | 1,000/time | 50 | 100 | 5,000 | Ubegrenset |
| Naturlig språk-parsing | Ja | Nei | Ja | Ja | Nei | Nei |
| AI matgjenkjenning | Ja (betalt) | Nei | Nei | Nei | Nei | Nei |
| Strekkodeoppslag | Ja | Nei | Ja | Nei | Ja | Ja |
| Flerspråklig støtte | 8 språk | Engelsk | Engelsk | Engelsk | 16 språk | 40+ språk |
| Oppskriftsanalyse | Via NLP | Nei | Ja | Ja | Nei | Nei |
| Mikronæringsdybde | 30+ næringsstoffer | 60+ næringsstoffer | 20+ næringsstoffer | 25+ næringsstoffer | 15+ næringsstoffer | Varierer |
| Autentisering | API-nøkkel | API-nøkkel | API-nøkkel | App ID + Nøkkel | OAuth 1.0 | Ingen (valgfritt) |
Beste Praksis for Bygging av Ernæringsapper
Cache aggressivt
Ernæringsdata for vanlige matvarer endres ikke ofte. Cache mat søkresultater og ernæringsoppslag på backend i 24 til 72 timer for å redusere API-kall og forbedre responstider.
Håndter manglende data på en elegant måte
Ikke hver matoppføring har fullstendig mikronæringsdata. Design UI-en din for å indikere når data ikke er tilgjengelig i stedet for å vise nuller, som brukere kan misforstå som "denne maten inneholder null jern."
Valider brukerinput før API-kall
Trim whitespace, normaliser enheter, og stavekontroll matnavn før du sender dem til API-en. En godt utformet forespørsel gir mye bedre resultater enn en med skrivefeil.
Bruk naturlig språk-endepunktet når mulig
I stedet for å bygge din egen matnavnparser, bruk /foods/analyze endepunktet. Det håndterer mengder ("2 kopper"), tilberedningsmetoder ("grillet"), og sammensatte beskrivelser ("fullkornsbrød med smør") bedre enn de fleste tilpassede implementeringer.
Respekter hastighetsbegrensninger
Implementer riktig tilbakeholdelseslogikk. Batch-operasjoner der det er mulig. Bruk webhooks eller køer for høyvolumoperasjoner i stedet for synkrone API-kall.
Attribuer datakilder
God praksis (og noen ganger et juridisk krav avhengig av API-en) er å attribuere datakilden. Vis "Ernæringsdata levert av Nutrola" eller det tilsvarende for hvilken API du bruker.
Vanlige Spørsmål
Er Nutrola API-en virkelig gratis?
Ja. Det gratis nivået gir 500 API-forespørsel per dag uten kostnad, uten at kredittkort er nødvendig. Dette er tilstrekkelig for prototyping, små applikasjoner, og personlige prosjekter. Det gratis nivået inkluderer tekstsøk, matoppslag etter ID, strekkodeavlesning, og naturlig språk-analyse. AI matgjenkjenning fra bilder er tilgjengelig på betalte nivåer fra $29 per måned.
Hvilket dataformat returnerer API-en?
Alle svar er i JSON-format med UTF-8-koding. Ernæringsverdier bruker standardenheter: kilokalorier for energi, gram for makronæringsstoffer og fiber, milligram for natrium og de fleste mineraler, og mikrogram for vitaminer der det er aktuelt.
Kan jeg bruke Nutrola API-en i en kommersiell applikasjon?
Ja. Både gratis og betalte nivåer tillater kommersiell bruk. Det gratis nivået krever Nutrola-attribusjon i applikasjonen din. Betalte nivåer inkluderer hvitmerkingalternativer der ingen attribusjon er nødvendig.
Hvor ofte oppdateres matdatabasen?
Nutrola matdatabase oppdateres kontinuerlig for merkede og restaurantmatvarer, med USDA referansedata synkronisert innen 30 dager etter USDA-utgivelser. Store databaseoppdateringer skjer månedlig, mens individuelle matoppføringer kan oppdateres daglig basert på produsentendringer, brukerrapporterte korrigeringer, og nye produktlanseringer.
Støtter API-en internasjonale matvarer?
Ja. Databasen dekker matvarer fra over 50 land, med søk tilgjengelig på 8 språk (engelsk, spansk, tysk, fransk, portugisisk, japansk, koreansk, og kinesisk). Internasjonal matdekning er en kjerneprioritet for Nutrola, og databasen inkluderer regionale retter, lokale merkede produkter, og kjøkken-spesifikke tilberedninger som ofte mangler fra amerikansk-sentrerte databaser.
Kan jeg bruke API-en for en mobilapp?
Ja, men ikke legg API-nøkkelen direkte inn i mobilklientkoden, da den kan bli hentet fra app-binaryen. Sett i stedet opp en lettvekts backend-server som proxyer forespørsel til Nutrola API-en og håndterer autentisering. Dette gir deg også et lag for caching og forespørselshåndtering.
Er det en webhook eller streaming-alternativ?
For øyeblikket opererer API-en på en forespørsel-respons-modell. Webhook-støtte for asynkrone matgjenkjenningsresultater (for store batchbehandlinger) er på veikartet for 2026. For batchoperasjoner i dag, bruk /v1/foods/analyze/batch endepunktet, som aksepterer opptil 20 elementer i en enkelt forespørsel.
Konklusjon
Ernærings-API-er har gjort det praktisk for utviklere å bygge matbevisste applikasjoner uten det enorme overhodet av å opprettholde en proprietær matdatabase. Nutrola's API gir et generøst gratis nivå, omfattende matdekning på tvers av internasjonale kjøkken, naturlig språkforståelse, og valgfri AI matgjenkjenning, noe som gjør det til et sterkt valg for prosjekter som spenner fra helgeprototyper til produksjonsapplikasjoner.
Det beste API-et for prosjektet ditt avhenger av dine spesifikke behov: USDA for autoritative referansedata, Nutritionix for dyp restaurantdekning, Open Food Facts for åpen kildekode-strekkodedata, eller Nutrola for en balanse av funksjoner, nøyaktighet, og utvikleropplevelse. I mange tilfeller gir kombinasjonen av flere API-er deg den beste dekningen. Start med det gratis nivået, valider det mot bruksområdet ditt, og skaler derfra.
Klar til å forvandle ernæringssporingen din?
Bli en del av tusenvis som har forvandlet helsereisen sin med Nutrola!