API بيانات التغذية من Nutrola: كيف يمكن للمطورين الوصول إلى قاعدة بيانات الطعام لدينا

دليل المطورين لواجهة برمجة تطبيقات Nutrola لبيانات التغذية. تعلم كيفية الوصول إلى قاعدة بيانات الطعام المعتمدة لدينا التي تحتوي على أكثر من 3 ملايين إدخال، واستكشاف نقاط النهاية، والمصادقة، وحالات الاستخدام الواقعية.

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

هل تعمل على بناء تطبيق صحي أو رياضي أو متعلق بالطعام؟ واحدة من أكبر التحديات التي ستواجهها هي بيانات التغذية. تحتاج إلى معلومات دقيقة عن السعرات الحرارية والماكرو لآلاف الأطعمة، وتحتاج إلى أن تشمل المنتجات الدولية، ويجب أن تبقى محدثة مع إعادة صياغة الشركات المصنعة لمنتجاتها.

يبدأ معظم المطورين بجمع البيانات من قواعد البيانات الحكومية المفتوحة مثل USDA FoodData Central. هذا يوفر لك أساسًا، لكنه لا يغطي المنتجات الماركة من 47 دولة، أو وجبات المطاعم، أو الآلاف من الأطعمة الإقليمية التي يستهلكها المستخدمون يوميًا. ملء هذه الفجوات بنفسك يعني سنوات من العمل في تنسيق البيانات.

تقدم واجهة برمجة تطبيقات Nutrola لبيانات التغذية للمطورين الوصول إلى نفس قاعدة بيانات الطعام المعتمدة التي تدعم تطبيقنا — أكثر من 3 ملايين إدخال، تغطي المكونات الخام، والمنتجات الماركة، ووجبات المطاعم، والوصفات المركبة. كل إدخال يتم التحقق منه من خلال عملية مراقبة الجودة متعددة الطبقات لدينا، وهي نفس النظام الذي يثق به أكثر من 2 مليون مستخدم.

يغطي هذا الدليل كل ما تحتاج لمعرفته لبدء البناء باستخدام واجهة برمجة التطبيقات الخاصة بنا: الهيكل، المصادقة، نقاط النهاية، حدود المعدل، وأمثلة على الشيفرات من العالم الحقيقي.

نظرة عامة على واجهة برمجة التطبيقات

واجهة برمجة تطبيقات Nutrola لبيانات التغذية هي واجهة برمجة تطبيقات JSON RESTful. تقوم بإجراء طلبات HTTP، وتحصل على استجابات JSON. لا حاجة لمكتبات SDK، على الرغم من أننا نقدم مكتبات عميل لـ Python وJavaScript وSwift للراحة.

عنوان URL الأساسي

https://api.nutrola.com/v1

تُقدم جميع نقاط النهاية عبر HTTPS. يتم رفض طلبات HTTP العادية.

القدرات الرئيسية

القدرة الوصف
بحث الطعام بحث نصي كامل عبر أكثر من 3 ملايين إدخال طعام مع تصفية حسب الفئة، الماركة، والدولة
البحث بالباركود الحصول على بيانات التغذية بواسطة UPC أو EAN أو تنسيقات باركود أخرى
تفاصيل التغذية ملف تغذية كامل لأي طعام (أكثر من 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": "لا توجد إدخال طعام يتطابق مع المعرف المقدم.",
    "request_id": "req_xyz789"
  }
}

المصادقة

تتطلب جميع طلبات واجهة برمجة التطبيقات مفتاح API يتم تمريره في رأس Authorization.

الحصول على مفتاح API

  1. أنشئ حساب مطور في developer.nutrola.com
  2. انتقل إلى قسم مفاتيح API في لوحة التحكم الخاصة بك
  3. أنشئ مفتاحًا جديدًا وحدد النطاقات التي تحتاجها
  4. احتفظ بالمفتاح بشكل آمن — سيتم عرضه مرة واحدة فقط

