एक छोटी डेटा-ग्रिड आकृति, एक सीधी लाइन से दाईं तरफ़ अकेले खड़ी एक कॉग आकृति से जुड़ी हुई।

बेटिंग बॉट और API: खाता गंवाए बिना ऑटोमेशन

बॉट रात 3 बजे चलता है। सुबह 9 बजे भी आपका खाता वहीं होना चाहिए। बेटफेयर इन दोनों तक पहुँचने के दो तरीकों के बीच एक असली लाइन खींचता है, और यह वह लाइन नहीं है जो ज़्यादातर फ़ोरम थ्रेड बताते हैं।

एक बेटिंग बॉट कोई भी ऐसी स्क्रिप्ट है जो माउस पर उंगली रखे बिना दांव लगाती या मैनेज करती है। बेटफेयर एक्सचेंज पर जो शब्द यह तय करता है, वह "बॉट" नहीं, "API" है। बेटफेयर की शर्तें किसी और ऑटोमेटेड तरीके से लगाए दांव को संदिग्ध गतिविधि मानती हैं, फिर API से लगाए दांवों को उसी क्लॉज़ से साफ़ बाहर निकाल देती हैं। एक दूसरा नियम API यूज़र को भी पकड़ता है: खाता पर्सनल ही रहना चाहिए, किसी और के लिए चलाई जाती सर्विस नहीं। इससे पहले कि कुछ और मायने रखे, लॉजिक को Delayed key के देर से आते डेटा पर टेस्ट करें और API की अपनी रिक्वेस्ट, कंकरेंसी और लॉगिन लिमिट के इर्द-गिर्द डिज़ाइन करें। key ख़ुद, इनकी लागत, और चार ब्रोकर अपने टूल के बारे में क्या कहते हैं, यह सब नीचे लिंक किए एक अलग पेज पर है।

यह नियम असल में क्या बाँटता है

ऑटोमेशन इस साइट पर कवर किए गए प्रोफ़ेशनल बेटिंग के बड़े सेट के अंदर एक लाइन है, और इसे अपना अलग पेज इसलिए मिला है क्योंकि यहाँ के नियम "शार्प सट्टेबाज़ सॉफ़्टवेयर इस्तेमाल करते हैं" से कहीं ज़्यादा बारीक हैं। फ़ोरम की भाषा "बॉट" को एक ही चीज़ मानती है: दांव लगाने वाला सॉफ़्टवेयर। बेटफेयर की शर्तें ज़्यादा सटीक हैं। क्लॉज़ 12.1.4 उन गतिविधियों में, जिन्हें यह संदिग्ध मानता है, एक ऐसा दांव गिनता है जो "otherwise than through the Account holder placing each Bet manually" लगाया गया हो, जिसे अकेले पढ़ा जाए तो यह अब तक लिखी हर स्क्रिप्ट को पकड़ लेगा। इसे अकेले नहीं पढ़ा जाता: वही क्लॉज़ अपना एक अपवाद भी साथ रखता है, शक दूर करने के लिए साफ़ कहा गया, कि "via the Application Programming Interface (API)" लगाए गए दांव इसमें शामिल नहीं हैं। दोनों टुकड़ों को साथ रखें तो बँटवारा साफ़ हो जाता है: आम वेबसाइट पर क्लिक करती एक स्क्रिप्ट वह है जिस पर यह क्लॉज़ निशाना साधता है, और API से बात करती एक स्क्रिप्ट वह अपवाद है जिसका नाम यह क्लॉज़ ख़ुद लेता है।

एक साइड नोट: उस वाक्य में ज़्यादातर काम "बॉट" शब्द कर रहा है, और यह शब्द क्लॉज़ में कभी आता ही नहीं। बेटफेयर के वकीलों ने "otherwise than through the Account holder placing each Bet manually" लिखा, जो वही बात कहने का एक लंबा तरीक़ा है पर ग़लत उद्धृत करना कहीं ज़्यादा मुश्किल बना देता है। ख़ैर, वापस इस पर कि इसका आपके लिए क्या मतलब है।

