Gratis närings-API för utvecklare: Så bygger du appar med Nutrolas livsmedelsdata

En utvecklarhandledning för att bygga näringsmedvetna applikationer med Nutrolas gratis närings-API. Täcker slutpunkter, autentisering, kodexempel i Python, JavaScript och cURL, hastighetsbegränsningar samt jämförelser med Nutritionix, Edamam och USDA-API:er.

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

Att bygga en näringsmedveten applikation krävde tidigare att man sammanställde sin egen livsmedelsdatabas från grunden, licensierade dyra dataset eller skrapade osäkra källor. Idag erbjuder närings-API:er strukturerad, programmeringsvänlig åtkomst till omfattande livsmedelsdatabaser med makro- och mikronäringsämnen samt portionsstorleksdata levererad som ren JSON. Denna guide hjälper utvecklare att navigera i landskapet av närings-API:er, med fokus på hur man kommer igång med Nutrolas gratis nivå och hur den står sig mot alternativen.

Oavsett om du bygger en måltidsplaneringsapp, en träningsspårare, ett forskningsverktyg, en receptanalysator eller en AI-assistent som svarar på näringsfrågor, ger denna guide dig de tekniska detaljerna för att välja ett API och börja göra förfrågningar på några minuter.

Översikt av närings-API:er

Innan vi dyker ner i implementationen, här är en jämförelse av de största närings-API:erna som finns tillgängliga för utvecklare år 2026.

API Gratis nivå Hastighetsbegränsning (gratis) Livsmedel i databasen Streckkodsskanning Livsmedelsigenkänning (AI) Prissättning (betald)
Nutrola API Ja 500 förfrågningar/dag 900 000+ Ja Ja (tillägg) Från $29/månad
USDA FoodData Central Ja (helt gratis) 1 000/timme per nyckel 370 000+ Nej Nej Gratis
Nutritionix API Ja (begränsad) 50 förfrågningar/dag 1 000 000+ Ja Nej Från $299/månad
Edamam API Ja 100 förfrågningar/dag 900 000+ Nej Nej Från $19/månad
FatSecret Platform API Ja 5 000 förfrågningar/dag 500 000+ Ja Nej Gratis (med attribution)
Open Food Facts API Ja (helt gratis) Rimlig användning 3 000 000+ Ja Nej Gratis
Spoonacular Ja 150 förfrågningar/dag 500 000+ Nej Nej Från $29/månad

Komma igång med Nutrola API

Steg 1: Skapa ett utvecklarkonto

Besök Nutrola Developer Portal på developers.nutrola.com för att skapa ett gratis konto. Efter e-postverifiering får du en API-nyckel på din instrumentpanel. Den kostnadsfria nivån inkluderar 500 förfrågningar per dag, tillgång till hela livsmedelsdatabasen och textbaserad livsmedelssökning. Slutpunkter för AI-livsmedelsigenkänning finns tillgängliga på betalda nivåer.

Steg 2: Autentisering

Alla API-förfrågningar kräver din API-nyckel i begärans rubrik. Nyckeln skickas via X-Api-Key-rubriken.

X-Api-Key: your_api_key_here

API:et använder endast HTTPS. Alla förfrågningar till HTTP-slutpunkter kommer att få en 301-omdirigering till HTTPS. Tänk på att inte bädda in din API-nyckel i klientkod; använd alltid en proxy för förfrågningar genom din backend-server.

Steg 3: Bas-URL

Alla slutpunkter serveras från:

https://api.nutrola.com/v1/

Svar ges i JSON-format med UTF-8-kodning. API:et följer RESTful-konventioner med standard HTTP-statuskoder.

Kärnslutpunkter

Sök livsmedel

Sök i livsmedelsdatabasen med en textfråga. Returnerar matchande livsmedel med näringsdata.

Slutpunkt: GET /v1/foods/search

Parametrar:

