इस पेज पर
यह API क्या करता है, और क्या नहीं
ज़्यादातर SMS gateway API भेजने के लिए बने होते हैं: आप मैसेज पोस्ट करते हैं और ऑपरेटर उसे डिलीवर करता है। यह API प्राप्त करने के लिए बना है। यह एक सवाल का अच्छे से जवाब देता है, मेरे नंबर पर अभी कौन-सा कोड आया?, उन फ़ोन के नंबरों के लिए जिन्हें आपने नामांकित और सत्यापित किया है।
- हाँ: सत्यापन और वन-टाइम कोड पढ़ना, अगले कोड का इंतज़ार करना, अपने गेटवे फ़ोन और नंबरों की सूची देखना, और हाल में कैप्चर हुए मैसेज पढ़ना।
- नहीं: SMS भेजना, बल्क या मार्केटिंग कैंपेन, या नंबर किराए पर लेना और ख़रीदना। BusySMS कोई नंबर नहीं देता; SIM आपकी होती है।
अगर आपको मैसेज भेजने हैं, तो किसी मैसेजिंग प्रोवाइडर का इस्तेमाल करें। अगर आपको वह कोड चाहिए जो कोई वेबसाइट आपके नंबर पर भेजती है, तो यही API है। फ़ोन वाला हिस्सा Android SMS gateway गाइड में है।
ऑथेंटिकेशन
डैशबोर्ड में REST API के तहत कुंजी बनाएँ। यह bsk_live_ से शुरू होती है और सिर्फ़ एक बार दिखती है, इसलिए इसे सीक्रेट की तरह रखें, जैसे BUSYSMS_API_KEY में। हर अनुरोध में इसे इनमें से किसी एक हेडर में भेजें:
Authorization: Bearer bsk_live_xxxxxxxx
# or
X-API-Key: bsk_live_xxxxxxxxकुंजी एक व्यक्ति की होती है और सिर्फ़ उसी के फ़ोन देखती है, साथ में वे नंबर जो उसके साथ साझा किए गए हैं। डैशबोर्ड में बनी कुंजी कोड पढ़ सकती है, आपके फ़ोन और नंबरों की सूची देख सकती है, आपके खाते की स्थिति पढ़ सकती है और रुके हुए फ़ोन को जगा सकती है; वह कोई डिवाइस हटा नहीं सकती और न आपका खाता संभाल सकती है, इसलिए लीक हुई कुंजी आपका बिल नहीं बदल सकती। फिर भी कुंजियाँ सर्वर पर ही रखें: जिसके पास कुंजी है, वह आपके कोड पढ़ सकता है।
एंडपॉइंट
बेस URL https://busysms.net/api/v1 है। अनुरोध सामान्य GET होते हैं और जवाब JSON में आते हैं।
GET /codes: आपके सभी नंबरों में सबसे नया कोड।timeoutMsके साथ यह अगले कोड का 90 सेकंड तक इंतज़ार करता है। फ़िल्टर:service,phone,deviceId।GET /devices: आपके गेटवे फ़ोन, उनकी id, नाम, नंबर, प्लेटफ़ॉर्म और ऑनलाइन, सत्यापित व रुकी हुई स्थिति के साथ, और आपके साथ साझा किए गए नंबर।GET /numbers: सिर्फ़ आपके नंबर, हर एक के साथcanReceiveऔर, जब वह कोड नहीं पा सकता, एकreason:unverified,verification_pending,inactive,gateway_offयाphone_unreachable।GET /devices/:id/messages: किसी एक फ़ोन के हाल में कैप्चर हुए मैसेज, सबसे नए पहले।service,limit(डिफ़ॉल्ट 50, अधिकतम 200) औरsinceलेता है।GET /account: आपका खाता, उसके ट्रायल और सदस्यता की स्थिति के साथ।
कोड का इंतज़ार करें: curl, Node.js और Python
ज़्यादातर इंटीग्रेशन को जिस कॉल की ज़रूरत होती है, वह है SMS भिजवाने वाली किसी कार्रवाई के ठीक बाद लॉन्ग-पोल। इंतज़ार शुरू करें, साइन-इन ट्रिगर करें, और जैसे ही मेल खाता कोड आता है, अनुरोध लौट आता है।
curl -s -H "Authorization: Bearer $BUSYSMS_API_KEY" \
"https://busysms.net/api/v1/codes?service=exampleapp&timeoutMs=60000"const params = new URLSearchParams({ service: "exampleapp", timeoutMs: "60000" });
const res = await fetch(`https://busysms.net/api/v1/codes?${params}`, {
headers: { Authorization: `Bearer ${process.env.BUSYSMS_API_KEY}` },
});
if (res.status === 402) throw new Error("Trial over or subscription inactive");
if (!res.ok) throw new Error(`BusySMS ${res.status}: ${await res.text()}`);
const { code, message } = await res.json();
if (code) console.log(`${code} from ${message.sender}`);
else console.log("No new code within 60 seconds");import os
import requests
r = requests.get(
"https://busysms.net/api/v1/codes",
params={"service": "exampleapp", "timeoutMs": 60000},
headers={"Authorization": f"Bearer {os.environ['BUSYSMS_API_KEY']}"},
timeout=75,
)
if r.status_code == 402:
raise RuntimeError("Trial over or subscription inactive")
r.raise_for_status()
data = r.json()
if data["code"]:
print(data["code"], "from", data["message"]["sender"])
else:
print("No new code within 60 seconds")क्रम उतना मायने नहीं रखता जितना आपको डर हो सकता है: अनुरोध शुरू होने से लगभग एक सेकंड पहले तक आया कोड भी नया गिना जाता है, उससे पुराना नहीं। टेस्ट में पहले अनुरोध शुरू करें और फिर SMS ट्रिगर करें; OTP ऑटोमेशन गाइड दिखाती है कि Playwright, Selenium और Cypress में यह कैसे करें।
जवाब में क्या आता है
हर /codes जवाब का ढाँचा एक जैसा होता है (यहाँ message ऑब्जेक्ट छोटा करके दिखाया गया है):
{
"code": "482913",
"message": {
"otpCode": "482913",
"phone": "+447700900123",
"sender": "ExampleApp",
"service": "exampleapp",
"serviceLabel": "ExampleApp",
"bodyPreview": "Your ExampleApp verification code is 482913",
"receivedAt": 1792674000000,
"deviceName": "Test phone"
}
}जब समय रहते कुछ नया नहीं आता तो code null होता है: इंतज़ार के दौरान API कभी पुराने कोड पर नहीं लौटता। receivedAt epoch मिलीसेकंड में होता है। service एक छोटी id है जो BusySMS हर मैसेज को देता है: कोई जाना-पहचाना ब्रांड, जैसे google, telegram या microsoft, नहीं तो भेजने वाले के नाम का slug। सिर्फ़ उसी भेजने वाले के कोड का इंतज़ार करने के लिए इसे service= के रूप में भेजें।
एरर और उन्हें कैसे संभालें
401: कुंजी नहीं है, गलत फ़ॉर्मैट में है या रद्द कर दी गई है। रद्द कुंजी पर जवाब मेंkey_revokedआता है।402 payment_required: ट्रायल खत्म हो गया है और कोई सक्रिय सदस्यता नहीं है। कोड पढ़ना रुक जाता है, लेकिन/devicesजवाब देता रहता है ताकि आप देख सकें कि क्या गड़बड़ है, और जवाब मेंbillingUrlहोता है।403: डिवाइस किसी और खाते का है, या कुंजी के पास इस रूट का स्कोप नहीं है (insufficient_scope)।404: ऐसा कोई डिवाइस नहीं।409 number_unverified: उस फ़ोन का नंबर अभी सत्यापित नहीं हुआ है, इसलिए उसके मैसेज पढ़े नहीं जा सकते।429: रेट लिमिट लगी है। दोबारा कोशिश करने से पहलेretryAfterMsतक रुकें।
सीमाएँ और अच्छे तरीके
- एक इंतज़ार ज़्यादा से ज़्यादा 90 सेकंड चलता है। अगर कोड आने में ज़्यादा समय लग सकता है, तो एक अनुरोध खुला रखने के बजाय नए टाइमआउट के साथ फिर से कॉल करें।
- कई नंबर हों तो फ़िल्टर करें: पाने वाले नंबर के साथ
phone=, या अपने किसी एक फ़ोन के लिएdeviceId=, ताकि किसी दूसरे साइन-इन के लिए आया कोड न लौटे। - अगर इंतज़ार शुरू होते समय आपका कोई भी फ़ोन कैप्चर नहीं कर रहा, तो BusySMS फ़ोन पर नोटिफ़िकेशन भेजकर गेटवे फिर से चालू करने को कहता है। यह कभी रिमोट से कैप्चर चालू नहीं करता; किसी इंसान को टैप करना होता है।
- कैप्चर हुए मैसेज 7 दिन तक रखे जाते हैं, फिर मिटा दिए जाते हैं।
- कोड पढ़ने के लिए सक्रिय ट्रायल या सदस्यता चाहिए: 7 दिन के मुफ़्त ट्रायल के बाद $5 प्रति सत्यापित नंबर प्रति माह। प्रति अनुरोध कोई शुल्क नहीं।
REST API से आगे
यही कोड AI एजेंट को BusySMS MCP सर्वर से मिलते हैं (देखें AI एजेंट के लिए SMS कोड), और लोगों को Chrome एक्सटेंशन से, जो वेबसाइट में कोड आपके लिए भर देता है।
आपके साथ साझा किए गए नंबर भी शामिल हैं। जब कोई साथी किसी नंबर के कोड साझा करता है, तो /codes उन्हें आपके अपने कोड के साथ लौटाता है, और phone= से आप सिर्फ़ उस नंबर को चुन सकते हैं।
सवाल-जवाब
अक्सर पूछे जाने वाले सवाल
क्या कोई मुफ़्त SMS gateway API है?
हर खाता पूरी API एक्सेस के साथ 7 दिन के मुफ़्त ट्रायल से शुरू होता है। उसके बाद $5 प्रति सत्यापित फ़ोन नंबर प्रति माह। कीमत प्रति नंबर है, प्रति मैसेज या प्रति अनुरोध नहीं।
क्या मैं इस API से SMS भेज सकता हूँ?
नहीं। BusySMS सिर्फ़ प्राप्त करता है: यह आपके अपने नंबरों पर आने वाले सत्यापन कोड पढ़ता है। भेजने के लिए किसी मैसेजिंग प्रोवाइडर का इस्तेमाल करें।
क्या BusySMS से मुझे फ़ोन नंबर मिलता है?
नहीं, BusySMS नंबर नहीं देता। जिस SIM के कोड आपको चाहिए, उस फ़ोन पर ऐप इंस्टॉल करें और नंबर सत्यापित करें; फिर उसके कोड आप पढ़ सकते हैं। iPhone भी चलता है, एक Shortcuts ऑटोमेशन के ज़रिए।
क्या साथी उसी नंबर के कोड पढ़ सकते हैं?
हाँ। नंबर को 5 और BusySMS यूज़र्स तक के साथ साझा करें; स्वीकार करने के बाद उस पर आने वाले नए कोड उनके डैशबोर्ड, ऐप्स, Chrome एक्सटेंशन, API और MCP तक पहुँचते हैं, उनके लिए बिना किसी लागत के।
क्या मैं API को ब्राउज़र या मोबाइल ऐप से कॉल कर सकता हूँ?
कुंजी सर्वर पर रखें: जिसके पास वह है, वह आपके कोड पढ़ सकता है। ब्राउज़र के लिए Chrome एक्सटेंशन इस्तेमाल करें, जो कुंजी के बजाय आपके BusySMS खाते से साइन इन करता है।
ब्लॉग
ब्लॉग से और लेख
सभी लेखआगे पढ़ें
संबंधित गाइड
सभी गाइडSMS पाने का API
अपने ही नंबरों पर API से कोड पाएँ, और जानें कि यह “receive SMS online” वर्चुअल-नंबर सर्विस से कैसे अलग है।
गाइड पढ़ेंटेस्ट में OTP ऑटोमेट करें
API से कोड का इंतज़ार करके Playwright, Selenium, Cypress और सामान्य स्क्रिप्ट में SMS टू-फ़ैक्टर कोड ऑटोमेट करें।
गाइड पढ़ेंAI एजेंट के लिए SMS कोड
Claude, Codex या किसी भी MCP क्लाइंट को BusySMS MCP सर्वर से SMS सत्यापन कोड का इंतज़ार करने दें।
गाइड पढ़ेंअपने ही नंबर पर आज़माएँ
ऐप इंस्टॉल करें, अपना नंबर सत्यापित करें और आज ही अपना पहला कोड पढ़ें। हर खाता 7 दिन के मुफ़्त ट्रायल से शुरू होता है; उसके बाद $5 प्रति सत्यापित नंबर प्रति माह, और आप कभी भी रद्द कर सकते हैं।
BusySMS के बारे में और
