Δωρεάν Nutrition API για Προγραμματιστές: Πώς να Δημιουργήσετε Εφαρμογές με τα Δεδομένα Τροφίμων της Nutrola

Ένας οδηγός για προγραμματιστές σχετικά με τη δημιουργία εφαρμογών που γνωρίζουν τη διατροφή με το δωρεάν Nutrition API της Nutrola. Καλύπτει endpoints, αυθεντικοποίηση, παραδείγματα κώδικα σε Python, JavaScript και cURL, όρια ρυθμού και συγκρίσεις με τα APIs των Nutritionix, Edamam και USDA.

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

Η δημιουργία μιας εφαρμογής που γνωρίζει τη διατροφή απαιτούσε παλαιότερα τη συγκέντρωση μιας δικής σας βάσης δεδομένων τροφίμων από το μηδέν, την άδεια ακριβών συνόλων δεδομένων ή την αναζήτηση αναξιόπιστων πηγών. Σήμερα, τα nutrition APIs προσφέρουν δομημένη, προγραμματιστική πρόσβαση σε ολοκληρωμένες βάσεις δεδομένων τροφίμων με δεδομένα για μακροθρεπτικά και μικροθρεπτικά συστατικά, καθώς και δεδομένα μερίδας, παραδιδόμενα σε καθαρή μορφή JSON. Αυτός ο οδηγός καθοδηγεί τους προγραμματιστές μέσα από το τοπίο των nutrition APIs, εστιάζοντας στο πώς να ξεκινήσετε με την δωρεάν έκδοση της Nutrola και πώς συγκρίνεται με τις εναλλακτικές.

Είτε δημιουργείτε μια εφαρμογή προγραμματισμού γευμάτων, έναν παρακολούθηση φυσικής κατάστασης, ένα εργαλείο έρευνας, έναν αναλυτή συνταγών ή έναν AI βοηθό που απαντά σε ερωτήσεις σχετικά με τη διατροφή, αυτός ο οδηγός σας παρέχει τις τεχνικές λεπτομέρειες για να επιλέξετε ένα API και να αρχίσετε να κάνετε αιτήματα σε λίγα λεπτά.

Επισκόπηση του Τοπίου των Nutrition APIs

Πριν εμβαθύνετε στην υλοποίηση, ακολουθεί μια σύγκριση των κύριων nutrition APIs που είναι διαθέσιμα στους προγραμματιστές το 2026.

API Δωρεάν Έκδοση Όριο Ρυθμού (Δωρεάν) Τρόφιμα στη Βάση Δεδομένων Σάρωση Barcode Αναγνώριση Τροφίμων (AI) Τιμολόγηση (Πληρωμή)
Nutrola API Ναι 500 αιτήματα/ημέρα 900,000+ Ναι Ναι (προαιρετικό) Από 29$/μήνα
USDA FoodData Central Ναι (εντελώς δωρεάν) 1,000/ώρα ανά κλειδί 370,000+ Όχι Όχι Δωρεάν
Nutritionix API Ναι (περιορισμένη) 50 αιτήματα/ημέρα 1,000,000+ Ναι Όχι Από 299$/μήνα
Edamam API Ναι 100 αιτήματα/ημέρα 900,000+ Όχι Όχι Από 19$/μήνα
FatSecret Platform API Ναι 5,000 αιτήματα/ημέρα 500,000+ Ναι Όχι Δωρεάν (με αναφορά)
Open Food Facts API Ναι (εντελώς δωρεάν) Λογική χρήση 3,000,000+ Ναι Όχι Δωρεάν
Spoonacular Ναι 150 αιτήματα/ημέρα 500,000+ Όχι Όχι Από 29$/μήνα

Ξεκινώντας με το Nutrola API

Βήμα 1: Δημιουργία Λογαριασμού Προγραμματιστή