استخدام مفتاح API الخاص بك

قم بتضمين المفتاح في كل رأس طلب:

Authorization: Bearer YOUR_API_KEY

مثال باستخدام curl:

curl -H "Authorization: Bearer ntr_live_abc123def456" \
  https://api.nutrola.com/v1/foods/search?q=chicken+breast

نطاقات مفتاح API

النطاق مستوى الوصول
foods:read البحث واسترجاع بيانات الطعام (الأكثر شيوعًا)
barcodes:read البحث بالباركود
recipes:analyze تحليل التغذية للوصفات
brands:read الوصول إلى دليل الماركات
categories:read تصنيف فئات الطعام

يمكن تحديد مفاتيح النطاقات لقدرات محددة. مفتاح يحتوي فقط على foods:read لا يمكنه الوصول إلى عمليات البحث بالباركود. يتبع هذا مبدأ الحد الأدنى من الامتياز — اطلب فقط النطاقات التي يحتاجها تطبيقك.

نقاط النهاية الأساسية

بحث الطعام

ابحث في قاعدة البيانات حسب الاسم أو الكلمة الرئيسية أو العبارة.

GET /v1/foods/search

المعلمات:

المعلمة النوع مطلوب الوصف
q string نعم استعلام البحث (مثل "صدر دجاج مشوي")
category string لا تصفية حسب فئة الطعام (مثل "منتجات الألبان"، "الخضروات")
brand string لا تصفية حسب اسم الماركة
country string لا رمز الدولة ISO 3166-1 alpha-2 (مثل "US"، "DE"، "JP")
verified_only boolean لا إرجاع الإدخالات التي تحتوي على بيانات مصدر موثوقة فقط (افتراضي: 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": "زبادي يوناني، عادي، خالي من الدسم",
        "brand": null,
        "category": "منتجات الألبان",
        "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 حاوية (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": "زبادي يوناني، عادي، خالي من الدسم",
    "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 حاوية (170g)", "grams": 170 },
      { "description": "1 كوب (245g)", "grams": 245 },
      { "description": "1 ملعقة طعام (15g)", "grams": 15 },
      { "description": "100g", "grams": 100 }
    ],
    "allergens": ["حليب"],
    "source": "USDA",
    "source_id": "170903",
    "last_verified": "2026-02-15",
    "confidence_score": 0.98
  }
}

البحث بالباركود

ابحث عن منتج غذائي بواسطة باركوده.

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"

تُرجع الاستجابة نفس كائن تفاصيل الطعام كما في نقطة النهاية /foods/{food_id}، مع حقول إضافية خاصة بالباركود مثل barcode_format وregional_variants (مجموعة من معرفات الطعام لنفس المنتج في دول مختلفة، والتي قد تحتوي على تركيبات مختلفة).

تحليل الوصفات

قدّم قائمة بالمكونات واحصل على تحليل التغذية المجمعة.

POST /v1/recipes/analyze

جسم الطلب:

{
  "name": "شوفان بين عشية وضحاها",
  "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": "رشة ملح" }
  ]
}

يمكنك أيضًا تقديم المكونات كنص لعملية تحليل تلقائية:

{
  "name": "شوفان بين عشية وضحاها",
  "servings": 2,
  "ingredients_text": "160g شوفان، 400ml حليب كامل الدسم، 60g زبدة فول سوداني، رشة ملح"
}

الاستجابة:

{
  "status": "success",
  "data": {
    "name": "شوفان بين عشية وضحاها",
    "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 شوفان", "matched_food": "food_3k8m2n", "confidence": 0.97 },
      { "input": "400ml حليب كامل الدسم", "matched_food": "food_9p4q7r", "confidence": 0.99 },
      { "input": "60g زبدة فول سوداني", "matched_food": "food_1a5b8c", "confidence": 0.96 },
      { "input": "رشة ملح", "matched_food": "food_6d2e9f", "confidence": 0.88 }
    ]
  }
}