तो नियम "बॉट बैन हैं" नहीं है, और "बॉट ठीक हैं" भी नहीं। यह इससे पतला है: वेबसाइट पर एक बहुत तेज़ हाथ जैसा काम करती एक अनऑफ़िशियल स्क्रिप्ट संदिग्ध गतिविधि वाले क्लॉज़ के अंदर बैठती है, जबकि वही लॉजिक ऑफ़िशियल API से जुड़ा हो तो वह अपवाद के अंदर बैठता है। हाथ से लैडर ट्रेड करने वाला कोई और वही काम API के ज़रिए करती एक स्क्रिप्ट, दोनों को यही दस्तावेज़ अलग-अलग तरह से देखता है, और फ़र्क़ दरवाज़े का है, पीछे की रणनीति का नहीं।

पर्सनल-यूज़ की लाइन, और बॉट इसे कहाँ पार कर सकता है

एक दूसरा क्लॉज़ उतना ही मायने रखता है और इसे कहीं कम पढ़ा जाता है। बेटफेयर एक खाते के इस्तेमाल को प्रतिबंधित मान सकता है "if we suspect (acting reasonably) that your Account's usage represents 'business usage'", जिसे जानबूझकर चौड़ा परिभाषित किया गया है: "'business usage' includes any use by a betting operator or any use by an individual or organisation supplying data or services to a betting operator" (क्लॉज़ 11.2.13)। इसका ऊपर वाले API अपवाद से कोई लेना-देना नहीं है। एक स्क्रिप्ट 12.1.4 के अपवाद के ठीक अंदर बैठ सकती है और फिर भी 11.2.13 की चपेट में आ सकती है, अगर यह असल में किसी और के लिए दांव चला रही है, किसी सब्सक्राइबर सर्विस को फ़ीड कर रही है, या दूसरे सट्टेबाज़ों को बेचे गए किसी प्रोडक्ट के बैक एंड की तरह काम कर रही है।

मैं दोनों क्लॉज़ को अलग-अलग सवालों के जवाब के तौर पर देखूँगा। क्लॉज़ 12.1.4 पूछता है दांव कैसे लगाया गया। क्लॉज़ 11.2.13 पूछता है यह असल में किसका पैसा और किसका फ़ैसला था। एक बॉट जो हमेशा सिर्फ़ एक इंसान के अपने खाते पर काम करता है, डिफ़ॉल्ट रूप से दूसरे सवाल को पार कर जाता है। कई लोगों के दांव मैनेज करने वाला, या अपने सिग्नल बेचने वाला बॉट नहीं, चाहे यह दांव लगाने के लिए कोई भी दरवाज़ा इस्तेमाल करे।

API में हर रास्ता एक वेरिफ़ाइड खाते से शुरू होता है। बेटफेयर का अपना डेवलपर हेल्प साफ़ कहता है: बेटफेयर खाते के बिना, "you cannot proceed with licensing" बिल्कुल नहीं, और ID जांच असल में क्या शामिल करती है किसी भी key से पहले बैठती है। कमर्शियल ऑटोमेशन का अपना अलग रास्ता बेटफेयर के बिज़नेस साइड से होकर जाता है, कोई बड़े बजट वाली पर्सनल key नहीं।

API दरवाज़ा है। वेबसाइट पर एक स्क्रिप्ट नहीं।

Live key फ़ंड होने से पहले क्या टेस्ट करें

बॉट बनाने वाला हर कोई सीधे दांव लगाने तक पहुँचना चाहता है। ईमानदार तरतीब उल्टी चलती है: पहले लॉजिक को जानबूझकर रियल टाइम से धीमे डेटा पर साबित करें, वेन्यू की इजाज़त वाले सबसे छोटे दांव पर, इससे पहले कि कोई पेड key या कोई असली बैंकरोल इसके आस-पास भी आए।

बेटफेयर Delayed key: कीमत का डेटा कितना पुराना हो सकता है

स्रोत: बेटफेयर का डेवलपर डॉक्यूमेंटेशन, FACTS-betfair.md सेक्शन 6।

चार्ट का डेटा
मदमूल्य
सबसे तेज़ स्नैपशॉट1
सबसे धीमा स्नैपशॉट180