Επισκεφθείτε το Nutrola Developer Portal στο developers.nutrola.com για να δημιουργήσετε έναν δωρεάν λογαριασμό. Μετά την επιβεβαίωση του email σας, θα λάβετε ένα API key στον πίνακα ελέγχου σας. Η δωρεάν έκδοση περιλαμβάνει 500 αιτήματα ανά ημέρα, πρόσβαση στη πλήρη βάση δεδομένων τροφίμων και αναζήτηση τροφίμων με κείμενο. Οι endpoints αναγνώρισης τροφίμων AI είναι διαθέσιμες σε πληρωμένες εκδόσεις.

Βήμα 2: Αυθεντικοποίηση

Όλα τα αιτήματα API απαιτούν το API key σας στην κεφαλίδα του αιτήματος. Το κλειδί μεταβιβάζεται μέσω της κεφαλίδας X-Api-Key.

X-Api-Key: your_api_key_here

Το API χρησιμοποιεί αποκλειστικά HTTPS. Όλα τα αιτήματα σε HTTP endpoints θα λάβουν μια 301 ανακατεύθυνση σε HTTPS. Μην ενσωματώνετε το API key σας στον κώδικα του πελάτη. Πάντα να προξενείτε αιτήματα μέσω του backend server σας.

Βήμα 3: Βασική Διεύθυνση URL

Όλα τα endpoints εξυπηρετούνται από:

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

Οι απαντήσεις είναι σε μορφή JSON με κωδικοποίηση UTF-8. Το API ακολουθεί τις RESTful συμβάσεις με τυπικούς κωδικούς κατάστασης HTTP.

Κύρια Endpoints

Αναζήτηση Τροφίμων

Αναζητήστε τη βάση δεδομένων τροφίμων με κείμενο. Επιστρέφει τα αντίστοιχα τρόφιμα με διατροφικά δεδομένα.

Endpoint: GET /v1/foods/search

Παράμετροι:

Παράμετρος Τύπος Απαιτείται Περιγραφή
query string Ναι Όρος αναζήτησης (π.χ., "κοτόπουλο ψητό")
limit integer Όχι Αποτελέσματα ανά σελίδα (προεπιλογή: 10, μέγιστο: 50)
offset integer Όχι Offset σελίδας (προεπιλογή: 0)
type string Όχι Φιλτράρισμα κατά τύπο: "κοινό", "επώνυμο", "εστιατόριο"
language string Όχι Κωδικός γλώσσας (προεπιλογή: "en"). Υποστηρίζει: en, es, de, fr, pt, ja, ko, zh

Παράδειγμα Αιτήματος (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"

Παράδειγμα Αιτήματος (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": "κοτόπουλο ψητό",
        "limit": 5
    }
)

data = response.json()
for food in data["foods"]:
    print(f"{food['name']}: {food['calories']} kcal ανά {food['serving_size']}{food['serving_unit']}")