الإكمال التلقائي

اقتراحات سريعة أثناء الكتابة لبناء واجهات البحث.

GET /v1/foods/autocomplete?q={query}

المعلمات:

المعلمة النوع مطلوب الوصف
q string نعم استعلام البحث الجزئي (حد أدنى 2 حرف)
limit integer لا الحد الأقصى للنتائج، 1-10 (افتراضي: 5)
country string لا إعطاء الأولوية للنتائج من هذه الدولة

تكون أوقات الاستجابة محسّنة للاستخدام التفاعلي — عادةً أقل من 50 مللي ثانية. تُرجع نقطة النهاية للإكمال التلقائي كائنات طعام مبسطة (معرف، اسم، ماركة، وفئة فقط) للتقديم السريع.

حدود المعدل والتسعير

المستوى المجاني

تم تصميم المستوى المجاني للتطوير، والاختبار، والتطبيقات الصغيرة:

الحد القيمة
الطلبات في اليوم 500
الطلبات في الدقيقة 30
نتائج بحث الطعام لكل طلب 20
تحليل الوصفات في اليوم 10
عمليات البحث بالباركود في اليوم 100

مستوى النمو

للتطبيقات الإنتاجية ذات الحركة المعتدلة:

الحد القيمة
الطلبات في اليوم 25,000
الطلبات في الدقيقة 300
نتائج بحث الطعام لكل طلب 50
تحليل الوصفات في اليوم 500
عمليات البحث بالباركود في اليوم 5,000
السعر $49/month

المستوى المؤسسي

للتطبيقات ذات الحركة العالية، وحلول العلامات البيضاء، والمتطلبات المخصصة:

الميزة التفاصيل
الطلبات في اليوم مخصص (عادةً 100K+)
حدود المعدل مخصصة
دعم مخصص مشمول
SLA ضمان وقت التشغيل 99.9%
تصديرات بيانات مخصصة متاحة
إشعارات Webhook متاحة لتحديثات البيانات
السعر اتصل بالمبيعات

تتضمن معلومات حدود المعدل في كل استجابة API عبر كائن meta وفي رؤوس استجابة HTTP (X-RateLimit-Remaining, X-RateLimit-Reset).

حالات الاستخدام الواقعية

تطبيقات اللياقة البدنية والتمارين

إذا كنت تبني تطبيق لياقة وترغب في إضافة تتبع التغذية دون بناء قاعدة بيانات طعام من الصفر، فإن واجهة برمجة تطبيقات Nutrola هي أسرع طريق. استخدم نقاط نهاية بحث الطعام والباركود للسماح للمستخدمين بتسجيل الوجبات، ونقطة نهاية تحليل الوصفات لإدخالات الوجبات المخصصة.

منصات تخطيط الوجبات

تحتاج تطبيقات تخطيط الوجبات إلى بيانات تغذية دقيقة لإنشاء خطط تحقق أهداف ماكرو محددة. يمكّن تحليل العناصر الغذائية المفصل في واجهة برمجة التطبيقات (أكثر من 70 عنصر غذائي) من تحسين خطط الوجبات بدقة، ليس فقط السعرات الحرارية والماكرو ولكن العناصر الدقيقة، والمواد المسببة للحساسية، وتوافق القيود الغذائية.

الرعاية الصحية والتطبيب عن بُعد

يمكن لمنصات الرعاية الصحية التي تراقب تغذية المرضى التكامل مع واجهة برمجة التطبيقات لتوفير تسجيل دقيق للطعام ضمن واجهاتها الحالية. تلبي مصادر البيانات المعتمدة (USDA، EFSA، مباشرة من الشركات المصنعة) معايير الدقة المطلوبة لمراقبة التغذية السريرية.

المطاعم وخدمات الطعام