वह रेंज, सबसे अच्छी हालत में एक सेकंड और सबसे बुरी हालत में तीन मिनट तक, कोई राउंडिंग एरर नहीं है जिसे नज़रअंदाज़ कर दिया जाए। एक स्क्रिप्ट ने जिस कीमत को पहली बार सही माना था, वह उसके असल में हरकत करने तक काफ़ी आगे खिसक सकती है, और इसे हल्का करने के लिए कोई सैंडबॉक्स नहीं है: बेटफेयर का अपना डॉक्यूमेंटेशन कहता है कि कोई टेस्ट बेड मौजूद नहीं जो असली फंड इस्तेमाल किए बिना टेस्ट करने दे। Delayed key से लगाया हर दांव एक असली नतीजे वाला लाइव दांव है, इसलिए वेन्यू की इजाज़त वाला सबसे छोटा दांव ही इस स्टेज को चलाने का इकलौता समझदार तरीका है।

एक काल्पनिक स्थिति, जिसका हर आँकड़ा सिर्फ़ हिसाब के लिए बनाया गया है। मानें एक स्क्रिप्ट 2.10 पर बैठी एक कीमत देखती है, इसे back करने का फ़ैसला लेती है, और ठीक उसी पल API एक स्नैपशॉट लौटाता है जो 180 सेकंड पुराना है। एक गोल, एक रेड कार्ड या एक आख़िरी वक़्त की स्क्रैच तीन मिनट में हो सकती है, तो जो कीमत स्क्रिप्ट सोचती है वह back कर रही है और जो कीमत ऑर्डर पहुँचने पर असल में मौजूद है, ये दो अलग नंबर हो सकते हैं। ऊपर की कोई भी चालाक लॉजिक एक पुरानी जानकारी पर बने फ़ैसले को ठीक नहीं करती; यह देरी ख़ुद, इसके ऊपर बनी रणनीति नहीं, पहली चीज़ है जिसे टेस्ट करना चाहिए।

वेन्यू सिर्फ़ आधी तस्वीर है; बाक़ी आधी है वह फ़ीड जिस पर एक बॉट असल में रिएक्ट करता है, और पतले इतिहास पर बना एक स्क्रिप्ट किसी भी key पर गड़बड़ करेगा। किसी स्क्रिप्ट के अपने नंबरों पर भरोसा करने से पहले कैलकुलेटर पर हाथ से हिसाब जांच लें, और याद रखें कि एक्सचेंज कमीशन हर जीतते दांव से अब भी कटता है; यह एक बॉट के नेट नंबर पर क्या करता है किसी रणनीति को काग़ज़ पर सफल मानने से पहले पढ़ने लायक़ है।

बेटिंग स्लिप के ऊपर मशीनी बाज़ुओं की एक लाइन, सब बीच हरकत में रुके, सिर्फ़ एक को छोड़कर।
ज़्यादातर बॉट इंतज़ार करता है। जो हिस्सा चलता है, वही हिस्सा है जिस पर नियम ध्यान देते हैं।

वे लिमिट जिनके इर्द-गिर्द एक स्क्रिप्ट डिज़ाइन होनी चाहिए

इसमें से कुछ भी इस बारे में नहीं है कि ऑटोमेशन जायज़ है या नहीं। यह उस सीलिंग के बारे में है जो API ख़ुद एक स्क्रिप्ट के बर्ताव पर रखता है, अंदाज़े पर छोड़े बिना साफ़ नंबरों में बताई गई। चार नंबर सबसे ज़्यादा मायने रखते हैं जब एक स्क्रिप्ट अभी ड्रॉइंग बोर्ड पर हो, और, ऊपर Delayed key की अपनी देरी वाली विंडो के साथ, ये ऐसे आँकड़े हैं जिन्हें बेटफेयर बदल सकता है; किसी भी के इर्द-गिर्द प्रोडक्शन कोड डिज़ाइन करने से पहले मौजूदा शर्तें जांच लें।

  • मार्केट डेटा रिक्वेस्ट पर 200-पॉइंट की कैप। लागत मार्केट और माँगे गए डेटा के टाइप में जोड़ी जाती है; कुल इससे ऊपर जाने पर डेटा के बदले एक एरर मिलता है।
  • ऑर्डर और पोज़िशन कॉल पर 3-कंकरेंट-रिक्वेस्ट की सीलिंग। मौजूदा ऑर्डर, प्रॉफ़िट और लॉस, या क्लीयर्ड ऑर्डर एक साथ तीन से ज़्यादा बार चेक करना, जब पिछली कॉल अभी भी चल रही हों, क्यू में नहीं लगता, मना कर दिया जाता है।
  • ऑर्डर लगाने, कैंसल करने, अपडेट या रिप्लेस करने पर 1,000-इंस्ट्रक्शन-प्रति-सेकंड की सीलिंग। यह हर खुले कनेक्शन में पूरे खाते को कवर करता है, किसी एक स्क्रिप्ट को अलग से नहीं।
  • बहुत ज़्यादा फ़ेल्ड लॉगिन के बाद 20-मिनट का लॉकआउट। उस दौरान आगे की हर लॉगिन कोशिश ख़ुद-ख़ुद मना हो जाती है, पहले की नाकामी की वजह कुछ भी हो।

