Skip to content

NFL API डॉक्यूमेंटेशन

नियमों के हिसाब से न्यूट्रिशन लेबल बनाना, रेसिपी मैनेज करना और प्रोग्राम के हिसाब से न्यूट्रिशन डेटा निकालना। आज हर उस अकाउंट के लिए दो चीज़ें काम करती हैं जो इसके लिए क्वालिफाई करता है: लाइव लेबल एम्बेड और सर्वर-रेंडर किए गए निर्यातREST रिसोर्स API बिज़नेस प्लान पर अर्ली एक्सेस में है।

API सिर्फ़ JSON लेता है और रिटर्न करता है (लेबल रेंडर एंडपॉइंट बाइनरी फ़ाइल रिटर्न करते हैं).

परिभाषा

https://nutritionfactlabel.com/api/v1

एपीआई समापन बिंदु

सभी REST रिसोर्स एक वर्शन वाले बेस URL के अंदर रहते हैं। ब्रेकिंग चेंज हमेशा नए वर्शन प्रीफ़िक्स के अंदर ही शिप होते हैं। अर्ली एक्सेस के दौरान आपका वेलकम ईमेल आपकी कीज़ के लिए एक्टिव बेस URL को कन्फर्म करता है।

रिसोर्स URL पैटर्न का सारांश

/v1/recipes
/v1/recipes/{RECIPE_ID}
/v1/recipes/{RECIPE_ID}/label.{svg|png|pdf}
/v1/ingredients
/v1/ingredients/{INGREDIENT_ID}
/v1/analyze

प्रमाणीकरण

हर रिक्वेस्ट को अपनी सीक्रेट की से ऑथेंटिकेट करें Authorization हेडर. कीज़ आपके अकाउंट तक सीमित होती हैं और आपके प्लान के अधिकार रखती हैं: ऐप की तरह ही सर्वर-साइड गेट.

चाबियाँ गुप्त रखें। इन्हें कभी भी क्लाइंट-साइड कोड में शिप न करें; अपने बैकएंड के ज़रिए प्रॉक्सी करें। लीक हुई की को तुरंत सपोर्ट के ज़रिए रोटेट करें।

उदाहरण अनुरोध

curl https://nutritionfactlabel.com/api/v1/recipes \
  -H 'Authorization: Bearer nfl_live_9f30c2...'

दर सीमा

चीज़ों को सही और स्थिर रखने के लिए: प्रति मिनट 60 अनुरोध प्रति की; लेबल रेंडर अतिरिक्त रूप से सीमित है 5 समवर्ती; 1 MB पर रिक्वेस्ट बॉडीज़। एक लिमिट से ज़्यादा होने पर आपको 429 के साथ Retry-After हेडर.

उदाहरण प्रतिक्रिया

HTTP/2 429 Too Many Requests
Retry-After: 22

{ "error": { "code": "rate_limited",
  "message": "Try again in 22 seconds." } }

लाइव लेबल एम्बेड अब उपलब्ध है

किसी भी वेबसाइट पर हमेशा अपडेटेड लेबल दिखाएं, कोई API की नहीं। जेनरेटर में रेसिपी पर एम्बेड चालू करें (रेसिपी रो → एम्बेड) को अपना पब्लिक टोकन पाने के लिए।

स्क्रिप्ट टैग अपनी हाइट को अपने आप साइज़ करता है; NFL में रेसिपी और एम्बेड अपडेट दिखाने वाले हर पेज को अपडेट करता है। प्रोफेशनल और बिज़नेस प्लान; एम्बेड को डिसेबल करने से टोकन तुरंत खत्म हो जाता है।

परिभाषा: स्क्रिप्ट टैग

<script src="https://nutritionfactlabel.com/embed.js"
        data-label="YOUR_EMBED_TOKEN"
        data-width="290"></script>

विकल्प: iframe

<iframe
  src="https://nutritionfactlabel.com/embed/TOKEN"
  width="290" height="560" frameborder="0"
  title="Nutrition Facts"></iframe>

लेबल निर्यात अब उपलब्ध है

SVG / PNG / PDF को ऐप के इंजन से ही सर्वर-साइड पर रेंडर किया जाता है, जिसमें प्लान के नियम (फ़ॉर्मेट, फ़ाइल टाइप, वॉटरमार्क) शुरू से ही लागू होते हैं। API कीज़ के आम तौर पर उपलब्ध होने तक इसे सीधे अपने सेशन टोकन से कॉल करें। बाइनरी फ़ाइल लौटाता है, या 403 आपकी योजना के बाहर।

इन-ऐप एक्सपोर्ट के साथ पैरिटी पर दो नोट्स। ऐप ब्राउज़र में रेंडर होता है, इसलिए जब आपको बिना ब्राउज़र के लेबल बनाना हो तो इस एंडपॉइंट का इस्तेमाल करें। और jpg अभी PNG बाइट्स देता है, जबकि eps और ai ये सिर्फ़ एक्सपोर्ट के लिए फ़ॉर्मैट हैं, जिन्हें एंडपॉइंट सर्व नहीं करता है।