يمكن لمنصات طلب الطعام استخدام واجهة برمجة التطبيقات لعرض معلومات التغذية لعناصر القائمة. نقطة نهاية تحليل الوصفات مفيدة بشكل خاص هنا — قدم مكونات طبق واحصل على تحليل التغذية الكامل دون الحاجة لحساب كل عنصر يدويًا.

البحث والأكاديميا

يمكن للباحثين في التغذية استخدام واجهة برمجة التطبيقات لتوحيد ترميز الطعام في الدراسات الغذائية. تقلل البيانات المتسقة والمعتمدة من خطأ القياس الذي يعاني منه الدراسات التي تعتمد على بيانات التغذية المبلغ عنها من قبل المشاركين.

أمثلة على الشيفرات

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": "صدر دجاج مشوي", "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: تكامل مسح الباركود

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 Nutrola API {
    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]
}

أفضل ممارسات التعامل مع الأخطاء

تستخدم واجهة برمجة التطبيقات رموز الحالة HTTP القياسية:

رمز الحالة المعنى السبب الشائع
200 نجاح تم إكمال الطلب بشكل طبيعي
400 طلب غير صحيح معلمة مطلوبة مفقودة أو قيمة غير صالحة
401 غير مصرح مفتاح API غير صالح أو مفقود
403 محظور مفتاح API يفتقر إلى النطاق المطلوب
404 غير موجود معرف الطعام أو الباركود غير موجود في قاعدة البيانات
429 معدل محدود عدد كبير جدًا من الطلبات؛ تحقق من رؤوس حدود المعدل
500 خطأ في الخادم خطأ داخلي؛ أعد المحاولة مع زيادة زمن الانتظار

عند تلقي استجابة 429، يخبرك رأس Retry-After بعدد الثواني التي يجب الانتظار قبل إعادة المحاولة. يُوصى بشدة بتنفيذ زيادة زمن الانتظار للتعامل مع استجابات 429 و500 في التطبيقات الإنتاجية.

تحديثات البيانات وحداثتها

تُحدث قاعدة بيانات Nutrola باستمرار. يتم تحديث إدخالات المنتجات الماركة عندما تبلغ الشركات المصنعة عن تغييرات، عادةً في غضون 48 ساعة. يتم مزامنة إدخالات قاعدة البيانات الحكومية ربع سنويًا عند نشر إصدارات جديدة.

إذا كانت تطبيقك يقوم بتخزين استجابات API (وهو ما نوصي به من أجل الأداء)، نقترح فترة صلاحية ذاكرة التخزين المؤقت تبلغ 24 ساعة لاستجابات تفاصيل الطعام وساعة واحدة لنتائج البحث. يخبرك حقل last_verified في استجابات تفاصيل الطعام بموعد تأكيد الإدخال على دقته.

بالنسبة للعملاء المؤسسيين، نقدم إشعارات Webhook عند تحديث إدخالات الطعام، بحيث يمكن لتطبيقك إبطال البيانات المخزنة مسبقًا بشكل استباقي بدلاً من الانتظار حتى تنتهي فترة صلاحية التخزين المؤقت.

البدء

  1. سجل في developer.nutrola.com — يستغرق أقل من دقيقة
  2. أنشئ مفتاح API مع النطاقات التي تحتاجها
  3. قم بإجراء طلبك الأول باستخدام أمثلة curl أعلاه
  4. استكشف الوثائق التفاعلية في developer.nutrola.com/docs حيث يمكنك اختبار نقاط النهاية مباشرة في متصفحك
  5. انضم إلى مجتمع المطورين على خادم Discord الخاص بنا للدعم، وطلبات الميزات، ولرؤية ما يبنيه المطورون الآخرون

إذا كانت لديك أسئلة، أو واجهت مشاكل، أو ترغب في مناقشة تكامل مؤسسي، تواصل مع فريق علاقات المطورين لدينا على api@nutrola.com.

الأسئلة الشائعة

هل واجهة برمجة تطبيقات Nutrola مجانية للاستخدام؟

