Ilmainen Ravinto-API Kehittäjille: Kuinka Rakentaa Sovelluksia Nutrolan Ruokadatalla

Kehittäjien opas ravitsemustietoisten sovellusten rakentamiseen Nutrolan ilmaisella ravinto-API:lla. Kattaa päätepisteet, todennuksen, koodiesimerkit Pythonissa, JavaScriptissä ja cURL:ssä, käyttörajoitukset sekä vertailut Nutritionix-, Edamam- ja USDA-API:en kanssa.

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

Ravitsemustietoisen sovelluksen rakentaminen vaati aiemmin oman ruokadatabasen kokoamista alusta alkaen, kalliiden tietoaineistojen lisensointia tai epäluotettavien lähteiden kaapimista. Nykyään ravinto-API:t tarjoavat jäsenneltyä, ohjelmallista pääsyä kattaviin ruokadatabasiin, joissa on makro- ja mikro ravintoaine- sekä annoskoko tietoja, toimitettuna puhtaassa JSON-muodossa. Tämä opas vie kehittäjät ravinto-API:en maailmaan, keskittyen erityisesti Nutrolan ilmaisen tason käyttöön ja sen vertailuun vaihtoehtoihin.

Olitpa sitten rakentamassa ateriasuunnitteluohjelmaa, kuntoseurantatyökalua, tutkimusvälinettä, reseptianalysaattoria tai tekoälyassistenttia, joka vastaa ravitsemuskysymyksiin, tämä opas tarjoaa tekniset tiedot API:n valitsemiseksi ja pyyntöjen tekemiseksi minuuteissa.

Ravinto-API:n Yleiskatsaus

Ennen kuin sukellamme toteutukseen, tässä on vertailu tärkeimmistä ravinto-API:sta, jotka ovat kehittäjien saatavilla vuonna 2026.

API Ilmainen Taso Käyttörajoitus (Ilmainen) Ruokia Tietokannassa Viivakoodin Skannaus Ruoan Tunnistus (AI) Hinnoittelu (Maksullinen)
Nutrola API Kyllä 500 pyyntöä/päivä 900,000+ Kyllä Kyllä (lisäosa) Alkaen $29/kuukausi
USDA FoodData Central Kyllä (täysin ilmainen) 1,000/tunti per avain 370,000+ Ei Ei Ilmainen
Nutritionix API Kyllä (rajoitettu) 50 pyyntöä/päivä 1,000,000+ Kyllä Ei Alkaen $299/kuukausi
Edamam API Kyllä 100 pyyntöä/päivä 900,000+ Ei Ei Alkaen $19/kuukausi
FatSecret Platform API Kyllä 5,000 pyyntöä/päivä 500,000+ Kyllä Ei Ilmainen (maininnalla)
Open Food Facts API Kyllä (täysin ilmainen) Kohtuullinen käyttö 3,000,000+ Kyllä Ei Ilmainen
Spoonacular Kyllä 150 pyyntöä/päivä 500,000+ Ei Ei Alkaen $29/kuukausi

Aloittaminen Nutrola API:n kanssa

Vaihe 1: Luo Kehittäjätili

Vieraile Nutrolan Kehittäjäportaalissa osoitteessa developers.nutrola.com luodaksesi ilmaisen tilin. Sähköpostivahvistuksen jälkeen saat API-avaimen hallintapaneelissasi. Ilmainen taso sisältää 500 pyyntöä päivässä, pääsyn koko ruokadatabasiin ja tekstipohjaisen ruokahakuun. AI-ruoan tunnistus päätepisteet ovat saatavilla maksullisilla tasoilla.

Vaihe 2: Todennus

Kaikki API-pyynnöt vaativat API-avaimesi pyyntöotsikossa. Avain välitetään X-Api-Key-otsikon kautta.

X-Api-Key: your_api_key_here

API käyttää vain HTTPS:ää. Kaikki HTTP-pyyntöihin vastataan 301-uudelleenohjauksella HTTPS:ään. Älä upota API-avaintasi asiakaspuolen koodiin; käytä aina välikäytävää pyyntöjen välittämiseen taustapalvelimesi kautta.

