कोई एकल प्रीफ़िक्स चुनें
देश और कवरेज क्षेत्र खोजने वाली कॉल का उपयोग करें, फिर getprefixes को समूहीकरण के बिना कॉल करें। चुने गए प्रीफ़िक्स का यह मान कॉपी करें: uuid। यदि returns_numbers का मान 0 है, तो उस प्रीफ़िक्स के लिए ऑर्डर करते समय नंबर आवंटित होता है; लौटाए गए इस मान का उपयोग करें: next_function; अलग-अलग नंबरों की सूची उपलब्ध होने की शर्त न रखें।
सीमित आकार का बैच देखें
सामान्य खोज के लिए यह सेटिंग इस्तेमाल करें: compact=1। इच्छित बैच आकार पाथ और quantity क्वेरी, दोनों में दें, जैसा नीचे दिखाया गया है। पेज या कर्सर का कोई पैरामीटर नहीं है। संक्षिप्त परिणाम एक नमूना होता है; अनुरोध दोहराने से ऐसा अगला पेज मिलने की गारंटी नहीं है जिसमें पहले मिले नंबर न हों। खाली या छोटे परिणाम को उपलब्ध नंबरों की कुल संख्या न मानें।
याद रखने में आसान अंकों का पैटर्न खोजें
यह दें: number_filter_mode=contains या ends_with; साथ में यह भी दें: number_filter_value। मान में 1–15 अंक होने चाहिए। खोज फ़िल्टर लगाने से पहले संभावित नंबरों के सीमित बैच प्राप्त कर सकती है, इसलिए अन्य मेल खाने वाले उपलब्ध नंबर छूट सकते हैं। यदि आवश्यक खोज लागू करने के लिए आपको समर्थित स्रोत चाहिए, तो यह चयनकर्ता प्राप्त करें: pid। इसे MultiTEL से प्राप्त करें और यह सेटिंग इस्तेमाल करें: filter_required=1; चयन न होने या चयन समर्थित न होने पर API त्रुटि लौटती है।
चुने गए नंबर की समीक्षा करें
इन मानों को पढ़ें: number, info.uuid, चुनी गई योजना का price[].uuid; उपलब्ध सुविधाओं के नाम और पंजीकरण की आवश्यकताएँ भी उसी परिणाम से पढ़ें। यह सरणी: price अलग-अलग चैनल संख्याओं और दरों वाली कई योजनाएँ दे सकती है। धनराशि वाले फ़ील्ड और संख्याएँ स्ट्रिंग के रूप में एन्कोड की जा सकती हैं। वैकल्पिक मेटाडेटा, जिसमें यह फ़ील्ड भी शामिल है: info.state, स्रोत के अनुसार बदलता है; राज्य संबंधी डेटा का एक ही सार्वभौमिक ढाँचा अनिवार्य न मानें और किसी ID से कीमतों का अनुमान न लगाएँ।
स्ट्रीमिंग रहित प्रक्रिया में, चुने गए बैच को पहली योजना की मासिक कीमत के अनुसार क्रमबद्ध करने से पहले संभावित नंबरों की डुप्लिकेट प्रविष्टियाँ हटाई जाती हैं और स्रोतों में उनका आवंटन किया जाता है। अन्य प्रक्रियाएँ पहले ही स्ट्रीमिंग शुरू कर सकती हैं, इसलिए प्रत्येक अनुरोध के लिए सभी परिणामों के एकसमान क्रम या डुप्लिकेट हटाए जाने की गारंटी नहीं है। क्रमबद्ध होने से यह भी सिद्ध नहीं होता कि लौटाए गए नमूने में पूरे कैटलॉग का सबसे सस्ता नंबर मौजूद है।
अलग से ऑर्डर करें और परिणाम की पुष्टि करें
खोज करने से कुछ भी खरीदा या आरक्षित नहीं होता। उसी खाते से ऑर्डर करने की प्रक्रिया के लिए लौटाए गए नंबर और योजना के पहचानकर्ता सहेजकर रखें। ऑर्डर भेजने से पहले वास्तविक योजना, आवश्यकताओं और शुल्कों की समीक्षा करें। पंजीकरण की आवश्यकताओं से सक्रियण में देरी हो सकती है; खोज परिणाम से सक्रियण की कोई निश्चित समयसीमा तय नहीं होती।
अनुरोध
सक्षम MultiTEL API खाते का उपयोग करें: पासवर्ड वाले खाते के लिए HTTP Basic क्रेडेंशियल, या टोकन वाले खाते के साथ Authorization: Bearer इस्तेमाल करें। खाते की अनुमतियाँ और उसके IP प्रतिबंध लागू होते हैं। प्रमाणीकरण संबंधी सामान्य मार्गदर्शन देखें।
पाथ पैरामीटर और URL क्वेरी पैरामीटर। सार्वजनिक खोज प्रक्रिया के लिए GET का उपयोग करें। हैंडलर कुछ चुनिंदा फ़ॉर्म/अनुरोध मान भी स्वीकार करता है, लेकिन यह JSON बॉडी वाला खोज API नहीं है।
curl --fail-with-body --get \
--user "${MULTITEL_API_USERNAME}:${MULTITEL_API_PASSWORD}" \
--data-urlencode "compact=1" \
--data-urlencode "quantity=10" \
"https://api.multitel.net/v3/getnumbers/${PREFIX_ID}/10"| नाम | प्रकार | अनिवार्य | विवरण |
|---|---|---|---|
prefix_id | string | हाँ | बिना समूहीकरण वाली getprefixes प्रतिक्रिया से लौटाया गया एकल प्रीफ़िक्स ID। इसे ज्यों का त्यों कॉपी करें; इसकी जगह किसी देश, कवरेज क्षेत्र, समूहित प्रीफ़िक्स या मूल्य योजना का ID न दें। |
quantity | integer | नहीं | प्राप्त करने का लक्ष्य, डिफ़ॉल्ट 1। शून्य या ऋणात्मक मान 1 हो जाते हैं। केवल पाथ का quantity समग्र परिणामों की भरोसेमंद सीमा नहीं है: किसी स्रोत से न बँधी खोज में quantity क्वेरी न होने पर खोज अधिक डेटा प्राप्त कर सकती है और अन्य प्रसंस्करण से पहले हर स्रोत से अधिकतम 50 प्रविष्टियाँ लौटा सकती है। सामान्य रूप से सीमित परिणाम देखने के लिए compact=1 का उपयोग करें और उदाहरण की तरह इच्छित संख्या क्वेरी में भी दें। |
| नाम | प्रकार | अनिवार्य | विवरण |
|---|---|---|---|
quantity | integer | नहीं | अनुरोधित अंतिम बैच आकार। खाली न होने वाले मान पूर्णांकों में बदले जाते हैं, जिनका न्यूनतम मान 1 होता है। किसी स्रोत से न बँधी, स्ट्रीमिंग रहित प्रक्रिया में यह अंतिम आवंटन को सीमित करता है। इससे सेवा के लिए उतने नंबर खोजना अनिवार्य नहीं हो जाता। किसी स्रोत से बँधी संक्षिप्त खोजें इस सीमा के बजाय स्रोत का संक्षिप्त बैच लौटा सकती हैं। |
compact | string | नहीं | छोटी, स्ट्रीमिंग रहित प्रतिक्रिया के लिए 1, true या on का उपयोग करें; इसमें अंतिम आवंटन से पहले हर स्रोत से अधिकतम 10 प्रविष्टियाँ होती हैं। परिणाम उस समय प्राप्त उपलब्ध नंबरों का नमूना हैं, पूरा कैटलॉग नहीं। |
number_filter_mode | string | नहीं | अंकों के पैटर्न का वैकल्पिक मोड: contains या ends_with। number_filter_value भी दें। परिणामों की जाँच फ़ोन नंबरों के सामान्यीकृत अंकों के आधार पर होती है; हर संभावित मेल की गारंटी देने के लिए खोज सभी उपलब्ध नंबरों को एक-एक करके नहीं जाँचती। |
number_filter_value | string | नहीं | 1 से 15 अंक, जिनमें रिक्त स्थान, + या विराम चिह्न न हों। शुरुआत के शून्य महत्वपूर्ण हैं; इसे टेक्स्ट के रूप में भेजें। |
filter_required | string | नहीं | उन्नत: 1, true, yes या on के लिए फ़िल्टर मोड का समर्थन करने वाला, स्पष्ट रूप से चुना गया उपलब्ध नंबरों का स्रोत आवश्यक है। अन्यथा API status.code का मान 422 लौटाता है। सामान्य रूप से कैटलॉग देखने के लिए इसकी आवश्यकता नहीं है। |
pid | string | नहीं | MultiTEL द्वारा दिया गया उपलब्ध नंबरों के स्रोत का उन्नत चयनकर्ता। संख्यात्मक रूप और समर्थित 32-अक्षरीय हेक्साडेसिमल रूप स्वीकार किए जाते हैं; अपरिचित मान बिना किसी सूचना के अनदेखे कर दिए जाते हैं। सामान्य उपयोग में इसे न दें। मूल्य ID से चयनकर्ता न निकालें और यह न मानें कि कोई भी मनमाना चयनकर्ता उपलब्ध नंबरों को केवल उसी चयन तक सीमित करता है। |
प्रतिक्रिया
एक JSON ऑब्जेक्ट, जिसमें status और response होते हैं। सफलता पर status.code का मान 200 होता है और response नंबर प्रविष्टियों की एक सरणी होती है। status.results लौटाई गई सरणी की प्रविष्टियों की संख्या है; स्ट्रीमिंग प्रतिक्रिया में status.msg का मान Results: N या OK हो सकता है। compact=1 के बिना कुछ खोजें response सरणी को क्रमशः लिखती हैं और अंत में status देती हैं, इसलिए पूरी JSON बॉडी आने तक प्रतीक्षा करें। यह नई पंक्तियों से अलग किया गया JSON नहीं है। HTTP संचार सफल होने पर भी status.code जाँचें। सामान्य फ़ील्ड नीचे दिखाए गए हैं; स्रोत के अनुसार मेटाडेटा और वैकल्पिक फ़ील्ड बदलते हैं। हर पहचानकर्ता को ऐसा मान मानें जिसकी आंतरिक बनावट से अर्थ न निकाला जाए, और नंबर तथा उसके चुने गए price[].uuid को साथ सहेजें।
प्रतिक्रिया के ढाँचे का उदाहरण; यह खाते का वास्तविक समय का डेटा या वर्तमान मूल्य प्रस्ताव नहीं है।
{
"status": {
"code": 200,
"msg": "Results: 1",
"results": 1
},
"response": [
{
"number": "12125550123",
"info": {
"uuid": "NUMBER_ID_FROM_RESPONSE",
"prefix_uuid": "PREFIX_ID_FROM_RESPONSE",
"area_uuid": "AREA_ID_FROM_RESPONSE",
"country_uuid": "COUNTRY_ID_FROM_RESPONSE",
"country_iso": "US",
"prefix": "+1212",
"name": "Example area",
"state": "US"
},
"price": [
{
"uuid": "PRICE_PLAN_ID_FROM_RESPONSE",
"per_minute": "0.01",
"per_sms": "0",
"per_mms": "0",
"free_minutes": "0",
"setup_price": "1.00",
"monthly_price": "2.00",
"yearly_price": "0",
"channels": "2"
}
],
"contract": {
"term": "1 month",
"renewal": "monthly",
"notice": "none"
},
"restrictions": {
"needs_registration": "0",
"restrictions": ""
},
"features": [
"voice"
],
"overflow": "0"
}
]
}त्रुटियाँ
- 401: प्रमाणीकरण विफल रहा। क्रेडेंशियल अमान्य या अनुपस्थित होने तथा API खाते का एक्सेस अस्वीकार होने पर खोज परिणाम नहीं मिलते।
- 404: Invalid prefix ID, Invalid country, Invalid area, या No numbers found। status.msg पढ़ें; त्रुटि प्रतिक्रिया नंबरों की सरणी नहीं होती।
- 400: response.code में NUMBER_FILTER_INVALID: अमान्य मोड, ऐसा मान जो 1–15 अंकों का न हो, या मोड और मान दोनों दिए बिना filter_required देना।
- 422: response.code में NUMBER_FILTER_UNSUPPORTED: या तो प्रीफ़िक्स ऑर्डर के समय नंबर आवंटित करता है (reason=order_only_prefix और next_function ऑर्डर का रूट बताता है), या स्पष्ट रूप से चुना गया स्रोत आवश्यक फ़िल्टर का समर्थन नहीं कर सकता।
उपलब्धता और अन्य प्रभाव
- यह हैंडलर खोज करता है और मूल्य प्रस्ताव तैयार करता है; यह नंबर का ऑर्डर नहीं भेजता और नंबर खरीदने का शुल्क नहीं काटता। यह कैटलॉग के कैश ताज़ा कर सकता है, कैश में मौजूद पुरानी उपलब्धता प्रविष्टियाँ हटा सकता है, खाते के दायरे में मूल्य योजनाएँ सहेज सकता है और खोज लॉग लिख सकता है।
- उपलब्धता किसी एक समय की स्थिति दर्शाती है, आरक्षण नहीं। बाद का ऑर्डर विफल हो सकता है या उसमें उपलब्धता अलग हो सकती है। खरीद का दोबारा प्रयास करने से पहले ऑर्डर के परिणाम का मिलान करके स्थिति स्पष्ट करें।
- कीमतें खाते के लिए विशिष्ट होती हैं। चुनी गई योजना का ID उसी खाते के लिए सहेजें और ऑर्डर की शर्तों तथा शुल्कों की अलग से समीक्षा करें; केवल इस एंडपॉइंट से यह सिद्ध नहीं होता कि कीमत बाद में ऑर्डर करने तक मान्य रहेगी।
- उदाहरण में दिया गया नंबर और कीमतें प्रतिक्रिया का ढाँचा दिखाने वाले काल्पनिक उदाहरण हैं, वास्तविक समय का मूल्य प्रस्ताव नहीं। क्षमताएँ, चैनलों की संख्या, अनुबंध की अवधि और पंजीकरण की जानकारी वास्तविक चुने गए परिणाम से ही पढ़नी चाहिए।
- पंजीकरण के कुछ विवरणों में स्वरूपित टेक्स्ट या लिंक होते हैं। लौटाई गई स्ट्रिंग को अपने एप्लिकेशन में प्रदर्शित करते समय अविश्वसनीय डेटा मानकर संभालें।
- मोबाइल उपलब्धता और फ़्लैग खाते की पात्रता तथा उपलब्ध नंबरों पर निर्भर करते हैं। केवल कैटलॉग का प्रीफ़िक्स या is_mobile फ़्लैग किसी विशेष नंबर की मोबाइल क्षमताएँ स्थापित नहीं करता।