نعم، هناك مستوى مجاني يتضمن 500 طلب يوميًا. هذا مناسب للتطوير، والاختبار، والتطبيقات الصغيرة. بالنسبة للتطبيقات الإنتاجية ذات الحركة المرورية العالية، يبدأ مستوى النمو بسعر 49 دولارًا شهريًا مع 25,000 طلب يوميًا. تتوفر خطط مؤسسية مع حدود مخصصة لحالات الاستخدام ذات الحركة العالية.

ما هي تنسيقات البيانات التي تدعمها واجهة برمجة التطبيقات؟

تستخدم واجهة برمجة التطبيقات JSON حصريًا لكل من الطلبات والاستجابات. تقبل جميع نقاط النهاية معلمات استعلام قياسية لطلبات GET وأجسام طلب JSON لطلبات POST. ترميز الاستجابة هو UTF-8، مما يعالج أسماء الطعام بشكل صحيح في جميع اللغات المدعومة.

ما مدى دقة بيانات التغذية المقدمة من واجهة برمجة التطبيقات؟

تمر كل إدخال في قاعدة بيانات Nutrola بعملية تحقق متعددة الطبقات تشمل التحقق من المصادر الحكومية، ومراجعة بيانات الشركات المصنعة، والتحقق الإحصائي المدعوم بالذكاء الاصطناعي، ومراجعة الخبراء البشريين. معيار دقتنا هو 97.4% مقارنة بالتحليل المختبري، مقارنة بمتوسط الصناعة الذي يتراوح بين 70-85% لقواعد البيانات المعتمدة على الحشود. تتضمن كل إدخال طعام حقل confidence_score يشير إلى مستوى يقيننا.

هل يمكنني استخدام واجهة برمجة التطبيقات لبناء منتج تجاري؟

نعم. تم تصميم واجهة برمجة التطبيقات للاستخدام التجاري. يمكن استخدام المستوى المجاني للمنتجات التجارية ضمن حدود معدلاته. تشمل خطط النمو والمؤسسات حقوق الاستخدام التجاري دون قيود على نوع التطبيق. راجع شروط الخدمة في developer.nutrola.com لمزيد من التفاصيل.

هل تدعم واجهة برمجة التطبيقات الأطعمة من خارج الولايات المتحدة؟

نعم. تغطي قاعدة البيانات المنتجات الماركة من 47 دولة والأطعمة العامة من أكثر من 120 مطبخًا. استخدم معلمة country على نقاط النهاية للبحث لإعطاء الأولوية للنتائج من سوق معين. تتطابق عمليات البحث بالباركود تلقائيًا مع المنتج إلى التركيبة الإقليمية الصحيحة.

كيف أتعامل مع الأطعمة التي ليست في قاعدة البيانات؟

إذا أعاد البحث بالباركود استجابة 404، يمكنك الرجوع إلى بحث نصي باستخدام اسم المنتج. إذا لم يجد أي من الطريقتين الطعام، يمكنك تقديمه للإضافة من خلال بوابة المطور. تُعطى الأولوية للأطعمة المقدمة من قبل شركاء API للتحقق وعادةً ما تتم إضافتها في غضون 72 ساعة. يمكن للعملاء المؤسسيين طلب إضافات جماعية لكاتالوجات المنتجات الكبيرة.

هل هناك مكتبات SDK أو مكتبات عميل متاحة؟

نقدم مكتبات عميل رسمية لـ Python (عبر pip: pip install nutrola)، وJavaScript/TypeScript (عبر npm: npm install @nutrola/api)، وSwift (عبر Swift Package Manager). تتعامل هذه المكتبات مع المصادقة، وحدود المعدل، وإعادة المحاولة، وتحليل الاستجابة. تتوفر مكتبات مدعومة من المجتمع لـ Go وRuby وPHP.

مستعد لتحويل تتبع تغذيتك؟

انضم إلى الآلاف الذين حولوا رحلتهم الصحية مع Nutrola!