Vaihe 3: Perus-URL

Kaikki päätepisteet palvellaan osoitteesta:

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

Vastaukset ovat JSON-muodossa UTF-8-koodauksella. API noudattaa RESTful-käytäntöjä ja standardeja HTTP-tilakoodeja.

Keskeiset Päätepisteet

Etsi Ruokia

Hae ruokadatabasiasta tekstikyselyllä. Palauttaa vastaavat ruoat ravitsemustietoineen.

Päätepiste: GET /v1/foods/search

Parametrit:

Parametri Tyyppi Pakollinen Kuvaus
query merkkijono Kyllä Hakusana (esim. "grillattu kananrinta")
limit kokonaisluku Ei Tuloksia per sivu (oletus: 10, max: 50)
offset kokonaisluku Ei Sivutuksen offset (oletus: 0)
type merkkijono Ei Suodata tyypin mukaan: "yleinen", "brändätty", "ravintola"
language merkkijono Ei Kielen koodi (oletus: "en"). Tukee: en, es, de, fr, pt, ja, ko, zh

Esimerkkipyyntö (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"

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

Esimerkkipyyntö (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}`);
  });
});

Esimerkkivastaus:

{
  "foods": [
    {
      "id": "nf_001234",
      "name": "Chicken Breast, Grilled, Skinless",
      "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 grammaa",
      "alt_servings": [
        {
          "description": "1 keskikokoinen rinta (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
}

Hae Ruoka ID:n Mukaan

Hae yksityiskohtaisia ravitsemustietoja tietystä ruoka-aineesta sen Nutrola ID:n perusteella.

Päätepiste: GET /v1/foods/{food_id}

Esimerkki (cURL):

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

Vastaus sisältää täydellisen makro- ja mikro ravintoaineprofiilin (30+ ravintoainetta), kaikki saatavilla olevat annoskoot, ainesosalistan (brändättyjen ja ravintolaruokien osalta), allergeenilippuja, ruokavalio-tunnisteita (vegaaninen, gluteeniton, halal, kosher) ja lähdeviittauksen.

Hae Ruoka Viivakoodin Mukaan

Etsi pakattua ruokatuotetta sen UPC- tai EAN-viivakoodin perusteella.

Päätepiste: GET /v1/foods/barcode/{code}

Parametrit:

Parametri Tyyppi Pakollinen Kuvaus
code merkkijono Kyllä UPC (12-numeroista) tai EAN (13-numeroista) viivakoodi

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

Analysoi Luonnollista Kieltä

Tulkitse luonnollisen kielen ruokakuvaus ja palauta jäsennelty ravitsemustieto. Tämä päätepiste käsittelee määriä, yksiköitä, valmistustapoja ja useita tuotteita yhdessä merkkijonossa.

Päätepiste: POST /v1/foods/analyze

Pyyntöruumis:

{
  "query": "2 paistettua munaa viipale täysjyväleipää ja puoli avokadoa",
  "language": "en"
}

Esimerkki (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"Yhteensä: {result['total']['calories']} kcal")

Esimerkkivastaus:

{
  "items": [
    {
      "name": "Paistetut Munat",
      "quantity": 2,
      "unit": "keskikokoinen",
      "calories": 182,
      "protein_g": 12.2,
      "carbohydrates_g": 2.4,
      "fat_g": 13.6,
      "food_id": "nf_002891"
    },
    {
      "name": "Täysjyväleipä",
      "quantity": 1,
      "unit": "viipale",
      "calories": 81,
      "protein_g": 3.9,
      "carbohydrates_g": 13.8,
      "fat_g": 1.1,
      "food_id": "nf_003401"
    },
    {
      "name": "Avokado",
      "quantity": 0.5,
      "unit": "keskikokoinen",
      "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 Ruoan Tunnistus (Maksullinen Taso)

Lähetä ruokavalokuva AI-pohjaista tunnistusta ja ravitsemusanalyysiä varten.

Päätepiste: POST /v1/foods/recognize

Pyyntö: Multipart-lomakedata kuvatiedostolle tai JSON-ruumis base64-koodatulle kuvalle.

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

Vastaus sisältää tunnistetut ruokatuotteet luottamusasteineen, rajauslaatikon koordinaatit, arvioidut annoskoot, ravitsemustiedot per tuote ja koko aterian ravitsemusyhteenveto.

Käyttörajoitukset ja Virheiden Käsittely

Käyttörajoitukset Tasoittain

Taso Päivittäiset Pyyntöjä Pyyntöjä/Sekunti AI Tunnistus Hinta
Ilmainen 500 5 Ei sisälly $0
Aloittelija 5,000 10 100/päivä $29/kuukausi
Pro 50,000 25 1,000/päivä $99/kuukausi
Yritys Räätälöity Räätälöity Räätälöity Ota yhteyttä myyntiin

Käyttörajoitusotsikot

Jokaisessa vastauksessa on käyttörajoitusotsikot:

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

Virhevastaukset

API käyttää standardeja HTTP-tilakoodeja kuvaavilla virheruumiilla.

{
  "error": {
    "code": "rate_limit_exceeded",
    "message": "Päivittäinen pyyntöraja 500 ylitetty. Nollautuu klo 00:00 UTC.",
    "status": 429
  }
}
Tilakoodi Merkitys
200 Onnistui
400 Huono pyyntö (virheelliset parametrit)
401 Valtuuttamaton (virheellinen tai puuttuva API-avain)
404 Ruokaa ei löytynyt
429 Käyttöraja ylitetty
500 Sisäinen palvelinvirhe

Toteuta eksponentiaalinen taantuminen 429 ja 500 vastauksille. Yksinkertainen strategia on odottaa 1 sekunti ensimmäisen epäonnistumisen jälkeen, 2 sekuntia toisen jälkeen, 4 kolmannen jälkeen, enintään 60 sekuntia.

Käyttötapaukset ja Toteutustavat

Ateriasuunnitteluohjelmat

Rakenna ateriasuunnittelija, joka saavuttaa tavoitemakrot etsimällä ruokia, laskemalla ravitsemustotalit ja iteroinnin, kunnes ateriasuunnitelma täyttää käyttäjän tavoitteet.

def find_foods_for_target(target_protein, target_calories):
    """Etsi proteiinipitoisia ruokia kaloribudjetin puitteissa."""
    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"]
    # Suodata proteiini-kalori-suhteen mukaan
    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)

Kuntosoftan Integraatio

Yhdistä aktiivisuustietoihin näyttääksesi käyttäjille heidän kaloritasapainonsa. Käytä luonnollisen kielen päätepistettä nopeaan kirjaamiseen.

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

  // Tallenna tietokantaasi
  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;
}

Reseptin Ravintosisältö Laskuri

Laske reseptin ravintosisältö etsimällä jokainen ainesosa ja summaamalla arvot.

def analyze_recipe(ingredients):
    """
    ingredients: lista merkkijonoista kuten ["200g kananrinta", "1 kuppi ruskeaa riisiä", "2 rkl oliiviöljyä"]
    """
    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

# Esimerkkikäyttö
recipe = analyze_recipe([
    "200g kananrinta",
    "1 kuppi keitettyä ruskeaa riisiä",
    "2 ruokalusikallista oliiviöljyä",
    "1 kuppi höyrytettyä parsakaalia"
])
print(f"Reseptin yhteensä: {recipe['calories']} kcal, {recipe['protein_g']}g proteiinia")

Tutkimus ja Datan Analyysi

Akateemiseen tutkimukseen käytä API:a ravitsemusprofiilien rakentamiseen tutkimuspopulaatioille tai ravitsemusarviointityökalujen validoimiseen.

import pandas as pd

def build_nutrition_profile(food_log_df):
    """
    food_log_df: DataFrame, jossa on sarakkeet ['food_description', 'date']
    Palauttaa DataFramen, jossa on täydellinen ravitsemustieto jokaiselle merkinnälle.
    """
    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)

Vertailu Vaihtoehto-API:en Kanssa

USDA FoodData Central API

USDA API on täysin ilmainen ilman maksullisia tasoja, mikä tekee siitä oletusvalinnan akateemisiin ja hallituksen projekteihin. Se kattaa noin 370,000 ruokaa eri tietokannoista, kuten Foundation, SR Legacy, Survey (FNDDS) ja Branded. Vahvuuksia ovat se, että se on Yhdysvaltojen ruokakoostumustietojen kultastandardi, jota muut tietokannat viittaavat. Rajoituksia ovat luonnollisen kielen käsittelyn puute (ruokien nimien on vastattava tarkkoja tietokannan avaimia), viivakoodin haku, AI-tunnistus ja brändättyjen ruokien tiedot voivat olla epäjohdonmukaisia, koska ne perustuvat valmistajien ilmoituksiin. API-dokumentaatio on toiminnallinen, mutta ei kehittäjäystävällinen nykyaikaisilla standardeilla.

Paras käyttö: Akateeminen tutkimus, hallituksen projektit, sovellukset, jotka tarvitsevat auktoritatiivista viitetietoa ja joilla on kehittäjäresursseja käsitellä vastaavuuskompleksisuutta.

Nutritionix API

Nutritionixilla on yksi suurimmista ruokadatabasoista, joilla on vahva kattavuus ravintola- ja brändiruokien osalta. Sen luonnollisen kielen päätepiste on kypsä ja käsittelee monimutkaisia kyselyitä hyvin. Kuitenkin ilmainen taso on äärimmäisen rajoitettu 50 pyyntöön päivässä, ja maksulliset suunnitelmat alkavat $299 kuukaudessa, mikä tekee siitä monille itsenäisille kehittäjille ja pienille startup-yrityksille liian kalliiksi. API on hyvin dokumentoitu ja tukee sekä teksti- että viivakoodihakuja.

Paras käyttö: Hyvin rahoitetut sovellukset, jotka tarvitsevat laajaa ravintolaruokadatakattavuutta ja voivat maksaa hinnoittelusta.

Edamam API

Edamam tarjoaa ravitsemusanalyysiä, reseptianalyysiä ja ruokadatabasovelluksia. Ilmainen taso tarjoaa 100 pyyntöä päivässä, mikä on toimiva prototyyppien rakentamiseen. Edamamin vahvuus on sen reseptianalyysikyky, joka voi purkaa koko reseptin ainesosalistan ja palauttaa annoskohtaiset ravitsemustiedot. Tietokanta kattaa noin 900,000 ruokaa. Rajoituksia ovat satunnaiset epäjohdonmukaisuudet annoskoko-tiedoissa ja vähemmän intuitiivinen kehittäjäkokemus verrattuna uudempien API:en.

Paras käyttö: Reseptikeskeiset sovellukset, ateriasuunnittelutyökalut, jotka tarvitsevat reseptitason analyysiä.

FatSecret Platform API

FatSecret tarjoaa runsaan ilmaisen tason, jossa on 5,000 pyyntöä päivässä, mikä tekee siitä houkuttelevan bootstratuille projekteille. Kaupalla on se, että sinun on näytettävä FatSecretin brändäys ja maininta sovelluksessasi. Tietokanta kattaa noin 500,000 ruokaa kohtuullisella kansainvälisellä kattavuudella. API tukee OAuth 1.0 -todennusta, joka on vanhempi ja monimutkaisempi toteuttaa kuin API-avaimen tai OAuth 2.0 lähestymistavat.

Paras käyttö: Budjettiherkät projektit, jotka voivat mukautua mainintavaatimuksiin ja OAuth 1.0:aan.

Open Food Facts API

Open Food Facts on yhteisöohjattu, avoimen lähdekoodin ruokadatabasovellus, jossa on yli 3 miljoonaa tuotetta, pääasiassa pakattuja elintarvikkeita viivakooditietoineen. Se on täysin ilmainen ja avoin (Open Database License). API on suoraviivainen viivakoodihakuja varten, mutta vähemmän jäsennelty ravitsemushakuja varten. Tietojen laatu vaihtelee, koska panokset ovat yhteisön tuottamia, vaikka yhteisön tarkistusprosessi korjaa monia virheitä.

Paras käyttö: Pakattujen ruokien viivakoodin skannaus, projektit, jotka ovat linjassa avoimen lähdekoodin periaatteiden kanssa, kansainvälinen pakattujen ruokien kattavuus.

API Vertailu Yhteenveto

Ominaisuus Nutrola USDA Nutritionix Edamam FatSecret Open Food Facts
Ilmaisen tason päivittäinen raja 500 1,000/tunti 50 100 5,000 Rajoittamaton
Luonnollinen kielen käsittely Kyllä Ei Kyllä Kyllä Ei Ei
AI-ruoan tunnistus Kyllä (maksullinen) Ei Ei Ei Ei Ei
Viivakoodin haku Kyllä Ei Kyllä Ei Kyllä Kyllä
Monikielinen tuki 8 kieltä Englanti Englanti Englanti 16 kieltä 40+ kieltä
Reseptianalyysi NLP:n kautta Ei Kyllä Kyllä Ei Ei
Mikro ravintoaineiden syvyys 30+ ravintoainetta 60+ ravintoainetta 20+ ravintoainetta 25+ ravintoainetta 15+ ravintoainetta Vaihtelee
Valtuuttaminen API-avain API-avain API-avain Sovellustunnus + Avain OAuth 1.0 Ei (valinnainen)

Parhaat Käytännöt Ravinto-sovellusten Rakentamiseen

Välimuisti aggressiivisesti

Ravitsemustiedot yleisistä ruoista eivät muutu usein. Välimuistita ruokahakuja ja ravitsemustietoja taustapalvelimellasi 24-72 tunniksi vähentääksesi API-kutsuja ja parantaaksesi vastausaikoja.

Käsittele puuttuva data hienovaraisesti

Ei jokaisella ruoka-aineella ole täydellisiä mikro ravintotietoja. Suunnittele käyttöliittymäsi niin, että se ilmoittaa, kun tietoja ei ole saatavilla, sen sijaan että näyttäisi nollia, joita käyttäjät saattavat tulkita väärin "tämä ruoka sisältää nolla rautaa".

Vahvista käyttäjän syöte ennen API-kutsuja

Poista ylimääräiset välilyönnit, normalisoi yksiköt ja tarkista ruokien nimet ennen kuin lähetät ne API:lle. Hyvin muotoiltu kysely tuottaa paljon parempia tuloksia kuin kirjoitusvirheillä varustettu.

Käytä luonnollisen kielen päätepistettä aina kun mahdollista

Sen sijaan, että rakentaisit oman ruokien nimien jäsentäjän, käytä /foods/analyze-päätepistettä. Se käsittelee määriä ("2 kuppia"), valmistustapoja ("grillattu") ja yhdistettyjä kuvastoja ("täysjyväleipä voilla") paremmin kuin useimmat mukautetut toteutukset.

Kunnioita käyttörajoituksia

Toteuta asianmukainen taantumislokiikka. Ryhmittele toiminnot, jos mahdollista. Käytä webhooks- tai jonotusratkaisuja suurille volyymeille sen sijaan, että käyttäisit synkronisia API-kutsuja.

Viittaa tietolähteisiin

Hyvä käytäntö (ja joskus laillinen vaatimus riippuen API:sta) on viitata tietolähteeseen. Näytä "Ravitsemustiedot tarjoaa Nutrola" tai vastaava käyttämäsi API:n osalta.

Usein Kysytyt Kysymykset

Onko Nutrola API todella ilmainen?

Kyllä. Ilmainen taso tarjoaa 500 API-pyyntöä päivässä ilman kustannuksia, eikä luottokorttia vaadita. Tämä riittää prototyyppien, pienten sovellusten ja henkilökohtaisten projektien rakentamiseen. Ilmainen taso sisältää tekstihakuja, ruokien hakua ID:n mukaan, viivakoodin skannausta ja luonnollisen kielen analyysiä. AI-ruoan tunnistus kuvista on saatavilla maksullisilla tasoilla alkaen $29 kuukaudessa.

Minkälaista tietomuotoa API palauttaa?

Kaikki vastaukset ovat JSON-muodossa UTF-8-koodauksella. Ravitsemusarvot käyttävät standardiyksiköitä: kilokalorit energialle, grammoina makro ravintoaineille ja kuidulle, milligrammoina natriumille ja useimmille mineraaleille, sekä mikrogrammoina vitamiineille, missä se on sovellettavaa.

Voinko käyttää Nutrola API:a kaupallisessa sovelluksessa?

Kyllä. Sekä ilmaiset että maksulliset tasot sallivat kaupallisen käytön. Ilmainen taso vaatii Nutrolan maininnan sovelluksessasi. Maksulliset tasot sisältävät valkoisen merkin vaihtoehtoja, joissa mainintaa ei vaadita.

Kuinka usein ruokadatabas päivitetään?

Nutrolan ruokadatabas päivitetään jatkuvasti brändättyjen ja ravintolaruokien osalta, ja USDA-viitetiedot synkronoidaan 30 päivän kuluessa USDA:n julkaisuista. Suuret tietokannan päivitykset tapahtuvat kuukausittain, kun taas yksittäisiä ruoka-aineita voidaan päivittää päivittäin valmistajien muutosten, käyttäjien ilmoittamien korjausten ja uusien tuotteiden lanseerausten perusteella.

Tukeeko API kansainvälisiä ruokia?

Kyllä. Tietokanta kattaa ruokia yli 50 maasta, ja haku on saatavilla 8 kielellä (englanti, espanja, saksa, ranska, portugali, japani, korea ja kiina). Kansainvälinen ruokakattavuus on Nutrolan keskeinen prioriteetti, ja tietokanta sisältää alueellisia ruokia, paikallisia brändituotteita ja keittiökohtaisia valmistuksia, joita usein puuttuu Yhdysvaltojen keskeisistä tietokannoista.

Voinko käyttää API:a mobiilisovelluksessa?

Kyllä, mutta älä upota API-avaintasi suoraan mobiiliasiakasohjelman koodiin, sillä se voidaan purkaa sovelluksen binääristä. Sen sijaan, aseta kevyempi taustapalvelin, joka välittää pyyntöjä Nutrola API:lle ja käsittelee todennuksen. Tämä antaa myös kerroksen välimuistille ja pyyntöjen hallinnalle.

Onko olemassa webhook- tai suoratoimintavaihtoehtoa?

Tällä hetkellä API toimii pyyntö-vastausmallissa. Webhook-tuki asynkronisille ruokantunnistustuloksille (suurelle eräkäsittelylle) on suunnitelmissa vuodelle 2026. Tällä hetkellä erätoimintoja varten käytä /v1/foods/analyze/batch-päätepistettä, joka hyväksyy jopa 20 kohdetta yhdessä pyynnössä.

Yhteenveto

Ravitsemus-API:t ovat tehneet kehittäjille käytännölliseksi rakentaa ruokaa tuntevia sovelluksia ilman valtavaa taakkaa ylläpitää omaa ruokadatabasta. Nutrolan API tarjoaa runsaan ilmaisen tason, kattavan ruokakattavuuden kansainvälisistä keittiöistä, luonnollisen kielen ymmärryksen ja valinnaisen AI-ruoan tunnistuksen, mikä tekee siitä vahvan valinnan projekteille, jotka vaihtelevat viikonlopun prototyypeistä tuotantosovelluksiin.

Paras API projektillesi riippuu erityistarpeistasi: USDA auktoritatiivista viitetietoa varten, Nutritionix syvällistä ravintolaruokadatakattavuutta varten, Open Food Facts avoimen lähdekoodin viivakooditietoa varten tai Nutrola tasapainon ominaisuuksien, tarkkuuden ja kehittäjäkokemuksen välillä. Monissa tapauksissa useiden API:en yhdistäminen antaa parhaan kattavuuden. Aloita ilmaisella tasolla, validoi se käyttötapauksesi mukaan ja skaalaa siitä eteenpäin.

Valmis muuttamaan ravitsemusseurantaasi?

Liity tuhansien joukkoon, jotka ovat muuttaneet terveysmatkansa Nutrola avulla!