अगर आपका टेक्निकल बैकग्राउंड नहीं है, तो SmartAPI डॉक्यूमेंटेशन या उससे जुड़े फोरम को समझना शुरुआत में थोड़ा मुश्किल लग सकता है। यूजर्स के फीडबैक के आधार पर हम लगातार अपने डॉक्यूमेंट्स को बेहतर बनाने की कोशिश करते हैं, लेकिन हमें यह भी पता है कि हर किसी के लिए इन्हें पहली बार में समझना आसान नहीं होता। इसी वजह से इस लेख में हम SmartAPI डॉक्यूमेंटेशन के अलग-अलग सेक्शन्स को आसान भाषा में समझाएंगे, ताकि आपको यह समझने में आसानी हो कि कौन-सा सेक्शन किस काम के लिए है और जरूरत पड़ने पर आपको किस जानकारी के लिए कहां जाना चाहिए।
SmartAPI डॉक्यूमेंटेशन
किसी भी टेक्निकल डॉक्यूमेंटेशन का सबसे बड़ा मकसद डेवलपर्स को एक ऐसी भरोसेमंद जगह उपलब्ध कराना होता है, जहां उन्हें API से जुड़ी हर जरूरी जानकारी मिल सके। जैसे API कैसे काम करेगी, कौन-कौन सी रिक्वेस्ट भेजी जा सकती हैं या एक सेकंड में कितनी रिक्वेस्ट की अनुमति है।
अगर इंटरनेट पर SmartAPI से जुड़ी अलग-अलग जानकारी मौजूद हो, तो भी आधिकारिक SmartAPI डॉक्यूमेंटेशन को ही सबसे विश्वसनीय सोर्स माना जाना चाहिए। हमने इसे जितना संभव हो उतना आसान बनाने की कोशिश की है। आगे हम बताएंगे कि इसमें मौजूद हर सेक्शन किस काम आता है।
परिचय
API आखिर क्या होती है?
API को एक ऐसे गेटवे की तरह समझिए, जिसके जरिए आप जानकारी हासिल भी कर सकते हैं और जानकारी भेज भी सकते हैं।
इसे एक सुपरमार्केट के उदाहरण से समझते हैं। मान लीजिए किसी सुपरमार्केट में अलग-अलग सामान के लिए अलग-अलग सेक्शन बने हुए हैं। अगर आपको कपड़े खरीदने हैं, तो आप कपड़ों वाले सेक्शन में जाएंगे। खाने का सामान चाहिए, तो फूड सेक्शन में जाएंगे। अगर गिफ्ट वाउचर रिडीम करना है, तो बिलिंग सेक्शन में जाएंगे।
यानी हर सेक्शन आपको एक खास सुविधा तक पहुंचने का रास्ता देता है। ठीक उसी तरह API भी अलग-अलग कामों के लिए गेटवे का काम करती है। इसके जरिए आप अपना मार्जिन बैलेंस देख सकते हैं, ऑर्डर प्लेस कर सकते हैं, ऑर्डर में बदलाव कर सकते हैं और कई दूसरी सुविधाओं का इस्तेमाल कर सकते हैं।
Libraries and SDKs
सॉफ्टवेयर डेवलपमेंट किट्स (SDKs) डेवलपर्स का काम काफी आसान बना देते हैं।
मान लीजिए आप थाईलैंड के किसी सुपरमार्केट में हैं, लेकिन आपको वहां की भाषा नहीं आती। ऐसे में आप एक स्थानीय गाइड की मदद लेते हैं। वह आपकी जरूरत समझकर सुपरमार्केट के अलग-अलग सेक्शन्स से बात करता है और सबसे आसान तरीके से आपका काम पूरा करवा देता है।
इस उदाहरण में वह स्थानीय गाइड आपके लिए SDK की तरह काम कर रहा है।
एंजेल वन ने अलग-अलग प्रोग्रामिंग लैंग्वेज के लिए SDK उपलब्ध कराए हैं। आप अपनी पसंद के मुताबिक किसी भी SDK का इस्तेमाल करके अपनी रूल बेस्ड ट्रेडिंग स्ट्रैटेजी तैयार कर सकते हैं। इससे आपको API के हर गेटवे को अलग-अलग मैनेज करने की जरूरत नहीं पड़ती।
सभी उपलब्ध SDKs आपको हमारे GitHub पेज पर मिल जाएंगे।
Response Structure
डॉक्यूमेंटेशन का यह सेक्शन बताता है कि API या SDK के जरिए भेजी गई रिक्वेस्ट का रिस्पॉन्स किस तरह मिलेगा।
रिस्पॉन्स हमेशा JSON फॉर्मेट में मिलता है, जो प्रोग्रामिंग की दुनिया में सबसे ज्यादा इस्तेमाल होने वाले स्टैंडर्ड डेटा फॉर्मेट्स में से एक है।
यहां आपको सफल (Successful) और असफल (Failed) API कॉल, दोनों तरह के रिस्पॉन्स के उदाहरण मिलेंगे। अगर आप SDK का इस्तेमाल कर रहे हैं, तो हेडर पैरामीटर्स को लेकर आपको अलग से चिंता करने की जरूरत नहीं होती।
Error Codes
किसी भी सिस्टम में एरर्स आ सकते हैं। हम उन्हें कम से कम रखने की कोशिश करते हैं, लेकिन उन्हें पूरी तरह खत्म नहीं किया जा सकता।
अगर आप SmartAPI या उसके किसी SDK का इस्तेमाल कर रहे हैं और आपकी रिक्वेस्ट में जरूरी पैरामीटर्स नहीं हैं या कोई जानकारी गलत है, जैसे गलत पासवर्ड या गलत टिकर, तो सिस्टम आपको एक एरर कोड दिखाएगा।
डॉक्यूमेंटेशन का यह सेक्शन बताता है कि हर एरर कोड का क्या मतलब है और वह किस वजह से आया है।
User
अगर आप सीधे API एंडपॉइंट्स का इस्तेमाल कर रहे हैं, तो इस सेक्शन में Python, NodeJS, Go, Java और R जैसी कई प्रोग्रामिंग लैंग्वेज में कोड के उदाहरण दिए गए हैं।
हालांकि, अगर आप कोडिंग की शुरुआत कर रहे हैं, तो हमारी सलाह है कि सीधे API की बजाय SDK का इस्तेमाल करें। इससे आपका काम काफी आसान हो जाएगा।
इस सेक्शन में यह भी बताया गया है कि एंजेल वन के सर्वर्स पर लॉग इन कैसे करना है, खुद को ऑथेंटिकेट कैसे करना है और काम पूरा होने के बाद लॉग आउट कैसे करना है।
GTT (Good Till Triggered)
SmartAPI आपको NSE और BSE पर DELIVERY और MARGIN सेगमेंट में GTT ऑर्डर प्लेस करने की सुविधा देता है।
अगर आप कोई ऐसा लॉन्ग टर्म ऑर्डर लगाना चाहते हैं, जिस पर रोज नजर रखने की जरूरत न पड़े, तो GTT ऑर्डर काफी काम आता है। जैसे ही आपके तय किए हुए प्राइस तक मार्केट पहुंचती है, ऑर्डर अपने आप ट्रिगर होकर एक्सीक्यूट हो जाता है।
डॉक्यूमेंटेशन के इस सेक्शन में नए GTT रूल बनाने, उनमें बदलाव करने और उन्हें कैंसिल करने के लिए अलग-अलग लैंग्वेज में कोड के उदाहरण दिए गए हैं।
Orders
Orders एंडपॉइंट SmartAPI का सबसे ज्यादा इस्तेमाल होने वाला फीचर है।
डॉक्यूमेंटेशन में API के जरिए अपने ब्रोकरेज अकाउंट में ऑर्डर प्लेस करने, उन्हें मॉडिफाई करने और कैंसिल करने के लिए सैंपल कोड और रिस्पॉन्स स्ट्रक्चर दिए गए हैं।
यही एंडपॉइंट आपको दिनभर में किए गए सभी ट्रेड्स और ऑर्डर्स की जानकारी भी देता है। इसके अलावा किसी भी सिंबल का LTP (Last Traded Price) भी इसी के जरिए हासिल किया जा सकता है।
Portfolio
Portfolio एंडपॉइंट आपके एंजेल वन अकाउंट में मौजूद पोर्टफोलियो की पूरी जानकारी उपलब्ध कराता है।
डॉक्यूमेंटेशन में बताया गया है कि अपनी सभी होल्डिंग्स और पोजिशन्स कैसे प्राप्त करें। इसके अलावा, अगर आप अपनी किसी मौजूदा पोजिशन का प्रोडक्ट टाइप बदलना चाहते हैं, जैसे INTRADAY से DELIVERY, तो उसका तरीका भी यहां समझाया गया है।
अगले लेख में हम Python SDK की मदद से इसके कुछ प्रैक्टिकल उदाहरण भी दिखाएंगे।
Postback
जब आप API या SDK के जरिए कोई ऑर्डर प्लेस करते हैं, तो आपको JSON फॉर्मेट में उसका Order ID मिलता है।
अगर आपने Postback फीचर को इनेबल किया हुआ है, तो ऑर्डर से जुड़ा पूरा रिस्पॉन्स उस Postback URL पर भेज दिया जाता है, जिसे आपने API Key बनाते समय दिया था।
हालांकि, इस फीचर का इस्तेमाल करना जरूरी नहीं है, लेकिन अगर आप इसे सेटअप करना चाहें, तो डॉक्यूमेंटेशन में इसका सैंपल रिस्पॉन्स भी दिया गया है।
Historical API
SmartAPI यूजर्स के बीच Historical API भी काफी लोकप्रिय एंडपॉइंट है।
इस सेक्शन में अलग-अलग प्रोग्रामिंग लैंग्वेज में सैंपल कोड दिए गए हैं, जिनकी मदद से आप API के जरिए NSE में लिस्टेड सभी शेयरों और NFO Futures का ऐतिहासिक डेटा हासिल कर सकते हैं।
आने वाले लेख में हम Python SDK के जरिए यह फीचर इस्तेमाल करने का तरीका भी विस्तार से बताएंगे।
Publisher JS Plugin
यह सेक्शन उन यूजर्स के लिए उपयोगी है, जो अपने क्लाइंट्स के लिए ऐसे डायनेमिक बटन बनाना चाहते हैं, जिनकी मदद से वे एक क्लिक में ऑर्डर प्लेस कर सकें या शेयरों की पूरी बास्केट खरीद और बेच सकें।
यह फीचर JavaScript पर आधारित है। इन बटन्स को वेबसाइट, मोबाइल ऐप, टेलीग्राम चैटबॉट या दूसरे प्लेटफॉर्म्स में एम्बेड किया जा सकता है।
डॉक्यूमेंटेशन में अलग-अलग तरह के बटन्स के लिए सैंपल कोड भी दिए गए हैं।
Websocket Streaming
WebSocket (WSS) एक ऐसा कनेक्शन होता है, जो आपके सिस्टम और ब्रोकर के सर्वर्स के बीच लगातार बना रहता है। इसके जरिए आप सर्वर से शेयरों के लाइव प्राइस लगातार प्राप्त कर सकते हैं।
एक बार कनेक्शन स्थापित होने के बाद, जब तक ब्रोकर या क्लाइंट उसे बंद नहीं करता, तब तक लाइव प्राइस का डेटा लगातार मिलता रहता है।
डॉक्यूमेंटेशन का यह सेक्शन बताता है कि API एंडपॉइंट का इस्तेमाल करके लाइव प्राइस स्ट्रीम कैसे हासिल करें और उस डेटा का इस्तेमाल अपनी रूल बेस्ड ट्रेडिंग स्ट्रैटेजी के लिए ऑर्डर जनरेट करने में कैसे करें।
जल्द ही हम Python SDK के जरिए WebSocket इस्तेमाल करने पर एक अलग लेख भी प्रकाशित करेंगे।
Websocket Order Status
मार्केट में कई बार ऐसा होता है कि आपने LIMIT या STOPLOSS ऑर्डर लगाया हो, लेकिन तय प्राइस नहीं आने की वजह से वह तुरंत एक्सीक्यूट नहीं होता।
ऐसी स्थिति में ऑर्डर की अपडेट्स पर नजर रखने के लिए डॉक्यूमेंटेशन का यह सेक्शन काफी काम आता है। इसकी मदद से आप ऑर्डर फीड्स को सब्सक्राइब कर सकते हैं और जैसे ही आपका ऑर्डर एक्सीक्यूट या कैंसिल होगा, आपको तुरंत उसकी जानकारी मिल जाएगी।
Instruments
आप जानते हैं कि समय-समय पर नए IPO आते रहते हैं। इसके अलावा नए ऑप्शंस कॉन्ट्रैक्ट्स और फ्यूचर्स एक्सपायरी भी लगातार जुड़ती रहती हैं।
SmartAPI आपको इन सभी इंस्ट्रूमेंट्स की लेटेस्ट लिस्ट प्रोग्रामेटिक तरीके से हासिल करने की सुविधा देता है, ताकि आप उन्हें अपनी ट्रेडिंग स्ट्रैटेजी में इस्तेमाल कर सकें।
डॉक्यूमेंटेशन में यह भी बताया गया है कि इस लिस्ट को कैसे प्राप्त किया जाए। साथ ही, एक लिंक भी दिया गया है, जहां आप इसका JSON डेटा स्ट्रक्चर देख सकते हैं।
Rate Limit
SmartAPI का इस्तेमाल करने वाले सभी यूजर्स को बेहतर और समान सेवा मिले, इसके लिए API रिक्वेस्ट्स की संख्या पर कुछ सीमाएं तय की गई हैं।
डॉक्यूमेंटेशन का यह सेक्शन इन्हीं Rate Limits की जानकारी देता है। उदाहरण के लिए, कोई भी यूजर एक सेकंड में 10 से ज्यादा ऑर्डर रिक्वेस्ट नहीं भेज सकता। हालांकि, इसका मतलब यह भी है कि एक मिनट में 600 तक ऑर्डर रिक्वेस्ट भेजी जा सकती हैं।
इंडस्ट्री के कई दूसरे ब्रोकर्स की तुलना में इसे काफी उदार लिमिट माना जाता है।
ChangeLog
समय के साथ SmartAPI को लगातार बेहतर, ज्यादा मजबूत और तेज बनाया जाता रहा है।
डॉक्यूमेंटेशन के ChangeLog सेक्शन में API से जुड़े सभी अपडेट्स और बदलावों की जानकारी मिलती है, ताकि डेवलपर्स हमेशा लेटेस्ट बदलावों से अपडेट रहें।
हमारा लक्ष्य रूल बेस्ड ट्रेडिंग की आपकी यात्रा को और आसान बनाना है। अगर आपके पास कोई सुझाव है या आप चाहते हैं कि हम किसी खास विषय पर ब्लॉग लिखें, तो हमें जरूर बताएं। हमें आपका फीडबैक जानकर खुशी होगी।