परिभाषा

POST /functions/v1/export-label
Authorization: Bearer {ACCESS_TOKEN}
Content-Type: application/json

{
  "fileType": "pdf",
  "data": { ...label state },
  "extra": { }
}

व्यंजनों अर्ली एक्सेस · बिज़नेस

मुख्य उद्देश्य: सामग्री, सर्विंग और label_format (114 देशों में 152 प्रारूप) गणना की गई label: न्यूट्रिएंट्स को ज्यूरिस्डिक्शन, इंग्रीडिएंट स्टेटमेंट, एलर्जन के हिसाब से राउंड किया गया।

मुख्य विशेषताएँ: id, name, servings, serving_weight_g, label_format, label (गणना), embed_enabled, टाइमस्टैम्प।

परिभाषा

GET    /v1/recipes
POST   /v1/recipes
GET    /v1/recipes/{ID}
PUT    /v1/recipes/{ID}
DELETE /v1/recipes/{ID}
GET    /v1/recipes/{ID}/label.pdf

उदाहरण प्रतिक्रिया

{
  "id": "rcp_2m4k9q",
  "name": "Chocolate Chip Cookies",
  "servings": 12,
  "serving_weight_g": 28,
  "label_format": "standard",
  "label": {
    "calories": 140,
    "total_fat_g": 7,
    "allergens": ["wheat","milk","soy"],
    ...
  },
  "embed_enabled": false
}

सामग्री अर्ली एक्सेस · बिज़नेस

प्रति 100 g न्यूट्रिशन, एलर्जन स्पीशीज़ और ऑप्शनल कॉस्टिंग के साथ कस्टम इंग्रीडिएंट्स, ऐप में बनाए गए इंग्रीडिएंट्स जैसे ही, जेनरेटर में सर्च किए जा सकते हैं। USDA इंग्रीडिएंट्स का पता इस तरह है usda:{fdc_id}; तय करना "archived": true आर्काइव करने के लिए (डिफ़ॉल्ट रूप से लिस्ट से बाहर रखा गया)।

परिभाषा

GET    /v1/ingredients
POST   /v1/ingredients
GET    /v1/ingredients/{ID}
PUT    /v1/ingredients/{ID}
DELETE /v1/ingredients/{ID}

उदाहरण अनुरोध

POST /v1/ingredients

{
  "name": "Organic almond flour",
  "nutrients_per_100g": {
    "calories": 571, "total_fat_g": 50,
    "protein_g": 21, "dietary_fiber_g": 10
  },
  "allergens": ["tree_nuts"],
  "cost_per_unit": 12.5, "unit": "kg"
}

पोषण विश्लेषण अर्ली एक्सेस · बिज़नेस

बिना रेसिपी सेव किए वन-शॉट एनालिसिस। वही रिटर्न देता है label वस्तु प्लस claims: पोषक तत्व-सामग्री का दावा है जिसके लिए मान योग्य हैं (उदाहरण के लिए "फाइबर का अच्छा स्रोत") उनके CFR साइटेशन के साथ। बेमेल नामों का USDA से मिलान किया जाता है।

उदाहरण अनुरोध

POST /v1/analyze

{
  "label_format": "standard",
  "servings": 12,
  "serving_weight_g": 28,
  "ingredients": [
    { "ingredient_id": "usda:173410", "grams": 120 },
    { "name": "brown sugar", "grams": 80 }
  ]
}

त्रुटियाँ

पारंपरिक HTTP कोड; एरर बॉडी JSON होती हैं जिनमें स्टेबल मशीन कोड और ह्यूमन मैसेज होता है। 400 विकृत इनपुट · 401 खराब कुंजी · 403 आपकी योजना के बाहर · 404 नहीं मिला / आपका नहीं है · 429 दर सीमित · 500 बैकऑफ़ के साथ पुनः प्रयास करें।

उदाहरण प्रतिक्रिया

{
  "error": {
    "code": "plan_format_not_allowed",
    "message": "The 'eu-1169' label format
      requires the Professional plan."
  }
}

पहुँच प्राप्त करना

एम्बेड के लिए किसी की की ज़रूरत नहीं है; इसे रेसिपी के हिसाब से इनेबल करें (प्रोफेशनल+)। REST API अर्ली एक्सेस इसमें शामिल है। व्यापार योजना: ईमेल support@nutritionfactlabel.com आपके अकाउंट ईमेल से और कीज़ एक बिज़नेस डे के अंदर प्रोविज़न कर दी जाती हैं।

क्या आपको कोई एंडपॉइंट चाहिए? हमें बताएं। अर्ली-एक्सेस पार्टनर रोडमैप को आगे बढ़ाएंगे।

व्यवसाय में अपग्रेड करें