Παράδειγμα Αιτήματος (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("κοτόπουλο ψητό").then(foods => {
  foods.forEach(food => {
    console.log(`${food.name}: ${food.calories} kcal ανά ${food.serving_size}${food.serving_unit}`);
  });
});

Παράδειγμα Απάντησης:

{
  "foods": [
    {
      "id": "nf_001234",
      "name": "Κοτόπουλο Ψητό, Χωρίς Δέρμα",
      "type": "κοινό",
      "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 γραμμάρια",
      "alt_servings": [
        {
          "description": "1 μέτριο στήθος (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
}

Λήψη Τροφίμου με ID

Ανακτήστε λεπτομερή διατροφικά δεδομένα για ένα συγκεκριμένο τρόφιμο με το Nutrola ID του.

Endpoint: GET /v1/foods/{food_id}

Παράδειγμα (cURL):

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

Η απάντηση περιλαμβάνει πλήρες προφίλ μακροθρεπτικών και μικροθρεπτικών συστατικών (30+ θρεπτικά συστατικά), όλα τα διαθέσιμα μεγέθη μερίδας, λίστα συστατικών (για επώνυμα και εστιατόρια), σημαίες αλλεργιογόνων, διατροφικές ετικέτες (vegan, χωρίς γλουτένη, halal, kosher) και αναφορά πηγής.

Λήψη Τροφίμου με Barcode

Αναζητήστε ένα συσκευασμένο προϊόν τροφίμου με το UPC ή EAN barcode του.

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

Παράμετροι:

Παράμετρος Τύπος Απαιτείται Περιγραφή
code string Ναι UPC (12-ψηφίο) ή EAN (13-ψηφίο) barcode

Παράδειγμα (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 ανά {food['serving_description']}")

Ανάλυση Εισόδου Φυσικής Γλώσσας

Αναλύστε μια περιγραφή τροφίμου σε φυσική γλώσσα και επιστρέψτε δομημένα διατροφικά δεδομένα. Αυτό το endpoint διαχειρίζεται ποσότητες, μονάδες, μεθόδους προετοιμασίας και πολλαπλά στοιχεία σε μία μόνο συμβολοσειρά.

Endpoint: POST /v1/foods/analyze

Σώμα Αιτήματος:

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

Παράδειγμα (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"Σύνολο: {result['total']['calories']} kcal")

Παράδειγμα Απάντησης:

{
  "items": [
    {
      "name": "Scrambled Eggs",
      "quantity": 2,
      "unit": "large",
      "calories": 182,
      "protein_g": 12.2,
      "carbohydrates_g": 2.4,
      "fat_g": 13.6,
      "food_id": "nf_002891"
    },
    {
      "name": "Whole Wheat Toast",
      "quantity": 1,
      "unit": "slice",
      "calories": 81,
      "protein_g": 3.9,
      "carbohydrates_g": 13.8,
      "fat_g": 1.1,
      "food_id": "nf_003401"
    },
    {
      "name": "Avocado",
      "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 (Πληρωμένη Έκδοση)

Υποβάλετε μια φωτογραφία τροφίμου για αναγνώριση και διατροφική ανάλυση με AI.

Endpoint: POST /v1/foods/recognize

Αίτημα: Multipart form data με το αρχείο εικόνας ή σώμα JSON με μια εικόνα κωδικοποιημένη σε base64.

Παράδειγμα (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")

Η απάντηση περιλαμβάνει τα ανιχνευμένα τρόφιμα με βαθμολογίες εμπιστοσύνης, συντεταγμένες bounding box, εκτιμώμενα μεγέθη μερίδας, διατροφική ανάλυση ανά στοιχείο και συνοπτική διατροφική ανάλυση του γεύματος.

Όρια Ρυθμού και Διαχείριση Σφαλμάτων

Όρια Ρυθμού ανά Έκδοση

Έκδοση Ημερήσια Αιτήματα Αιτήματα/Δευτερόλεπτο Αναγνώριση AI Τιμή
Δωρεάν 500 5 Δεν περιλαμβάνεται 0$
Starter 5,000 10 100/ημέρα 29$/μήνα
Pro 50,000 25 1,000/ημέρα 99$/μήνα
Enterprise Προσαρμοσμένο Προσαρμοσμένο Προσαρμοσμένο Επικοινωνήστε με τις πωλήσεις

Κεφαλίδες Όρων Ρυθμού

Κάθε απάντηση περιλαμβάνει κεφαλίδες όρων ρυθμού:

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

Απαντήσεις Σφαλμάτων

Το API χρησιμοποιεί τυπικούς κωδικούς κατάστασης HTTP με περιγραφικά σώματα σφαλμάτων.

{
  "error": {
    "code": "rate_limit_exceeded",
    "message": "Το ημερήσιο όριο αιτημάτων των 500 υπερβλήθηκε. Επαναρυθμίζεται στις 00:00 UTC.",
    "status": 429
  }
}
Κωδικός Κατάστασης Σημασία
200 Επιτυχία
400 Κακή αίτηση (μη έγκυρες παράμετροι)
401 Μη εξουσιοδοτημένο (μη έγκυρο ή λείπον API key)
404 Τρόφιμο δεν βρέθηκε
429 Υπερβολικό όριο ρυθμού
500 Εσωτερικό σφάλμα διακομιστή

Εφαρμόστε εκθετική αναμονή για 429 και 500 απαντήσεις. Μια απλή στρατηγική είναι να περιμένετε 1 δευτερόλεπτο μετά την πρώτη αποτυχία, 2 δευτερόλεπτα μετά τη δεύτερη, 4 μετά την τρίτη, μέχρι μέγιστο 60 δευτερόλεπτα.

Χρήσεις και Μοτίβα Υλοποίησης

Εφαρμογές Προγραμματισμού Γευμάτων

Δημιουργήστε έναν προγραμματιστή γευμάτων που επιτυγχάνει τους στόχους μακροθρεπτικών συστατικών αναζητώντας τρόφιμα, υπολογίζοντας τα διατροφικά σύνολα και επαναλαμβάνοντας μέχρι το σχέδιο γευμάτων να πληροί τους στόχους του χρήστη.

def find_foods_for_target(target_protein, target_calories):
    """Βρείτε τρόφιμα πλούσια σε πρωτεΐνες εντός του προϋπολογισμού θερμίδων."""
    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"]
    # Φιλτράρισμα κατά αναλογία πρωτεΐνης προς θερμίδες
    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)

Ενσωμάτωση Εφαρμογής Φυσικής Κατάστασης

Συνδυάστε με δεδομένα δραστηριότητας για να δείξετε στους χρήστες την ισορροπία θερμίδων τους. Χρησιμοποιήστε το endpoint φυσικής γλώσσας για γρήγορη καταγραφή.

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

  // Αποθήκευση στη βάση δεδομένων σας
  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;
}

Υπολογιστής Διατροφής Συνταγών

Υπολογίστε το διατροφικό περιεχόμενο μιας συνταγής αναζητώντας κάθε συστατικό και αθροίζοντας τις τιμές.

def analyze_recipe(ingredients):
    """
    ingredients: λίστα από συμβολοσειρές όπως ["200g κοτόπουλο στήθος", "1 φλιτζάνι καστανό ρύζι", "2 κουταλιές ελαιόλαδο"]
    """
    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

# Παράδειγμα χρήσης
recipe = analyze_recipe([
    "200g κοτόπουλο στήθος",
    "1 φλιτζάνι καστανό ρύζι μαγειρεμένο",
    "2 κουταλιές ελαιόλαδο",
    "1 φλιτζάνι ατμισμένο μπρόκολο"
])
print(f"Σύνολο συνταγής: {recipe['calories']} kcal, {recipe['protein_g']}g πρωτεΐνη")

Έρευνα και Ανάλυση Δεδομένων

Για ακαδημαϊκή έρευνα, χρησιμοποιήστε το API για να δημιουργήσετε διατροφικά προφίλ για πληθυσμούς μελέτης ή να επικυρώσετε εργαλεία διατροφικής αξιολόγησης.

import pandas as pd

def build_nutrition_profile(food_log_df):
    """
    food_log_df: DataFrame με στήλες ['food_description', 'date']
    Επιστρέφει DataFrame με πλήρη διατροφική ανάλυση ανά εγγραφή.
    """
    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)

Σύγκριση με Εναλλακτικά APIs

USDA FoodData Central API

Το USDA API είναι εντελώς δωρεάν χωρίς πληρωμένες εκδόσεις, καθιστώντας το την προεπιλεγμένη επιλογή για ακαδημαϊκά και κυβερνητικά έργα. Καλύπτει περίπου 370,000 τρόφιμα σε βάσεις δεδομένων Foundation, SR Legacy, Survey (FNDDS) και Branded. Τα πλεονεκτήματα περιλαμβάνουν ότι είναι το χρυσό πρότυπο για δεδομένα σύνθεσης τροφίμων στις Η.Π.Α., η αρχή στην οποία αναφέρονται άλλες βάσεις δεδομένων. Οι περιορισμοί περιλαμβάνουν την έλλειψη ανάλυσης φυσικής γλώσσας (πρέπει να ταιριάξετε τα ονόματα τροφίμων με τα συγκεκριμένα κλειδιά της βάσης δεδομένων), την έλλειψη αναζήτησης barcode, την έλλειψη αναγνώρισης AI και η δεδομένα τροφίμων μπορεί να είναι ασυνεπή επειδή εξαρτώνται από τις υποβολές των κατασκευαστών. Η τεκμηρίωση API είναι λειτουργική αλλά όχι φιλική προς τον προγραμματιστή με σύγχρονες προδιαγραφές.

Καλύτερο για: Ακαδημαϊκή έρευνα, κυβερνητικά έργα, εφαρμογές που χρειάζονται δεδομένα αναφοράς και διαθέτουν πόρους προγραμματιστή για να διαχειριστούν την πολυπλοκότητα αντιστοίχισης.

Nutritionix API

Το Nutritionix έχει μία από τις μεγαλύτερες βάσεις δεδομένων τροφίμων με ισχυρή κάλυψη εστιατορίων και επώνυμων τροφίμων. Το endpoint φυσικής γλώσσας είναι ώριμο και διαχειρίζεται καλά πολύπλοκες ερωτήσεις. Ωστόσο, η δωρεάν έκδοση είναι εξαιρετικά περιορισμένη στα 50 αιτήματα ανά ημέρα, και τα πληρωμένα σχέδια ξεκινούν από 299$/μήνα, γεγονός που το καθιστά απρόσιτο για πολλούς ανεξάρτητους προγραμματιστές και μικρές νεοφυείς επιχειρήσεις. Το API είναι καλά τεκμηριωμένο και υποστηρίζει τόσο αναζητήσεις κειμένου όσο και barcode.

Καλύτερο για: Εφαρμογές με καλή χρηματοδότηση που χρειάζονται εκτενή δεδομένα τροφίμων εστιατορίων και μπορούν να αντέξουν την τιμολόγηση.

Edamam API

Το Edamam προσφέρει APIs ανάλυσης διατροφής, ανάλυσης συνταγών και βάσης δεδομένων τροφίμων. Η δωρεάν έκδοση παρέχει 100 αιτήματα ανά ημέρα, που είναι λειτουργική για πρωτοτυπία. Η δύναμη του Edamam είναι η ικανότητα ανάλυσης συνταγών, η οποία μπορεί να αναλύσει τη λίστα συστατικών μιας πλήρους συνταγής και να επιστρέψει δεδομένα διατροφής ανά μερίδα. Η βάση δεδομένων καλύπτει περίπου 900,000 τρόφιμα. Οι περιορισμοί περιλαμβάνουν περιστασιακές ασυνέπειες στα δεδομένα μερίδας και μια λιγότερο διαισθητική εμπειρία προγραμματιστή σε σύγκριση με τα νεότερα APIs.

Καλύτερο για: Εφαρμογές που επικεντρώνονται σε συνταγές, εργαλεία προγραμματισμού γευμάτων που χρειάζονται ανάλυση σε επίπεδο συνταγής.

FatSecret Platform API

Το FatSecret προσφέρει μια γενναιόδωρη δωρεάν έκδοση με 5,000 αιτήματα ανά ημέρα, καθιστώντας το ελκυστικό για έργα που ξεκινούν. Το trade-off είναι ότι πρέπει να εμφανίσετε το branding και την αναφορά του FatSecret στην εφαρμογή σας. Η βάση δεδομένων καλύπτει περίπου 500,000 τρόφιμα με καλή διεθνή κάλυψη. Το API υποστηρίζει την αυθεντικοποίηση OAuth 1.0, η οποία είναι παλαιότερη και πιο περίπλοκη στην υλοποίηση από τις προσεγγίσεις API key ή OAuth 2.0.

Καλύτερο για: Έργα με περιορισμένο προϋπολογισμό που μπορούν να συμμορφωθούν με τις απαιτήσεις αναφοράς και OAuth 1.0.

Open Food Facts API

Το Open Food Facts είναι μια κοινωφελής, ανοιχτού κώδικα βάση δεδομένων τροφίμων με πάνω από 3 εκατομμύρια προϊόντα, κυρίως συσκευασμένα αγαθά με δεδομένα barcode. Είναι εντελώς δωρεάν και ανοιχτό (Open Database License). Το API είναι απλό για αναζητήσεις barcode αλλά λιγότερο δομημένο για ερωτήσεις αναζήτησης διατροφής. Η ποιότητα των δεδομένων ποικίλλει επειδή οι συνεισφορές είναι crowdsourced, αν και μια διαδικασία αναθεώρησης της κοινότητας εντοπίζει πολλά σφάλματα.

Καλύτερο για: Σάρωση barcode συσκευασμένων τροφίμων, έργα που ευθυγραμμίζονται με τις αρχές του ανοιχτού κώδικα, διεθνής κάλυψη συσκευασμένων τροφίμων.

Σύνοψη Σύγκρισης API

Χαρακτηριστικό Nutrola USDA Nutritionix Edamam FatSecret Open Food Facts
Δωρεάν όριο ημερήσιων αιτημάτων 500 1,000/ώρα 50 100 5,000 Απεριόριστο
Ανάλυση φυσικής γλώσσας Ναι Όχι Ναι Ναι Όχι Όχι
Αναγνώριση τροφίμων AI Ναι (πληρωμένο) Όχι Όχι Όχι Όχι Όχι
Αναζήτηση Barcode Ναι Όχι Ναι Όχι Ναι Ναι
Υποστήριξη πολλών γλωσσών 8 γλώσσες Αγγλικά Αγγλικά Αγγλικά 16 γλώσσες 40+ γλώσσες
Ανάλυση συνταγών Μέσω NLP Όχι Ναι Ναι Όχι Όχι
Βάθος μικροθρεπτικών 30+ θρεπτικά 60+ θρεπτικά 20+ θρεπτικά 25+ θρεπτικά 15+ θρεπτικά Ποικίλλει
Αυθεντικοποίηση API Key API Key API Key App ID + Key OAuth 1.0 Κανένα (προαιρετικό)

Καλές Πρακτικές για την Κατασκευή Εφαρμογών Διατροφής

Κάντε επιθετική προσωρινή αποθήκευση

Τα διατροφικά δεδομένα για κοινά τρόφιμα δεν αλλάζουν συχνά. Κάντε προσωρινή αποθήκευση των αποτελεσμάτων αναζήτησης τροφίμων και των αναζητήσεων διατροφής στον backend σας για 24 έως 72 ώρες για να μειώσετε τις κλήσεις API και να βελτιώσετε τους χρόνους απόκρισης.

Διαχειριστείτε τα ελλείποντα δεδομένα με ευγένεια

Όχι κάθε καταχώριση τροφίμου έχει πλήρη δεδομένα μικροθρεπτικών συστατικών. Σχεδιάστε το UI σας ώστε να υποδεικνύει πότε τα δεδομένα δεν είναι διαθέσιμα αντί να εμφανίζει μηδενικά, τα οποία οι χρήστες μπορεί να ερμηνεύσουν λανθασμένα ως "αυτό το τρόφιμο περιέχει μηδέν σίδηρο."

Επικυρώστε την είσοδο του χρήστη πριν από τις κλήσεις API

Αφαιρέστε τα κενά, κανονικοποιήστε τις μονάδες και ελέγξτε την ορθογραφία των ονομάτων τροφίμων πριν τα στείλετε στο API. Ένα καλά διαμορφωμένο query παράγει πολύ καλύτερα αποτελέσματα από ένα γεμάτο τυπογραφικά λάθη.

Χρησιμοποιήστε το endpoint φυσικής γλώσσας όταν είναι δυνατόν

Αντί να δημιουργήσετε τον δικό σας αναλυτή ονομάτων τροφίμων, χρησιμοποιήστε το endpoint /foods/analyze. Διαχειρίζεται καλύτερα τις ποσότητες ("2 φλιτζάνια"), τις μεθόδους προετοιμασίας ("ψητό") και τις σύνθετες περιγραφές ("ψωμί ολικής αλέσεως με βούτυρο") από τις περισσότερες προσαρμοσμένες υλοποιήσεις.

Σεβαστείτε τα όρια ρυθμού

Εφαρμόστε σωστή λογική αναμονής. Ομαδοποιήστε τις λειτουργίες όπου είναι δυνατόν. Χρησιμοποιήστε webhooks ή ουρές για υψηλού όγκου λειτουργίες αντί για συγχρονισμένες κλήσεις API.

Αναφέρετε τις πηγές δεδομένων

Καλή πρακτική (και μερικές φορές νομική απαίτηση ανάλογα με το API) είναι να αναφέρετε την πηγή των δεδομένων. Εμφανίστε "Δεδομένα διατροφής παρέχονται από την Nutrola" ή το ισοδύναμο για όποιο API χρησιμοποιείτε.

Συχνές Ερωτήσεις

Είναι το Nutrola API πραγματικά δωρεάν;

Ναι. Η δωρεάν έκδοση παρέχει 500 API αιτήματα ανά ημέρα χωρίς κόστος, χωρίς να απαιτείται πιστωτική κάρτα. Αυτό είναι αρκετό για πρωτοτυπίες, μικρές εφαρμογές και προσωπικά έργα. Η δωρεάν έκδοση περιλαμβάνει αναζήτηση κειμένου, αναζήτηση τροφίμου με ID, σάρωση barcode και ανάλυση φυσικής γλώσσας. Η αναγνώριση τροφίμων από εικόνες AI είναι διαθέσιμη σε πληρωμένες εκδόσεις που ξεκινούν από 29$/μήνα.

Σε ποια μορφή επιστρέφει το API τα δεδομένα;

Όλες οι απαντήσεις είναι σε μορφή JSON με κωδικοποίηση UTF-8. Οι διατροφικές τιμές χρησιμοποιούν τυπικές μονάδες: κιλοθερμίδες για ενέργεια, γραμμάρια για μακροθρεπτικά συστατικά και ίνες, χιλιοστόγραμμα για νάτριο και τα περισσότερα μέταλλα, και μικρογραμμάρια για βιταμίνες όπου είναι εφαρμόσιμο.

Μπορώ να χρησιμοποιήσω το Nutrola API σε εμπορική εφαρμογή;

Ναι. Και οι δωρεάν και οι πληρωμένες εκδόσεις επιτρέπουν εμπορική χρήση. Η δωρεάν έκδοση απαιτεί αναφορά της Nutrola στην εφαρμογή σας. Οι πληρωμένες εκδόσεις περιλαμβάνουν επιλογές white-label όπου δεν απαιτείται αναφορά.

Πόσο συχνά ενημερώνεται η βάση δεδομένων τροφίμων;

Η βάση δεδομένων τροφίμων της Nutrola ενημερώνεται συνεχώς για επώνυμα και εστιατόρια, με δεδομένα αναφοράς USDA συγχρονισμένα εντός 30 ημερών από τις κυκλοφορίες USDA. Οι κύριες ανανεώσεις της βάσης δεδομένων συμβαίνουν μηνιαία, ενώ οι μεμονωμένες καταχωρίσεις τροφίμων μπορεί να ενημερώνονται καθημερινά με βάση τις αλλαγές των κατασκευαστών, τις διορθώσεις που αναφέρονται από τους χρήστες και τις νέες κυκλοφορίες προϊόντων.

Υποστηρίζει το API διεθνή τρόφιμα;

Ναι. Η βάση δεδομένων καλύπτει τρόφιμα από περισσότερες από 50 χώρες, με αναζητήσεις διαθέσιμες σε 8 γλώσσες (Αγγλικά, Ισπανικά, Γερμανικά, Γαλλικά, Πορτογαλικά, Ιαπωνικά, Κορεατικά και Κινέζικα). Η διεθνής κάλυψη τροφίμων είναι προτεραιότητα για την Nutrola, και η βάση δεδομένων περιλαμβάνει περιφερειακά πιάτα, τοπικά επώνυμα προϊόντα και προετοιμασίες συγκεκριμένων κουζινών που συχνά λείπουν από τις βάσεις δεδομένων που επικεντρώνονται στις Η.Π.Α.

Μπορώ να χρησιμοποιήσω το API για μια κινητή εφαρμογή;

Ναι, αλλά μην ενσωματώνετε το API key σας απευθείας στον κώδικα του πελάτη κινητής εφαρμογής, καθώς μπορεί να εξαχθεί από το δυαδικό αρχείο της εφαρμογής. Αντίθετα, ρυθμίστε έναν ελαφρύ backend server που θα προξενεί τα αιτήματα στο Nutrola API και θα διαχειρίζεται την αυθεντικοποίηση. Αυτό σας δίνει επίσης μια στρώση για προσωρινή αποθήκευση και διαχείριση αιτημάτων.

Υπάρχει επιλογή webhook ή streaming;

Προς το παρόν, το API λειτουργεί με μοντέλο αιτήματος-απάντησης. Η υποστήριξη webhook για ασύγχρονα αποτελέσματα αναγνώρισης τροφίμων (για μεγάλες επεξεργασίες) είναι στο χάρτη πορείας για το 2026. Για τις ομαδικές λειτουργίες σήμερα, χρησιμοποιήστε το endpoint /v1/foods/analyze/batch, το οποίο δέχεται έως 20 στοιχεία σε μία μόνο αίτηση.

Συμπέρασμα

Τα nutrition APIs έχουν καταστήσει πρακτικό για τους προγραμματιστές να δημιουργούν εφαρμογές που γνωρίζουν τα τρόφιμα χωρίς τον τεράστιο φόρτο διαχείρισης μιας ιδιόκτητης βάσης δεδομένων τροφίμων. Το API της Nutrola προσφέρει μια γενναιόδωρη δωρεάν έκδοση, ολοκληρωμένη κάλυψη τροφίμων σε διεθνείς κουζίνες, κατανόηση φυσικής γλώσσας και προαιρετική αναγνώριση τροφίμων AI, καθιστώντας το μια ισχυρή επιλογή για έργα που κυμαίνονται από πρωτότυπα μέχρι παραγωγικές εφαρμογές.

Το καλύτερο API για το έργο σας εξαρτάται από τις συγκεκριμένες ανάγκες σας: USDA για δεδομένα αναφοράς, Nutritionix για βαθιά κάλυψη εστιατορίων, Open Food Facts για ανοιχτά δεδομένα barcode ή Nutrola για μια ισορροπία χαρακτηριστικών, ακρίβειας και εμπειρίας προγραμματιστή. Σε πολλές περιπτώσεις, ο συνδυασμός πολλών APIs σας δίνει την καλύτερη κάλυψη. Ξεκινήστε με την δωρεάν έκδοση, επικυρώστε την με βάση την περίπτωση χρήσης σας και κλιμακώστε από εκεί.

Έτοιμοι να Μεταμορφώσετε την Παρακολούθηση της Διατροφής σας;

Εγγραφείτε σε χιλιάδες που έχουν μεταμορφώσει το ταξίδι της υγείας τους με το Nutrola!