Python के लिए SMLLR एनालिटिक्स API: एक डेवलपर गाइड
Python के साथ बनाएं। जानें कि SMLLR के QR कोड, कैंपेन, और क्लाइंट स्कैन एनालिटिक्स को रिपोर्टिंग API के ज़रिए अपने Python एप्लिकेशन और डैशबोर्ड में कैसे खींचें।
API असल में क्या करता है
SMLLR का पब्लिक API एक रीड-ओनली रिपोर्टिंग API है, कोई QR-जेनरेशन API नहीं। यह आपको अपने अकाउंट, इंडिविजुअल QR कोड, कैंपेन, और (एजेंसियों के लिए) क्लाइंट के लिए स्कैन एनालिटिक्स को JSON के तौर पर खींचने देता है — एक Python डेटा पाइपलाइन, एक Pandas नोटबुक, या एक Streamlit डैशबोर्ड फीड करने के लिए परफेक्ट। QR कोड बनाना और एडिट करना — डेस्टिनेशन URL बदलने सहित — SMLLR डैशबोर्ड के ज़रिए होता है, इस API के ज़रिए नहीं। यह गाइड कवर करती है कि API असल में क्या कर सकता है और इसे Python से कैसे कॉल करें।
Python यहां अच्छी तरह क्यों काम करता है
चाहे आप एक Django वेब ऐप चला रहे हों या स्कैन डेटा को एक इंटरनल डैशबोर्ड में सिंक करने के लिए एक सिंपल स्क्रिप्ट, Python का साफ सिंटैक्स और लाइब्रेरी इकोसिस्टम इसे SMLLR रिपोर्टिंग API कंज्यूम करने के लिए एक ठोस फिट बनाता है। यह गाइड उस डेवलपर के लिए है जो QR, कैंपेन, और क्लाइंट एनालिटिक्स को एक Python बैकएंड या नोटबुक में खींच रहा है।
स्टेप 1: अपनी रिक्वेस्ट को ऑथेंटिकेट करना
ऑथेंटिकेशन एक सिंगल स्टैटिक API की है, कोई JWT या OAuth2 फ्लो नहीं — मैनेज करने के लिए कोई टोकन रिफ्रेश नहीं है। SMLLR डैशबोर्ड में Settings → API से अपनी की जेनरेट करें (Premium प्लान ज़रूरी); यह एक बार दिखाई जाती है, इसलिए इसे तुरंत कॉपी करें। इसे x-api-key हेडर के तौर पर भेजें, या Authorization हेडर में एक Bearer टोकन के तौर पर — दोनों काम करते हैं।
- सिक्योर स्टोरेज: अपनी API की को कभी अपनी Python स्क्रिप्ट में हार्डकोड न करें — इसे एक एनवायरनमेंट वेरिएबल से लोड करें।
- रीजेनरेशन: अगर एक की लीक हो जाए, इसे Settings → API से रीजेनरेट करें; पुरानी की तुरंत काम करना बंद कर देती है।
- रेट लिमिट: प्रति की प्रति मिनट 60 रिक्वेस्ट, प्रति API की एनफोर्स्ड (अन्य इंटीग्रेटर के साथ शेयर नहीं)।
स्टेप 2: अकाउंट-वाइड और QR-लेवल एनालिटिक्स खींचना
कोर एंडपॉइंट JSON स्कैन एनालिटिक्स रिटर्न करते हैं, लिस्ट रिस्पॉन्स के लिए एक कर्सर के साथ पेजिनेटेड। GET /summary अकाउंट-वाइड टोटल देता है; GET /qrs आपके QR कोड लिस्ट करता है (पेजिनेटेड); GET /qr/:id एक कोड के लिए डिटेल्ड स्कैन एनालिटिक्स देता है — डिवाइस ब्रेकडाउन, लोकेशन डेटा, और डेली/आवरली ट्रेंड। सभी एक period क्वेरी पैरामीटर स्वीकार करते हैं (7d, 30d, 90d, या all, डिफ़ॉल्ट 30d)।
- GET /summary — चुने गए पीरियड के लिए अकाउंट-वाइड स्कैन टोटल
- GET /qrs — आपके QR कोड की पेजिनेटेड लिस्ट, अगले पेज के लिए एक कर्सर के साथ
- GET /qr/:id — एक सिंगल QR कोड के लिए पूरा एनालिटिक्स
- हर लिस्ट रिस्पॉन्स में बिल्ट-इन 'इनसाइट्स' शामिल हैं (जैसे ज़ीरो लाइफटाइम स्कैन वाले QR कोड) जब तक आप `?insights=false` पास न करें
स्टेप 3: कैंपेन और क्लाइंट एनालिटिक्स
एजेंसियों और कई कैंपेन चलाने या कई क्लाइंट मैनेज करने वाली टीमों के लिए, वही पैटर्न कैंपेन और क्लाइंट लेवल पर लागू होता है — खुद एग्रीगेशन लॉजिक दोबारा डिराइव किए बिना एक क्लाइंट-फेसिंग Python डैशबोर्ड बनाने के लिए उपयोगी।
स्टेप 4: एनालिटिक्स को Pandas में लोड करना
हर एंडपॉइंट एक कंसिस्टेंट { success, data } JSON envelope रिटर्न करता है, जो सीधे एक Pandas DataFrame में गिरता है — कोई स्क्रैपिंग या CSV एक्सपोर्ट ज़रूरी नहीं। क्योंकि लिस्ट एंडपॉइंट (/qrs, /campaigns, /clients) कर्सर-पेजिनेटेड हैं, यह मान लेने के बजाय कि सब कुछ एक पेज पर फिट होता है, एक पूरा डेटासेट खींचने के लिए तब तक लूप करें जब तक pagination.hasMore फॉल्स न हो जाए।
रेट लिमिट के भीतर काम करना
प्रति की प्रति मिनट 60 रिक्वेस्ट पर, एक बड़े अकाउंट को सिंक करने वाली Python स्क्रिप्ट को एक टाइट लूप में रिक्वेस्ट फायर करने के बजाय जानबूझकर पेजिनेट करना चाहिए — अपनी कॉल को बैच करें, पेज के बीच एक छोटा डिले जोड़ें, और तुरंत रीट्राई करने के बजाय बैक ऑफ करके एक 429 रिस्पॉन्स हैंडल करें। ज़्यादातर डैशबोर्ड-रीफ्रेश यूज़ केस के लिए (हर कुछ मिनट में डेटा खींचना, हर कुछ सेकंड में नहीं), यह लिमिट जनरस है; अगर आपको एक हाई-वॉल्यूम इंटीग्रेशन के लिए एक ऊंची सीलिंग चाहिए, SMLLR सपोर्ट से संपर्क करें।
अक्सर पूछे जाने वाले सवाल
क्या SMLLR के लिए कोई Python SDK है?
वर्तमान में नहीं — कोई पब्लिश्ड pip-इंस्टॉल करने योग्य पैकेज नहीं है। API एक स्टैंडर्ड REST/JSON API है, इसलिए Python से आपको सिर्फ requests लाइब्रेरी (या एसिंक इस्तेमाल के लिए httpx/aiohttp) चाहिए।
क्या मैं API का इस्तेमाल करके QR कोड बना या जेनरेट कर सकता हूं?
नहीं। पब्लिक API रीड-ओनली रिपोर्टिंग है — यह QR कोड, कैंपेन, और क्लाइंट के लिए स्कैन एनालिटिक्स रिटर्न करता है। QR कोड बनाना और उनकी डेस्टिनेशन URL एडिट करना SMLLR डैशबोर्ड के ज़रिए होता है।
क्या SMLLR API डेवलपर के लिए मुफ्त है?
नहीं। API एक्सेस सिर्फ Premium प्लान (₹14,999/महीना) पर शामिल है — यह Free, Starter, Basic, या Pro पर उपलब्ध नहीं है, और कोई अलग फ्री सैंडबॉक्स टियर नहीं है। एक API की जेनरेट करने के लिए आपको एक एक्टिव Premium सब्सक्रिप्शन चाहिए।
मैं Python इस्तेमाल करके QR कोड की डेस्टिनेशन URL कैसे अपडेट करूं?
आप पब्लिक API के ज़रिए नहीं कर सकते — यह रीड-ओनली है। डेस्टिनेशन URL SMLLR डैशबोर्ड से अपडेट किए जाते हैं (Edit → Destination URL → Save)।
क्या मैं स्कैन डेटा को एक Python डैशबोर्ड में खींच सकता हूं?
हां — API बिल्कुल इसी के लिए है। GET /summary, /qr/:id, /campaign/:id, और /client/:id सभी JSON स्कैन एनालिटिक्स रिटर्न करते हैं जो सीधे एक Pandas DataFrame में पार्स होते हैं या एक Streamlit डैशबोर्ड फीड करते हैं।
API रेट लिमिट क्या है?
प्रति API की प्रति मिनट 60 रिक्वेस्ट, प्रति IP के बजाय प्रति की ट्रैक की जाती है, इसलिए यह उसी नेटवर्क से कॉल करने वाले अन्य इंटीग्रेशन के साथ शेयर नहीं होती। इससे ज़्यादा रिक्वेस्ट एक 429 रिस्पॉन्स रिटर्न करती हैं।