Nutrola Nutrition Data API: Πώς οι Προγραμματιστές Μπορούν να Πρόσβαση στη Βάση Δεδομένων Τροφίμων
Ένας οδηγός για προγραμματιστές σχετικά με το Nutrola Nutrition Data API. Μάθετε πώς να αποκτήσετε πρόσβαση στη verified βάση δεδομένων τροφίμων μας με πάνω από 3 εκατομμύρια καταχωρήσεις, εξερευνήστε τα endpoints, την αυθεντικοποίηση και τις πραγματικές περιπτώσεις χρήσης.
Αναπτύσσετε μια εφαρμογή υγείας, fitness ή τροφίμων; Ένα από τα μεγαλύτερα προβλήματα που θα αντιμετωπίσετε είναι τα δεδομένα διατροφής. Χρειάζεστε ακριβείς πληροφορίες για θερμίδες και μακροθρεπτικά συστατικά για χιλιάδες τρόφιμα, πρέπει να καλύπτετε διεθνή προϊόντα και να παραμένετε ενημερωμένοι καθώς οι κατασκευαστές αναδιαμορφώνουν τα προϊόντα τους.
Οι περισσότεροι προγραμματιστές ξεκινούν αντλώντας δεδομένα από δημόσιες κυβερνητικές βάσεις δεδομένων όπως το USDA FoodData Central. Αυτό σας δίνει μια βάση, αλλά δεν καλύπτει επώνυμα προϊόντα από 47 χώρες, γεύματα εστιατορίων ή τα χιλιάδες περιφερειακά τρόφιμα που καταναλώνουν οι πραγματικοί χρήστες καθημερινά. Η κάλυψη αυτών των κενών από μόνοι σας σημαίνει χρόνια εργασίας επιμέλειας δεδομένων.
Το Nutrola Nutrition Data API παρέχει στους προγραμματιστές πρόσβαση στην ίδια verified βάση δεδομένων τροφίμων που τροφοδοτεί την εφαρμογή μας — πάνω από 3 εκατομμύρια καταχωρήσεις, καλύπτοντας ωμά υλικά, επώνυμα προϊόντα, γεύματα εστιατορίων και σύνθετες συνταγές. Κάθε καταχώρηση έχει επαληθευτεί μέσω της πολυεπίπεδης διαδικασίας ποιοτικού ελέγχου μας, το ίδιο σύστημα που εμπιστεύονται πάνω από 2 εκατομμύρια χρήστες.
Αυτός ο οδηγός καλύπτει όλα όσα χρειάζεστε για να ξεκινήσετε την ανάπτυξη με το API μας: αρχιτεκτονική, αυθεντικοποίηση, endpoints, όρια ρυθμού και παραδείγματα κώδικα από τον πραγματικό κόσμο.
Επισκόπηση API
Το Nutrola Nutrition Data API είναι ένα RESTful JSON API. Κάνετε HTTP αιτήματα και λαμβάνετε JSON απαντήσεις. Δεν απαιτούνται SDK, αν και παρέχουμε βιβλιοθήκες πελάτη για Python, JavaScript και Swift για ευκολία.
Βασική Διεύθυνση URL
https://api.nutrola.com/v1
Όλα τα endpoints εξυπηρετούνται μέσω HTTPS. Απλές αιτήσεις HTTP απορρίπτονται.
Κύριες Δυνατότητες
| Δυνατότητα | Περιγραφή |
|---|---|
| Αναζήτηση Τροφίμων | Πλήρης αναζήτηση κειμένου σε πάνω από 3M καταχωρήσεις τροφίμων με φιλτράρισμα κατά κατηγορία, μάρκα και χώρα |
| Αναζήτηση Barcode | Λάβετε δεδομένα διατροφής με UPC, EAN ή άλλες μορφές barcode |
| Λεπτομέρειες Διατροφής | Πλήρης διατροφική ανάλυση για οποιοδήποτε τρόφιμο (70+ θρεπτικά συστατικά, συμπεριλαμβανομένων των μικροθρεπτικών) |
| Μεγέθη Μερίδας | Τυπικά και εναλλακτικά μεγέθη μερίδας με μετατροπές σε γραμμάρια |
| Ανάλυση Συνταγών | Υποβάλετε μια λίστα υλικών και λάβετε συνδυασμένα δεδομένα διατροφής |
| Κατηγορίες Τροφίμων | Περιηγηθείτε στην ιεραρχική ταξινόμηση κατηγοριών τροφίμων |
| Κατάλογος Μαρκών | Αναζητήστε και περιηγηθείτε στους κατασκευαστές επώνυμων τροφίμων |
| Αυτόματη Συμπλήρωση | Γρήγορες προτάσεις κατά την πληκτρολόγηση για διεπαφές αναζήτησης τροφίμων |
Μορφή Απόκρισης
Όλες οι απαντήσεις ακολουθούν μια συνεπή δομή:
{
"status": "success",
"data": { },
"meta": {
"request_id": "req_abc123",
"rate_limit_remaining": 245,
"rate_limit_reset": "2026-03-10T15:00:00Z"
}
}
Οι απαντήσεις σφάλματος περιλαμβάνουν έναν κωδικό σφάλματος αναγνώσιμο από μηχανή και ένα μήνυμα κατανοητό από άνθρωπο:
{
"status": "error",
"error": {
"code": "FOOD_NOT_FOUND",
"message": "Δεν υπάρχει καταχώρηση τροφίμου που να ταιριάζει με το παρεχόμενο ID.",
"request_id": "req_xyz789"
}
}
Αυθεντικοποίηση
Όλα τα αιτήματα API απαιτούν ένα API key που περνάει στην κεφαλίδα Authorization.
Λήψη API Key
- Δημιουργήστε έναν λογαριασμό προγραμματιστή στο developer.nutrola.com
- Μεταβείτε στην ενότητα API Keys στον πίνακα ελέγχου σας
- Δημιουργήστε ένα νέο κλειδί και καθορίστε τους τομείς που χρειάζεστε
- Αποθηκεύστε το κλειδί με ασφάλεια — θα εμφανιστεί μόνο μία φορά
Χρήση του API Key σας
Συμπεριλάβετε το κλειδί σε κάθε κεφαλίδα αιτήματος:
Authorization: Bearer YOUR_API_KEY
Παράδειγμα με curl:
curl -H "Authorization: Bearer ntr_live_abc123def456" \
https://api.nutrola.com/v1/foods/search?q=chicken+breast
Τομείς API Key
| Τομέας | Επίπεδο Πρόσβασης |
|---|---|
foods:read |
Αναζήτηση και ανάκτηση δεδομένων τροφίμων (το πιο κοινό) |
barcodes:read |
Αναζήτηση barcode |
recipes:analyze |
Ανάλυση διατροφής συνταγών |
brands:read |
Πρόσβαση στον κατάλογο μαρκών |
categories:read |
Ταξινόμηση κατηγοριών τροφίμων |
Τα κλειδιά μπορούν να περιοριστούν σε συγκεκριμένες δυνατότητες. Ένα κλειδί με μόνο foods:read δεν μπορεί να έχει πρόσβαση σε αναζητήσεις barcode. Αυτό ακολουθεί την αρχή της ελάχιστης εξουσίας — ζητήστε μόνο τους τομείς που χρειάζεται η εφαρμογή σας.
Κύρια Endpoints
Αναζήτηση Τροφίμων
Αναζητήστε τη βάση δεδομένων κατά όνομα, λέξη-κλειδί ή φράση.
GET /v1/foods/search
Παράμετροι:
| Παράμετρος | Τύπος | Απαιτείται | Περιγραφή |
|---|---|---|---|
q |
string | Ναι | Ερώτημα αναζήτησης (π.χ., "grilled chicken breast") |
category |
string | Όχι | Φιλτράρισμα κατά κατηγορία τροφίμου (π.χ., "dairy", "vegetables") |
brand |
string | Όχι | Φιλτράρισμα κατά όνομα μάρκας |
country |
string | Όχι | ISO 3166-1 alpha-2 κωδικός χώρας (π.χ., "US", "DE", "JP") |
verified_only |
boolean | Όχι | Επιστροφή μόνο καταχωρήσεων με verified πηγή δεδομένων (προεπιλογή: true) |
page |
integer | Όχι | Αριθμός σελίδας για σελιδοποίηση (προεπιλογή: 1) |
per_page |
integer | Όχι | Αποτελέσματα ανά σελίδα, μέγιστο 50 (προεπιλογή: 20) |
Παράδειγμα Αιτήματος:
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://api.nutrola.com/v1/foods/search?q=greek+yogurt&country=US&per_page=5"
Παράδειγμα Απόκρισης:
{
"status": "success",
"data": {
"results": [
{
"id": "food_8f2k9d",
"name": "Greek Yogurt, Plain, Nonfat",
"brand": null,
"category": "dairy",
"country": "US",
"verified": true,
"source": "USDA",
"nutrition_per_100g": {
"calories": 59,
"protein": 10.2,
"carbohydrates": 3.6,
"fat": 0.4,
"fiber": 0,
"sugar": 3.2,
"sodium": 36
},
"default_serving": {
"description": "1 container (170g)",
"grams": 170
}
}
],
"total_results": 342,
"page": 1,
"per_page": 5
}
}
Λήψη Λεπτομερειών Τροφίμου
Ανακτήστε το πλήρες διατροφικό προφίλ για ένα συγκεκριμένο τρόφιμο.
GET /v1/foods/{food_id}
Παράδειγμα Αιτήματος:
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://api.nutrola.com/v1/foods/food_8f2k9d"
Η λεπτομερή απόκριση περιλαμβάνει την πλήρη ανάλυση θρεπτικών συστατικών — πάνω από 70 θρεπτικά συστατικά, συμπεριλαμβανομένων όλων των βιταμινών, μετάλλων, αμινοξέων και προφίλ λιπαρών οξέων. Περιλαμβάνει επίσης όλα τα διαθέσιμα μεγέθη μερίδας και τις ισοδύναμες γραμμάρια.
Μερική Απόκριση (Κύρια Θρεπτικά Συστατικά):
{
"status": "success",
"data": {
"id": "food_8f2k9d",
"name": "Greek Yogurt, Plain, Nonfat",
"nutrition_per_100g": {
"calories": 59,
"protein": 10.2,
"carbohydrates": 3.6,
"fat": 0.4,
"fiber": 0,
"sugar": 3.2,
"saturated_fat": 0.1,
"monounsaturated_fat": 0.1,
"polyunsaturated_fat": 0,
"cholesterol": 5,
"sodium": 36,
"potassium": 141,
"calcium": 110,
"iron": 0.1,
"vitamin_a": 4,
"vitamin_c": 0,
"vitamin_d": 0
},
"serving_sizes": [
{ "description": "1 container (170g)", "grams": 170 },
{ "description": "1 cup (245g)", "grams": 245 },
{ "description": "1 tbsp (15g)", "grams": 15 },
{ "description": "100g", "grams": 100 }
],
"allergens": ["milk"],
"source": "USDA",
"source_id": "170903",
"last_verified": "2026-02-15",
"confidence_score": 0.98
}
}
Αναζήτηση Barcode
Αναζητήστε ένα προϊόν τροφίμου με το barcode του.
GET /v1/barcodes/{barcode}
Υποστηριζόμενες Μορφές: UPC-A, UPC-E, EAN-13, EAN-8
Παράδειγμα Αιτήματος:
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://api.nutrola.com/v1/barcodes/0049000006346"
Η απόκριση επιστρέφει το ίδιο αντικείμενο λεπτομερειών τροφίμου όπως το endpoint /foods/{food_id}, με πρόσθετα πεδία που σχετίζονται με το barcode, όπως barcode_format και regional_variants (ένα πίνακας με ID τροφίμων για το ίδιο προϊόν σε διαφορετικές χώρες, που μπορεί να έχει διαφορετικές συνθέσεις).
Ανάλυση Συνταγών
Υποβάλετε μια λίστα υλικών και λάβετε τη συνδυασμένη ανάλυση διατροφής.
POST /v1/recipes/analyze
Σώμα Αιτήματος:
{
"name": "Overnight Oats",
"servings": 2,
"ingredients": [
{ "food_id": "food_3k8m2n", "grams": 160 },
{ "food_id": "food_9p4q7r", "grams": 400 },
{ "food_id": "food_1a5b8c", "grams": 60 },
{ "food_id": "food_6d2e9f", "grams": 2, "description": "pinch of salt" }
]
}
Μπορείτε επίσης να υποβάλετε τα υλικά ως κείμενο για αυτόματη ανάλυση:
{
"name": "Overnight Oats",
"servings": 2,
"ingredients_text": "160g rolled oats, 400ml whole milk, 60g peanut butter, pinch of salt"
}
Απόκριση:
{
"status": "success",
"data": {
"name": "Overnight Oats",
"servings": 2,
"nutrition_per_serving": {
"calories": 425,
"protein": 18.5,
"carbohydrates": 42.3,
"fat": 21.2,
"fiber": 5.8
},
"nutrition_total": {
"calories": 850,
"protein": 37.0,
"carbohydrates": 84.6,
"fat": 42.4,
"fiber": 11.6
},
"ingredients_matched": [
{ "input": "160g rolled oats", "matched_food": "food_3k8m2n", "confidence": 0.97 },
{ "input": "400ml whole milk", "matched_food": "food_9p4q7r", "confidence": 0.99 },
{ "input": "60g peanut butter", "matched_food": "food_1a5b8c", "confidence": 0.96 },
{ "input": "pinch of salt", "matched_food": "food_6d2e9f", "confidence": 0.88 }
]
}
}
Αυτόματη Συμπλήρωση
Γρήγορες προτάσεις κατά την πληκτρολόγηση για την κατασκευή διεπαφών αναζήτησης.
GET /v1/foods/autocomplete?q={query}
Παράμετροι:
| Παράμετρος | Τύπος | Απαιτείται | Περιγραφή |
|---|---|---|---|
q |
string | Ναι | Μερικό ερώτημα αναζήτησης (ελάχιστο 2 χαρακτήρες) |
limit |
integer | Όχι | Μέγιστος αριθμός αποτελεσμάτων, 1-10 (προεπιλογή: 5) |
country |
string | Όχι | Προτεραιότητα στα αποτελέσματα από αυτή τη χώρα |
Οι χρόνοι απόκρισης είναι βελτιστοποιημένοι για διαδραστική χρήση — συνήθως κάτω από 50ms. Το endpoint αυτόματης συμπλήρωσης επιστρέφει απλοποιημένα αντικείμενα τροφίμων (ID, όνομα, μάρκα και κατηγορία μόνο) για γρήγορη απόδοση.
Όρια Ρυθμού και Τιμολόγηση
Δωρεάν Επίπεδο
Το δωρεάν επίπεδο έχει σχεδιαστεί για ανάπτυξη, δοκιμές και μικρές εφαρμογές:
| Όριο | Τιμή |
|---|---|
| Αιτήματα ανά ημέρα | 500 |
| Αιτήματα ανά λεπτό | 30 |
| Αποτελέσματα αναζήτησης τροφίμων ανά αίτημα | 20 |
| Ανάλυση συνταγών ανά ημέρα | 10 |
| Αναζητήσεις barcode ανά ημέρα | 100 |
Επίπεδο Ανάπτυξης
Για παραγωγικές εφαρμογές με μέτρια κίνηση:
| Όριο | Τιμή |
|---|---|
| Αιτήματα ανά ημέρα | 25,000 |
| Αιτήματα ανά λεπτό | 300 |
| Αποτελέσματα αναζήτησης τροφίμων ανά αίτημα | 50 |
| Ανάλυση συνταγών ανά ημέρα | 500 |
| Αναζητήσεις barcode ανά ημέρα | 5,000 |
| Τιμή | $49/μήνα |
Επιχειρηματικό Επίπεδο
Για εφαρμογές υψηλής κίνησης, λύσεις white-label και προσαρμοσμένες απαιτήσεις:
| Χαρακτηριστικό | Λεπτομέρειες |
|---|---|
| Αιτήματα ανά ημέρα | Προσαρμοσμένο (συνήθως 100K+) |
| Όρια ρυθμού | Προσαρμοσμένα |
| Αφιερωμένη υποστήριξη | Συμπεριλαμβάνεται |
| SLA | Εγγύηση 99.9% uptime |
| Προσαρμοσμένες εξαγωγές δεδομένων | Διαθέσιμες |
| Ειδοποιήσεις Webhook | Διαθέσιμες για ενημερώσεις δεδομένων |
| Τιμή | Επικοινωνήστε με τις πωλήσεις |
Οι πληροφορίες για τα όρια ρυθμού περιλαμβάνονται σε κάθε απόκριση API μέσω του αντικειμένου meta και στις κεφαλίδες HTTP απάντησης (X-RateLimit-Remaining, X-RateLimit-Reset).
Πραγματικές Περιπτώσεις Χρήσης
Εφαρμογές Fitness και Άσκησης
Αν αναπτύσσετε μια εφαρμογή fitness και θέλετε να προσθέσετε παρακολούθηση διατροφής χωρίς να δημιουργήσετε μια βάση δεδομένων τροφίμων από το μηδέν, το API της Nutrola είναι ο ταχύτερος δρόμος. Χρησιμοποιήστε τα endpoints αναζήτησης τροφίμων και barcode για να επιτρέψετε στους χρήστες να καταγράφουν γεύματα και το endpoint ανάλυσης συνταγών για προσαρμοσμένες καταχωρήσεις γευμάτων.
Πλατφόρμες Σχεδίασης Γευμάτων
Οι εφαρμογές σχεδίασης γευμάτων χρειάζονται ακριβή δεδομένα διατροφής για να δημιουργήσουν σχέδια που να επιτυγχάνουν συγκεκριμένους στόχους μακροθρεπτικών. Η λεπτομερής ανάλυση θρεπτικών συστατικών του API (70+ θρεπτικά συστατικά) επιτρέπει την ακριβή βελτιστοποίηση σχεδίων γευμάτων, όχι μόνο θερμίδων και μακροθρεπτικών αλλά και μικροθρεπτικών, αλλεργιογόνων και συμβατότητας με διατροφικούς περιορισμούς.
Υγειονομική Περίθαλψη και Τηλεϊατρική
Πλατφόρμες υγειονομικής περίθαλψης που παρακολουθούν τη διατροφή των ασθενών μπορούν να ενσωματωθούν με το API για να παρέχουν ακριβή καταγραφή τροφίμων μέσα στις υπάρχουσες διεπαφές τους. Οι verified πηγές δεδομένων (USDA, EFSA, απευθείας από κατασκευαστές) πληρούν τα πρότυπα ακρίβειας που απαιτούνται για την παρακολούθηση κλινικής διατροφής.
Εστιατόρια και Υπηρεσίες Τροφίμων
Πλατφόρμες παραγγελίας εστιατορίων μπορούν να χρησιμοποιήσουν το API για να εμφανίσουν πληροφορίες διατροφής για τα μενού. Το endpoint ανάλυσης συνταγών είναι ιδιαίτερα χρήσιμο εδώ — υποβάλετε τα υλικά ενός πιάτου και λάβετε τη πλήρη ανάλυση διατροφής χωρίς να υπολογίσετε χειροκίνητα κάθε στοιχείο.
Έρευνα και Ακαδημία
Ερευνητές διατροφής μπορούν να χρησιμοποιήσουν το API για να τυποποιήσουν την κωδικοποίηση τροφίμων σε διαιτητικές μελέτες. Τα συνεπή, verified δεδομένα μειώνουν το σφάλμα μέτρησης που πλήττει τις μελέτες που βασίζονται σε αναφερόμενα από τους συμμετέχοντες δεδομένα διατροφής.
Παραδείγματα Κώδικα
Python: Αναζήτηση Τροφίμου και Λήψη Λεπτομερειών Διατροφής
import requests
API_KEY = "ntr_live_your_key_here"
BASE_URL = "https://api.nutrola.com/v1"
headers = {
"Authorization": f"Bearer {API_KEY}"
}
# Αναζήτηση ενός τροφίμου
search_response = requests.get(
f"{BASE_URL}/foods/search",
headers=headers,
params={"q": "chicken breast grilled", "per_page": 3}
)
results = search_response.json()["data"]["results"]
for food in results:
print(f"{food['name']} - {food['nutrition_per_100g']['calories']} cal/100g")
# Λήψη πλήρων λεπτομερειών για το πρώτο αποτέλεσμα
food_id = results[0]["id"]
detail_response = requests.get(
f"{BASE_URL}/foods/{food_id}",
headers=headers
)
food_detail = detail_response.json()["data"]
nutrition = food_detail["nutrition_per_100g"]
print(f"\n{food_detail['name']}")
print(f"Θερμίδες: {nutrition['calories']}")
print(f"Πρωτεΐνη: {nutrition['protein']}g")
print(f"Υδατάνθρακες: {nutrition['carbohydrates']}g")
print(f"Λίπος: {nutrition['fat']}g")
print(f"Μεγέθη μερίδας: {food_detail['serving_sizes']}")
JavaScript: Ενσωμάτωση Σαρωτή Barcode
const API_KEY = "ntr_live_your_key_here";
const BASE_URL = "https://api.nutrola.com/v1";
async function lookupBarcode(barcode) {
const response = await fetch(
`${BASE_URL}/barcodes/${barcode}`,
{
headers: {
"Authorization": `Bearer ${API_KEY}`
}
}
);
if (!response.ok) {
if (response.status === 404) {
console.log("Το προϊόν δεν βρέθηκε στη βάση δεδομένων");
return null;
}
throw new Error(`Σφάλμα API: ${response.status}`);
}
const data = await response.json();
return data.data;
}
// Παράδειγμα χρήσης
const product = await lookupBarcode("0049000006346");
if (product) {
const serving = product.default_serving;
const factor = serving.grams / 100;
console.log(`${product.name} (${product.brand})`);
console.log(`Ανά ${serving.description}:`);
console.log(` Θερμίδες: ${Math.round(product.nutrition_per_100g.calories * factor)}`);
console.log(` Πρωτεΐνη: ${(product.nutrition_per_100g.protein * factor).toFixed(1)}g`);
console.log(` Υδατάνθρακες: ${(product.nutrition_per_100g.carbohydrates * factor).toFixed(1)}g`);
console.log(` Λίπος: ${(product.nutrition_per_100g.fat * factor).toFixed(1)}g`);
}
Swift: Δημιουργία Πεδίο Αυτόματης Συμπλήρωσης
import Foundation
class NutrolaAPI {
private let apiKey: String
private let baseURL = "https://api.nutrola.com/v1"
init(apiKey: String) {
self.apiKey = apiKey
}
func autocomplete(query: String, limit: Int = 5) async throws -> [FoodSuggestion] {
guard query.count >= 2 else { return [] }
var components = URLComponents(string: "\(baseURL)/foods/autocomplete")!
components.queryItems = [
URLQueryItem(name: "q", value: query),
URLQueryItem(name: "limit", value: String(limit))
]
var request = URLRequest(url: components.url!)
request.setValue("Bearer \(apiKey)", forHTTPHeaderField: "Authorization")
let (data, _) = try await URLSession.shared.data(for: request)
let response = try JSONDecoder().decode(AutocompleteResponse.self, from: data)
return response.data.suggestions
}
}
struct FoodSuggestion: Codable {
let id: String
let name: String
let brand: String?
let category: String
}
struct AutocompleteResponse: Codable {
let status: String
let data: AutocompleteData
}
struct AutocompleteData: Codable {
let suggestions: [FoodSuggestion]
}
Καλύτερες Πρακτικές Διαχείρισης Σφαλμάτων
Το API χρησιμοποιεί τυπικούς κωδικούς κατάστασης HTTP:
| Κωδικός Κατάστασης | Σημασία | Συνηθισμένος Λόγος |
|---|---|---|
| 200 | Επιτυχία | Η αίτηση ολοκληρώθηκε κανονικά |
| 400 | Κακή Αίτηση | Λείπει απαιτούμενη παράμετρος ή μη έγκυρη τιμή |
| 401 | Μη Εξουσιοδοτημένο | Μη έγκυρο ή λείπον API key |
| 403 | Απαγορευμένο | Το API key δεν έχει τον απαιτούμενο τομέα |
| 404 | Δεν Βρέθηκε | Το ID τροφίμου ή το barcode δεν είναι στη βάση δεδομένων |
| 429 | Περιορισμός Ρυθμού | Πάρα πολλές αιτήσεις; Ελέγξτε τις κεφαλίδες περιορισμού ρυθμού |
| 500 | Σφάλμα Διακομιστή | Εσωτερικό σφάλμα; Δοκιμάστε ξανά με εκθετική αναμονή |
Όταν λάβετε μια απόκριση 429, η κεφαλίδα Retry-After σας λέει πόσες δευτερόλεπτα να περιμένετε πριν δοκιμάσετε ξανά. Η εφαρμογή εκθετικής αναμονής για τις απαντήσεις 429 και 500 συνιστάται έντονα για παραγωγικές εφαρμογές.
Φρεσκάδα Δεδομένων και Ενημερώσεις
Η βάση δεδομένων της Nutrola ενημερώνεται συνεχώς. Οι καταχωρήσεις επώνυμων προϊόντων ανανεώνονται όταν οι κατασκευαστές αναφέρουν αλλαγές, συνήθως εντός 48 ωρών. Οι καταχωρήσεις κυβερνητικών βάσεων δεδομένων συγχρονίζονται τριμηνιαία όταν δημοσιεύονται νέες εκδόσεις.
Εάν η εφαρμογή σας αποθηκεύει προσωρινά τις απαντήσεις API (που συνιστούμε για απόδοση), προτείνουμε μια TTL cache 24 ωρών για τις απαντήσεις λεπτομερειών τροφίμων και 1 ώρα για τα αποτελέσματα αναζήτησης. Το πεδίο last_verified στις απαντήσεις λεπτομερειών τροφίμων σας λέει πότε η καταχώρηση επιβεβαιώθηκε τελευταία ως ακριβής.
Για πελάτες επιχειρήσεων, προσφέρουμε ειδοποιήσεις webhook όταν ενημερώνονται οι καταχωρήσεις τροφίμων, έτσι ώστε η εφαρμογή σας να μπορεί να ακυρώσει τα αποθηκευμένα δεδομένα προληπτικά αντί να περιμένει να λήξει η TTL cache.
Ξεκινώντας
- Εγγραφείτε στο developer.nutrola.com — διαρκεί λιγότερο από ένα λεπτό
- Δημιουργήστε ένα API key με τους τομείς που χρειάζεστε
- Κάντε την πρώτη σας αίτηση χρησιμοποιώντας τα παραδείγματα curl παραπάνω
- Εξερευνήστε τα διαδραστικά έγγραφα στο developer.nutrola.com/docs όπου μπορείτε να δοκιμάσετε endpoints απευθείας στον περιηγητή σας
- Εγγραφείτε στην κοινότητα προγραμματιστών στον διακομιστή Discord μας για υποστήριξη, αιτήματα χαρακτηριστικών και να δείτε τι χτίζουν άλλοι προγραμματιστές
Αν έχετε ερωτήσεις, αντιμετωπίζετε προβλήματα ή θέλετε να συζητήσετε μια επιχείρηση ενσωμάτωσης, επικοινωνήστε με την ομάδα σχέσεων προγραμματιστών μας στο api@nutrola.com.
Συχνές Ερωτήσεις
Είναι το Nutrola API δωρεάν στη χρήση;
Ναι, υπάρχει ένα δωρεάν επίπεδο που περιλαμβάνει 500 αιτήσεις ανά ημέρα. Αυτό είναι κατάλληλο για ανάπτυξη, δοκιμές και μικρές εφαρμογές. Για παραγωγικές εφαρμογές με υψηλότερη κίνηση, το επίπεδο Ανάπτυξης ξεκινά από $49 το μήνα με 25,000 καθημερινές αιτήσεις. Διαθέσιμα σχέδια επιχειρήσεων με προσαρμοσμένα όρια για περιπτώσεις υψηλής κίνησης.
Ποιες μορφές δεδομένων υποστηρίζει το API;
Το API χρησιμοποιεί αποκλειστικά JSON για αιτήματα και απαντήσεις. Όλα τα endpoints δέχονται τυπικές παραμέτρους ερωτήματος για αιτήματα GET και σώματα αιτήματος JSON για αιτήματα POST. Η κωδικοποίηση απάντησης είναι UTF-8, που χειρίζεται σωστά τα ονόματα τροφίμων σε όλες τις υποστηριζόμενες γλώσσες.
Πόσο ακριβή είναι τα δεδομένα διατροφής που παρέχονται από το API;
Κάθε καταχώρηση στη βάση δεδομένων Nutrola περνάει από μια πολυεπίπεδη διαδικασία επαλήθευσης που περιλαμβάνει επικύρωση πηγών κυβερνητικών δεδομένων, διασταύρωση δεδομένων κατασκευαστών, στατιστικό έλεγχο μέσω AI και ανθρώπινη εμπειρογνωμοσύνη. Το πρότυπο ακρίβειάς μας είναι 97.4% σε σύγκριση με εργαστηριακή ανάλυση, σε σύγκριση με μέσο όρο της βιομηχανίας 70-85% για βάσεις δεδομένων που βασίζονται σε πλήθος. Κάθε καταχώρηση τροφίμου περιλαμβάνει ένα πεδίο confidence_score που υποδεικνύει το επίπεδο σιγουριάς μας.
Μπορώ να χρησιμοποιήσω το API για να δημιουργήσω ένα εμπορικό προϊόν;
Ναι. Το API έχει σχεδιαστεί για εμπορική χρήση. Το δωρεάν επίπεδο μπορεί να χρησιμοποιηθεί για εμπορικά προϊόντα εντός των ορίων του. Τα σχέδια Ανάπτυξης και Επιχειρήσεων περιλαμβάνουν δικαιώματα εμπορικής χρήσης χωρίς περιορισμούς στον τύπο της εφαρμογής. Αναθεωρήστε τους όρους υπηρεσίας στο developer.nutrola.com για πλήρεις λεπτομέρειες.
Υποστηρίζει το API τρόφιμα εκτός Ηνωμένων Πολιτειών;
Ναι. Η βάση δεδομένων καλύπτει επώνυμα προϊόντα από 47 χώρες και γενικά τρόφιμα από πάνω από 120 κουζίνες. Χρησιμοποιήστε την παράμετρο country στα endpoints αναζήτησης για να δώσετε προτεραιότητα στα αποτελέσματα από μια συγκεκριμένη αγορά. Οι αναζητήσεις barcode αντιστοιχούν αυτόματα το προϊόν στη σωστή περιφερειακή σύνθεση.
Πώς να χειριστώ τρόφιμα που δεν είναι στη βάση δεδομένων;
Εάν μια αναζήτηση barcode επιστρέψει 404, μπορείτε να επιστρέψετε σε μια αναζήτηση κειμένου χρησιμοποιώντας το όνομα του προϊόντος. Εάν καμία προσέγγιση δεν βρει το τρόφιμο, μπορείτε να το υποβάλετε για προσθήκη μέσω της πύλης προγραμματιστών. Τα τρόφιμα που υποβάλλονται από συνεργάτες API προτεραιοποιούνται για επαλήθευση και συνήθως προστίθενται εντός 72 ωρών. Οι πελάτες επιχειρήσεων μπορούν να ζητήσουν μαζικές προσθήκες για μεγάλες καταλόγους προϊόντων.
Υπάρχουν SDK ή βιβλιοθήκες πελάτη διαθέσιμες;
Παρέχουμε επίσημες βιβλιοθήκες πελάτη για Python (μέσω pip: pip install nutrola), JavaScript/TypeScript (μέσω npm: npm install @nutrola/api) και Swift (μέσω Swift Package Manager). Αυτές οι βιβλιοθήκες χειρίζονται την αυθεντικοποίηση, τον περιορισμό ρυθμού, τις επαναλήψεις και την ανάλυση απαντήσεων. Διαθέσιμες είναι και βιβλιοθήκες που συντηρούνται από την κοινότητα για Go, Ruby και PHP.
Έτοιμοι να Μεταμορφώσετε την Παρακολούθηση της Διατροφής σας;
Εγγραφείτε σε χιλιάδες που έχουν μεταμορφώσει το ταξίδι της υγείας τους με το Nutrola!