एक दूसरी काल्पनिक स्थिति, और वह जो असल में लोगों को पकड़ती है। एक स्क्रिप्ट जिसकी लॉगिन हैंडलिंग में बग है, समय पर अपना सेशन रिफ़्रेश नहीं कर पाती और पीछे हटने के बदले एक टाइट लूप में दोबारा कोशिश करती है। बीस मिनट लगभग एक फ़ुटबॉल हाफ़ है; किक-ऑफ़ पर लॉकआउट ट्रिगर करें और स्क्रिप्ट उससे कहीं ज़्यादा मैच मिस कर देगी जितना इसने कभी पकड़ा। हल कहानी से कहीं ज़्यादा उबाऊ है: सेशन को पकड़े रखें, और एक फ़ेल्ड लॉगिन को रुकने की वजह मानें, फ़ौरन दोबारा कोशिश करने की नहीं।

जहाँ एक ब्रोकर की अपनी शर्तें एक और लेयर जोड़ती हैं

ऊपर का सब बेटफेयर की अपनी रूलबुक है, और यह सिर्फ़ डायरेक्ट रखे एक बेटफेयर खाते पर लागू होता है। एक ब्रोकर का एक्सचेंज टूल एक अलग प्रोडक्ट है, ब्रोकर के साथ खोला गया, बेटफेयर के साथ नहीं, तो बेटफेयर के API क्लॉज़ वहाँ ख़ुद-ख़ुद लागू नहीं होते। इसके बदले जो मायने रखता है वह हर ब्रोकर की अपनी शर्तें हैं, और ये सब स्क्रिप्ट के बारे में एक जैसी बात नहीं कहती: कुछ अपना एक API पब्लिश करते हैं, बाक़ी ऑटोमेटेड एक्सेस को सीधे बैन कर देते हैं। एक ब्रोकर के एंटी-स्क्रैपिंग क्लॉज़ को इसका अपना घर का नियम मानें जिसका सम्मान करना है और बदलने पर रिपोर्ट करना है, इसके आस-पास से रास्ता निकालने की कोई चीज़ नहीं। हर ब्रोकर बॉट के बारे में पहले से क्या कहता है में ब्रोकर-दर-ब्रोकर पूरी जानकारी है, key की लागत के साथ; यह पेज इसे दोबारा नहीं कहेगा।

अगर एक स्क्रिप्ट बनाना और इसे मेंटेन करना असल में चाहा गया प्रोजेक्ट नहीं है, तो ब्रोकर इसमें से कुछ पहले से पैकेज करते हैं: इसके बदले एक ब्रोकर का बिल्ट-इन ऑटोमेशन बताता है पहले से तैयार क्या मिलता है, कोई कोड ज़रूरी नहीं। क्लॉज़ 12.1.4 के तहत संदिग्ध गतिविधि के लिए फ़्लैग हुआ खाता, ऑटोमेटेड हो या न हो, चुपचाप नज़रअंदाज़ भी नहीं होता; एक अकाउंट रिस्ट्रिक्शन असल में कैसी दिखती है इसका यह पक्ष कवर करता है।

मैं किसी ब्रोकर की मौजूदा शर्तें पढ़े बिना कुछ नहीं बनाऊँगा, किसी फ़ोरम की समरी नहीं। चारों ब्रोकर की शर्तों की साथ-साथ तुलना यह देखने का सबसे तेज़ तरीका है कि ऑटोमेशन कहाँ ख़ुशी से अपनाया जाता है, कहाँ कुछ नहीं कहा जाता, और कहाँ सीधे बैन है।