Parameter Typ Obligatorisk Beskrivning
query string Ja Sökterm (t.ex. "grillad kycklingbröst")
limit integer Nej Resultat per sida (standard: 10, max: 50)
offset integer Nej Pagineringsoffset (standard: 0)
type string Nej Filtrera efter typ: "common", "branded", "restaurant"
language string Nej Språkkod (standard: "en"). Stöder: en, es, de, fr, pt, ja, ko, zh

Exempel på förfrågan (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"

Exempel på förfrågan (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']}")

Exempel på förfrågan (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}`);
  });
});

Exempel på svar:

{
  "foods": [
    {
      "id": "nf_001234",
      "name": "Kycklingbröst, Grillad, Utan 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 medelbröst (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
}

Hämta livsmedel efter ID

Hämta detaljerad näringsdata för en specifik livsmedelsartikel med dess Nutrola-ID.

Slutpunkt: GET /v1/foods/{food_id}

Exempel (cURL):

curl -X GET "https://api.nutrola.com/v1/foods/nf_001234" \
  -H "X-Api-Key: your_api_key_here"

Svaret inkluderar fullständig makro- och mikronäringsprofil (30+ näringsämnen), alla tillgängliga portionsstorlekar, ingredienslista (för märkta och restaurangartiklar), allergenflaggor, kosttaggar (vegansk, glutenfri, halal, kosher) och källattribution.

Hämta livsmedel efter streckkod

Sök efter en förpackad livsmedelsprodukt med dess UPC- eller EAN-streckkod.

Slutpunkt: GET /v1/foods/barcode/{code}

Parametrar:

Parameter Typ Obligatorisk Beskrivning
code string Ja UPC (12-siffrig) eller EAN (13-siffrig) streckkod

Exempel (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']}")

Analysera naturligt språk

Bearbeta en beskrivning av livsmedel i naturligt språk och returnera strukturerad näringsdata. Denna slutpunkt hanterar kvantiteter, enheter, tillagningsmetoder och flera artiklar i en enda sträng.

Slutpunkt: POST /v1/foods/analyze

Begärningskropp:

{
  "query": "2 scrambled eggs with a slice of whole wheat toast and half an avocado",
  "language": "en"
}

Exempel (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")

Exempel på svar:

{
  "items": [
    {
      "name": "Äggröra",
      "quantity": 2,
      "unit": "large",
      "calories": 182,
      "protein_g": 12.2,
      "carbohydrates_g": 2.4,
      "fat_g": 13.6,
      "food_id": "nf_002891"
    },
    {
      "name": "Fullkornsbröd",
      "quantity": 1,
      "unit": "slice",
      "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-livsmedelsigenkänning (betald nivå)

Skicka en bild av livsmedel för AI-driven igenkänning och näringsanalys.

Slutpunkt: POST /v1/foods/recognize

Begäran: Multipart-formdata med bildfilen eller en JSON-kropp med en base64-kodad bild.

Exempel (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")

Svaret inkluderar upptäckta livsmedelsartiklar med förtroendesiffror, koordinater för avgränsningsrutor, uppskattade portionsstorlekar, näringsfördelning per artikel och en sammanfattning av den totala måltidens näringsinnehåll.

Hastighetsbegränsningar och felhantering

Hastighetsbegränsningar per nivå

Nivå Dagliga förfrågningar Förfrågningar/Sekund AI-igenkänning Pris
Gratis 500 5 Ingår inte $0
Starter 5 000 10 100/dag $29/månad
Pro 50 000 25 1 000/dag $99/månad
Företag Anpassad Anpassad Anpassad Kontakta försäljning

Hastighetsbegränsningshuvuden

Varje svar inkluderar hastighetsbegränsningshuvuden:

X-RateLimit-Limit: 500
X-RateLimit-Remaining: 487
X-RateLimit-Reset: 1710374400

Felmeddelanden

API:et använder standard HTTP-statuskoder med beskrivande felkroppar.

{
  "error": {
    "code": "rate_limit_exceeded",
    "message": "Daglig begärgräns på 500 överskriden. Återställs kl. 00:00 UTC.",
    "status": 429
  }
}
Statuskod Betydelse
200 Lyckad
400 Ogiltig begäran (ogiltiga parametrar)
401 Obemyndigad (ogiltig eller saknad API-nyckel)
404 Livsmedel hittades inte
429 Hastighetsbegränsning överskriden
500 Internt serverfel

Implementera exponentiell backoff för 429 och 500 svar. En enkel strategi är att vänta 1 sekund efter den första misslyckandet, 2 sekunder efter den andra, 4 efter den tredje, upp till ett maximum av 60 sekunder.

Användningsfall och implementationsmönster

Måltidsplaneringsapplikationer

Bygg en måltidsplanerare som når målmakron genom att söka livsmedel, beräkna näringssummor och iterera tills måltidsplanen uppfyller användarens mål.

def find_foods_for_target(target_protein, target_calories):
    """Hitta proteinrika livsmedel inom kalori-budgeten."""
    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"]
    # Filtrera efter protein-till-kalori-förhållande
    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)

Integration av träningsappar

Koppla ihop med aktivitetsdata för att visa användarna deras kalori balans. Använd den naturliga språk slutpunkten för snabb registrering.

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();

  // Spara i din databas
  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;
}

Receptnäringsberäknare

Beräkna näringsinnehållet i ett recept genom att söka efter varje ingrediens och summera värdena.

def analyze_recipe(ingredients):
    """
    ingredients: lista av strängar som "200g kycklingbröst", "1 kopp brunt ris", "2 msk olivolja"
    """
    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

# Exempel på användning
recipe = analyze_recipe([
    "200g kycklingbröst",
    "1 kopp brunt ris kokt",
    "2 matskedar olivolja",
    "1 kopp ångad broccoli"
])
print(f"Recept totalt: {recipe['calories']} kcal, {recipe['protein_g']}g protein")

Forskning och dataanalys

För akademisk forskning, använd API:et för att bygga näringsprofiler för studiepopulationer eller validera verktyg för kostbedömning.

import pandas as pd

def build_nutrition_profile(food_log_df):
    """
    food_log_df: DataFrame med kolumnerna ['food_description', 'date']
    Returnerar DataFrame med fullständig näringsanalys per post.
    """
    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)

Jämförelse med alternativa API:er

USDA FoodData Central API

USDA API:et är helt gratis utan betalda nivåer, vilket gör det till det självklara valet för akademiska och statliga projekt. Det täcker cirka 370 000 livsmedel över Foundation, SR Legacy, Survey (FNDDS) och Branded databaser. Styrkor inkluderar att vara guldstandarden för amerikansk livsmedelskompositionsdata, auktoriteten som andra databaser refererar till. Begränsningar inkluderar ingen naturlig språkbearbetning (du måste matcha livsmedelsnamn med deras specifika databasnycklar), ingen streckkodssökning, ingen AI-igenkänning, och den märkta livsmedelsdata kan vara inkonsekvent eftersom den förlitar sig på tillverkarens inlämningar. API-dokumentationen är funktionell men inte särskilt utvecklarvänlig enligt moderna standarder.

Bäst för: Akademisk forskning, statliga projekt, applikationer som behöver auktoritativ referensdata och har utvecklarresurser för att hantera matchningskomplexitet.

Nutritionix API

Nutritionix har en av de största livsmedelsdatabaserna med stark täckning av restaurang- och märkta livsmedel. Dess naturliga språk slutpunkt är mogen och hanterar komplexa frågor väl. Men den kostnadsfria nivån är extremt begränsad med 50 förfrågningar per dag, och de betalda planerna börjar på $299 per månad, vilket gör den otillgänglig för många oberoende utvecklare och små startups. API:et är väldokumenterat och stöder både text- och streckkodssökning.

Bäst för: Välfinansierade applikationer som behöver omfattande restauranglivsmedelsdata och har råd med prissättningen.

Edamam API

Edamam erbjuder näringsanalys, receptanalys och livsmedelsdatabas-API:er. Den kostnadsfria nivån ger 100 förfrågningar per dag, vilket är hanterbart för prototyper. Edamams styrka är dess receptanalysförmåga, som kan bearbeta en fullständig ingredienslista för ett recept och returnera näringsdata per portion. Databasen täcker cirka 900 000 livsmedel. Begränsningar inkluderar sporadiska inkonsekvenser i portionsstorleksdata och en mindre intuitiv utvecklarupplevelse jämfört med nyare API:er.

Bäst för: Receptfokuserade applikationer, måltidsplaneringsverktyg som behöver receptnivåanalys.

FatSecret Platform API

FatSecret erbjuder en generös gratis nivå med 5 000 förfrågningar per dag, vilket gör den attraktiv för bootstrapade projekt. Avvägningen är att du måste visa FatSecret-branding och attribution i din applikation. Databasen täcker cirka 500 000 livsmedel med anständig internationell täckning. API:et stöder OAuth 1.0-autentisering, vilket är äldre och mer komplext att implementera än API-nyckel- eller OAuth 2.0-ansatser.

Bäst för: Budgetbegränsade projekt som kan hantera krav på attribution och OAuth 1.0.

Open Food Facts API

Open Food Facts är en community-driven, öppen livsmedelsdatabas med över 3 miljoner produkter, främst förpackade varor med streckkodsdata. Den är helt gratis och öppen (Open Database License). API:et är enkelt för streckkodssökningar men mindre strukturerat för närings sökfrågor. Datakvaliteten varierar eftersom bidrag är crowdsourcade, även om en community-granskningsprocess fångar många fel.

Bäst för: Förpackade livsmedels streckkodsskanning, projekt som stämmer överens med öppen källkod-principer, internationell täckning av förpackade livsmedel.

API-jämförelse sammanfattning

Funktion Nutrola USDA Nutritionix Edamam FatSecret Open Food Facts
Daglig gräns för gratis nivå 500 1 000/timme 50 100 5 000 Obegränsad
Naturlig språkbearbetning Ja Nej Ja Ja Nej Nej
AI-livsmedelsigenkänning Ja (betald) Nej Nej Nej Nej Nej
Streckkodssökning Ja Nej Ja Nej Ja Ja
Flerspråkigt stöd 8 språk Engelska Engelska Engelska 16 språk 40+ språk
Receptanalys Via NLP Nej Ja Ja Nej Nej
Mikronäringsdjup 30+ näringsämnen 60+ näringsämnen 20+ näringsämnen 25+ näringsämnen 15+ näringsämnen Varierar
Autentisering API-nyckel API-nyckel API-nyckel App-ID + Nyckel OAuth 1.0 Ingen (valfritt)

Bästa praxis för att bygga näringsappar

Cache aggressivt

Näringsdata för vanliga livsmedel förändras inte ofta. Cachea livsmedelssökningsresultat och näringsuppslag på din backend i 24 till 72 timmar för att minska API-anrop och förbättra svarstider.

Hantera saknad data på ett smidigt sätt

Inte varje livsmedelspost har fullständig mikronäringsdata. Utforma ditt användargränssnitt för att indikera när data är otillgänglig istället för att visa nollor, vilket användare kan misstolka som "detta livsmedel innehåller noll järn."

Validera användarinmatning innan API-anrop

Trimma vit utrymme, normalisera enheter och rätta stavningen av livsmedelsnamn innan du skickar dem till API:et. En välformulerad fråga ger mycket bättre resultat än en med stavfel.

Använd naturlig språk slutpunkten när det är möjligt

Istället för att bygga din egen livsmedelsnamnparser, använd /foods/analyze slutpunkten. Den hanterar kvantiteter ("2 koppar"), tillagningsmetoder ("grillad") och sammansatta beskrivningar ("fullkornsbröd med smör") bättre än de flesta anpassade implementationer.

Respektera hastighetsbegränsningar

Implementera korrekt backoff-logik. Batchoperationer där det är möjligt. Använd webbhooks eller köer för högvolymoperationer istället för synkrona API-anrop.

Attribuera datakällor

God praxis (och ibland ett lagligt krav beroende på API:et) är att attribuera datakällan. Visa "Näringsdata tillhandahålls av Nutrola" eller motsvarande för vilket API du använder.

Vanliga frågor

Är Nutrola API verkligen gratis?

Ja. Den kostnadsfria nivån erbjuder 500 API-förfrågningar per dag utan kostnad, utan att kreditkort krävs. Detta är tillräckligt för prototyper, små applikationer och personliga projekt. Den kostnadsfria nivån inkluderar textbaserad sökning, livsmedelsuppslag efter ID, streckkodsskanning och analys av naturligt språk. AI-livsmedelsigenkänning från bilder är tillgänglig på betalda nivåer som börjar på $29 per månad.

Vilket dataformat returnerar API:et?

Alla svar ges i JSON-format med UTF-8-kodning. Näringsvärden använder standardenheter: kilokalorier för energi, gram för makronäringsämnen och fiber, milligram för natrium och de flesta mineraler, samt mikrogram för vitaminer där det är tillämpligt.

Kan jag använda Nutrola API i en kommersiell applikation?

Ja. Både den kostnadsfria och betalda nivån tillåter kommersiell användning. Den kostnadsfria nivån kräver Nutrola-attribution i din applikation. Betalda nivåer inkluderar alternativ för vitmärkning där ingen attribution krävs.

Hur ofta uppdateras livsmedelsdatabasen?

Nutrolas livsmedelsdatabas uppdateras kontinuerligt för märkta och restauranglivsmedel, med USDA-referensdata synkroniserad inom 30 dagar efter USDA-utgåvor. Stora databasuppdateringar sker månadsvis, medan individuella livsmedelsinlägg kan uppdateras dagligen baserat på tillverkarändringar, användarrapporterade korrigeringar och nya produktlanseringar.

Stöder API:et internationella livsmedel?

Ja. Databasen täcker livsmedel från över 50 länder, med sökning tillgänglig på 8 språk (engelska, spanska, tyska, franska, portugisiska, japanska, koreanska och kinesiska). Internationell livsmedelstäckning är en kärnprioritet för Nutrola, och databasen inkluderar regionala rätter, lokala märkta produkter och köksspecifika tillagningar som ofta saknas i USA-centrerade databaser.

Kan jag använda API:et för en mobilapp?

Ja, men tänk på att inte bädda in din API-nyckel direkt i mobilklientkoden, eftersom den kan extraheras från appens binärfil. Istället, sätt upp en lättviktig backend-server som proxyar förfrågningar till Nutrola API:et och hanterar autentisering. Detta ger dig också ett lager för caching och begärningshantering.

Finns det en webhook eller streamingalternativ?

För närvarande fungerar API:et på en begäran-svar-modell. Stöd för webhooks för asynkrona resultat av livsmedelsigenkänning (för stora batchbearbetningar) är på väg för 2026. För batchoperationer idag, använd /v1/foods/analyze/batch slutpunkten, som accepterar upp till 20 artiklar i en enda begäran.

Slutsats

Närings-API:er har gjort det praktiskt för utvecklare att bygga livsmedelsmedvetna applikationer utan den enorma overheaden av att underhålla en egen livsmedelsdatabas. Nutrolas API erbjuder en generös gratis nivå, omfattande livsmedels täckning över internationella kök, förståelse för naturligt språk och valfri AI-livsmedelsigenkänning, vilket gör det till ett starkt val för projekt som sträcker sig från helgprototyper till produktionsapplikationer.

Det bästa API:et för ditt projekt beror på dina specifika behov: USDA för auktoritativ referensdata, Nutritionix för djup restaurang täckning, Open Food Facts för öppen källkods streckkodsdata, eller Nutrola för en balans av funktioner, noggrannhet och utvecklarupplevelse. I många fall ger en kombination av flera API:er dig den bästa täckningen. Börja med den kostnadsfria nivån, validera den mot ditt användningsfall och skala därifrån.

Redo att förvandla din näringsspårning?

Gå med tusentals som har förvandlat sin hälsoresa med Nutrola!