अक्सर पूछे जाने वाले सवाल

बेटफेयर एक्सचेंज पर बेटिंग बॉट इस्तेमाल करना नियमों के ख़िलाफ़ है?

ख़ुद-ख़ुद नहीं। बेटफेयर की शर्तें किसी और ऑटोमेटेड तरीके से लगाए दांव को, खाताधारक द्वारा हर दांव मैनुअली लगाने के बाहर, संदिग्ध गतिविधि मानती हैं, फिर ऑफ़िशियल API से लगाए दांवों को साफ़ तौर पर उसी क्लॉज़ से बाहर रखती हैं। API से काम करती एक स्क्रिप्ट अपवाद में बैठती है; आम वेबसाइट पर बहुत तेज़ हाथों जैसा काम करती एक स्क्रिप्ट नहीं बैठती।

क्या एक बेटिंग बॉट किसी और के लिए, या एक बिज़नेस के तौर पर चलाया जा सकता है?

यह एक अलग लाइन पार करता है। बेटफेयर एक खाते को प्रतिबंधित मान सकता है अगर इसे ठीक वजह से शक हो कि इस्तेमाल बिज़नेस यूज़ेज में गिना जाता है, जिसे एक बेटिंग ऑपरेटर के इस्तेमाल या किसी को डेटा या सर्विस सप्लाई करने वाले इंसान या संस्था के इस्तेमाल को शामिल करने के लिए परिभाषित किया गया है। एक पर्सनल खाता खाताधारक के अपने दांव के लिए है, ऑटोमेटेड हो या न हो।

एक बेटिंग बॉट और बेटफेयर API में असली फ़र्क़ क्या है?

"बॉट" सॉफ़्टवेयर के लिए एक शॉर्टहैंड है; API वह ख़ास, मंज़ूर किया चैनल है जो बेटफेयर ने ऑटोमेटेड एक्सेस के लिए बनाया है। शर्तें सॉफ़्टवेयर को उस पर चिपके लेबल से नहीं जज करतीं, सिर्फ़ इससे कि दांव किस चैनल से लगा।

क्या एक बेटिंग बॉट असली पैसा जोखिम में डाले बिना टेस्ट किया जा सकता है?

Delayed key पर नहीं, जो फ़्री डेवलपमेंट विकल्प है: बेटफेयर कहता है कोई टेस्ट बेड मौजूद नहीं जो असली फंड इस्तेमाल किए बिना किसी को टेस्ट करने दे, तो इससे लगाया हर दांव एक असली नतीजे वाला लाइव दांव है, लॉजिक अभी साबित होने तक इसे सबसे छोटे दांव पर रखना बेहतर है।

API थ्रॉटल करने से पहले एक बेटिंग बॉट कितनी तेज़ी से ऑर्डर लगा सकता है?

बेटफेयर जो सीलिंग बताता है वे हैं: एक रिक्वेस्ट कितना मार्केट डेटा माँग सकती है इस पर 200-पॉइंट की कैप, ऑर्डर और पोज़िशन कॉल पर 3-कंकरेंट-रिक्वेस्ट की लिमिट, और पूरे खाते में एक सेकंड में 1,000 ऑर्डर इंस्ट्रक्शन की कैप। बहुत ज़्यादा फ़ेल्ड लॉगिन इस पर 20-मिनट का लॉकआउट जोड़ते हैं। प्रोडक्शन कोड के लिए इनमें से किसी पर भरोसा करने से पहले मौजूदा डॉक्यूमेंटेशन जांच लें।

इस साइट के स्पोर्ट्स बेटिंग ब्रोकर बेटिंग बॉट की इजाज़त देते हैं?

यह ब्रोकर पर निर्भर करता है, और यह पेज उसकी जानकारी दोबारा नहीं देगा; हर ब्रोकर की API और ऑटोमेशन पर अपनी पोज़िशन कवर करता पेज में ब्रोकर-दर-ब्रोकर पूरी बात है, बेटफेयर key की लागत के साथ।