SNSOTP OTP API
एसएमएस सत्यापन के लिए एक REST API। 182 सेवाओं में से एक के लिए 154 देशों में से एक में एक नंबर ऑर्डर करें, ऑर्डर से वन-टाइम कोड पढ़ें, और 20 मिनट में कोई कोड नहीं आने पर पूरी कीमत वापस पाएं।
हर एंडपॉइंट पैरामीटर्स को क्वेरी पैरामीटर्स (GET) या फॉर्म फील्ड्स या JSON (POST) के रूप में स्वीकार करता है। उत्तर JSON हैं; पैसा दो दशमलव स्थानों के साथ USD स्ट्रिंग है और समय UTC में ISO 8601 है।
https://snsotp.com/api/v1
कंसोल से आपकी API कुंजी, Authorization: Bearer sok_... के रूप में भेजी गई
प्रमाणीकरण
कंसोल के API पेज पर एक कुंजी बनाएं। यह sok_ से शुरू होती है और एक बार दिखाई जाती है, इसलिए इसे एक पर्यावरण वेरिएबल में स्टोर करें। कुंजी को बदलने से पुरानी कुंजी तुरंत बंद हो जाती है। /services, /countries और /prices के लिए कॉल बिना कुंजी के काम करते हैं।
Authorization: Bearer sok_your_key_here
कुंजी को key क्वेरी पैरामीटर या फॉर्म फील्ड के रूप में भी भेजा जा सकता है, जो उन टूल्स की मदद करता है जो हेडर्स सेट नहीं कर सकते।
त्वरित शुरुआत
एक नंबर ऑर्डर करें, इसे ऐप को दें, फिर कोड आने तक ऑर्डर को पोल करें। चार भाषाओं में एक ही फ्लो:
# 1. Order a number for whatsapp in US
curl -X POST https://snsotp.com/api/v1/orders \
-H "Authorization: Bearer $SNSOTP_KEY" \
-d service=whatsapp -d country=us
# 2. Read the code (poll every 3 to 5 seconds)
curl https://snsotp.com/api/v1/orders/OT-7K2M9QX4PB \
-H "Authorization: Bearer $SNSOTP_KEY"GET/services
हर सेवा अपने कोड और सबसे कम कीमत के साथ · कोई कुंजी नहीं
हर सेवा जिसे आप ऑर्डर कर सकते हैं, उसका कोड (इसे अन्य कॉल में सेवा के रूप में उपयोग करें), उसकी श्रेणी और देशों में सबसे कम कीमत। कुंजी की आवश्यकता नहीं है।
curl https://snsotp.com/api/v1/services
{
"services": [
{ "code": "whatsapp", "name": "WhatsApp", "category": "social", "from": "0.09" },
{ "code": "telegram", "name": "Telegram", "category": "social", "from": "0.03" }
]
}GET/countries
हर देश अपने कोड और डायल कोड के साथ · कोई कुंजी नहीं
हर देश उसके कोड (ISO 3166 अल्फा-2 लोअर केस में, इसे देश के रूप में उपयोग करें) और उसके डायल कोड के साथ। कुंजी की आवश्यकता नहीं है।
curl https://snsotp.com/api/v1/countries
{
"countries": [
{ "code": "us", "name": "United States", "dial_code": "1" },
{ "code": "gb", "name": "United Kingdom", "dial_code": "44" }
]
}GET/prices
एक सेवा, एक देश या दोनों के लिए कीमतें · कोई कुंजी नहीं
हर देश में एक सेवा के लिए प्रति ऑर्डर कीमत, हर सेवा के लिए एक देश, या एक जोड़ी। कम से कम एक फिल्टर भेजें। कुंजी की आवश्यकता नहीं है।
पैरामीटर्स
servicestring
सेवा कोड, उदाहरण के लिए whatsapp
countrystring
देश कोड, उदाहरण के लिए us
curl "https://snsotp.com/api/v1/prices?service=whatsapp&country=us"
{
"prices": [
{ "service": "whatsapp", "country": "us", "price": "0.93" }
]
}GET/balance
USD में आपका क्रेडिट · कुंजी आवश्यक
USD में आपका क्रेडिट।
curl https://snsotp.com/api/v1/balance \ -H "Authorization: Bearer $SNSOTP_KEY"
{
"balance": "42.50",
"currency": "USD"
}POST/orders
एक सेवा और एक देश के लिए एक नंबर ऑर्डर करें · कुंजी आवश्यक
एक नंबर ऑर्डर करता है और उसकी कीमत चार्ज करता है। उत्तर में नंबर पूर्ण रूप में (phone) और डायल कोड के बिना (number) होता है। ऑर्डर 20 मिनट के लिए खुला रहता है; उस समय में कोई कोड नहीं आने पर कीमत आपके क्रेडिट में वापस आ जाती है। उत्तर स्थिति 201।
पैरामीटर्स
servicestringआवश्यक
GET /services से सेवा कोड
countrystringआवश्यक
GET /countries से देश कोड
curl -X POST https://snsotp.com/api/v1/orders \ -H "Authorization: Bearer $SNSOTP_KEY" \ -d service=whatsapp -d country=us
{
"order": {
"id": "OT-7K2M9QX4PB",
"service": "whatsapp",
"country": "us",
"phone": "+13475550182",
"number": "3475550182",
"dial_code": "1",
"price": "0.93",
"status": "waiting",
"code": null,
"sms": null,
"codes": [],
"expires_at": "2026-11-03T12:20:00.000Z"
},
"window_minutes": 20
}GET/orders/{id}
एक ऑर्डर की स्थिति, कोड और SMS पाठ · कुंजी आवश्यक
एक ऑर्डर उसकी स्थिति, नवीनतम कोड, नवीनतम एसएमएस टेक्स्ट और अब तक प्राप्त हर कोड के साथ। स्थिति waiting होने पर हर 3 से 5 सेकंड में पोल करें।
पैरामीटर्स
idpathआवश्यक
POST /orders से ऑर्डर आईडी
curl https://snsotp.com/api/v1/orders/OT-7K2M9QX4PB \ -H "Authorization: Bearer $SNSOTP_KEY"
{
"order": {
"id": "OT-7K2M9QX4PB",
"service": "whatsapp",
"country": "us",
"phone": "+13475550182",
"number": "3475550182",
"price": "0.93",
"status": "received",
"code": "284913",
"sms": "Your WhatsApp code is 284913",
"expires_at": "2026-11-03T12:20:00.000Z"
}
}GET/orders
आपके खुले ऑर्डर (या सभी status=all के साथ) · कुंजी आवश्यक
आपके खुले ऑर्डर, नए से पुराने। हर स्थिति में हाल के ऑर्डर के लिए status=all जोड़ें।
पैरामीटर्स
statusstring
open (डिफ़ॉल्ट) या all
limitnumber
1 से 100, डिफ़ॉल्ट 50
curl "https://snsotp.com/api/v1/orders?status=open" \ -H "Authorization: Bearer $SNSOTP_KEY"
{
"orders": [
{ "id": "OT-7K2M9QX4PB", "service": "whatsapp", "status": "received", "code": "284913" }
]
}POST/orders/{id}/resend
एक ही नंबर पर दूसरा कोड · कुंजी आवश्यक
पहले कोड के बाद उसी नंबर पर एक और कोड मांगता है, विंडो के अंदर, बिना अतिरिक्त लागत के। फिर ऐप में एक नया एसएमएस ट्रिगर करें; waiting_for_resend सच है जब तक यह नहीं आता।
पैरामीटर्स
idpathआवश्यक
ऑर्डर आईडी
curl -X POST https://snsotp.com/api/v1/orders/OT-7K2M9QX4PB/resend \ -H "Authorization: Bearer $SNSOTP_KEY"
{
"order": { "id": "OT-7K2M9QX4PB", "status": "received", "waiting_for_resend": true }
}POST/orders/{id}/finish
कोड का उपयोग करने के बाद एक ऑर्डर बंद करें · कुंजी आवश्यक
एक ऑर्डर को बंद करता है जिसने एक बार कोड प्राप्त किया है जब आपने इसका उपयोग कर लिया है। फिनिशिंग वैकल्पिक है: खुले ऑर्डर विंडो समाप्त होने पर अपने आप बंद हो जाते हैं।
पैरामीटर्स
idpathआवश्यक
ऑर्डर आईडी
curl -X POST https://snsotp.com/api/v1/orders/OT-7K2M9QX4PB/finish \ -H "Authorization: Bearer $SNSOTP_KEY"
{
"order": { "id": "OT-7K2M9QX4PB", "status": "finished" }
}POST/orders/{id}/cancel
कोड से पहले रद्द करें, पूर्ण वापसी · कुंजी आवश्यक
एक कोड आने से पहले एक ऑर्डर को रद्द करता है और पूरी कीमत तुरंत आपके क्रेडिट में वापस कर देता है। कोड के बाद, रद्द करने पर has_code उत्तर देता है।
पैरामीटर्स
idpathआवश्यक
ऑर्डर आईडी
curl -X POST https://snsotp.com/api/v1/orders/OT-7K2M9QX4PB/cancel \ -H "Authorization: Bearer $SNSOTP_KEY"
{
"order": { "id": "OT-7K2M9QX4PB", "status": "canceled", "refunded": "0.93" }
}ऑर्डर स्थिति
waitingनंबर तैयार है और अभी तक कोई एसएमएस नहीं आया है। रद्द करना संभव है।receivedकम से कम एक कोड आ चुका है। code और sms में नवीनतम कोड होता है।finishedएक कोड के बाद बंद, फिनिश द्वारा या जब विंडो समाप्त हुई।refunded20 मिनट में कोई कोड नहीं आया। पूरी कीमत आपके क्रेडिट में वापस आ गई है।canceledकोड आने से पहले रद्द कर दिया गया। पूरी कीमत आपके क्रेडिट में वापस आ गई है।
त्रुटियाँ
त्रुटियां HTTP स्थिति और एक स्थिर कोड और पठनीय संदेश के साथ एक बॉडी का उपयोग करती हैं।
- 400
missing_filter, bad_jsonएक आवश्यक मान गायब है या बॉडी को पढ़ा नहीं जा सकता है। - 401
no_key, bad_keyकुंजी गायब, गलत या हटाई गई है। - 402
no_balanceइस ऑर्डर के लिए पर्याप्त क्रेडिट नहीं है। कंसोल में क्रेडिट जोड़ें। - 404
unknown_service, unknown_country, not_sold, not_foundकोड या ऑर्डर मौजूद नहीं है, या जोड़ी बेची नहीं जाती है। - 409
too_many_open, has_code, not_ready, no_numbersक्रिया ऑर्डर स्थिति के अनुकूल नहीं है, या अभी कोई नंबर उपलब्ध नहीं है (कुछ भी चार्ज नहीं किया जाता है)। - 429
rate_limitedएक कुंजी के साथ एक मिनट में 300 से अधिक अनुरोध।
{
"error": {
"code": "no_balance",
"message": "Not enough credit. Add credit in the console."
}
}दर सीमाएं
- प्रति कुंजी प्रति मिनट 300 अनुरोध। उससे ऊपर API मिनट के बाकी हिस्से के लिए 429 rate_limited उत्तर देता है।
- प्रति खाता 20 तक खुले ऑर्डर। एक और खोलने के लिए एक को फिनिश या रद्द करें।
- हर 3 से 5 सेकंड में ऑर्डर पोल करें; कोड आमतौर पर एक मिनट के भीतर आ जाते हैं।
SMS एक्टिवेशन फॉर्मेट
सामान्य handler_api.php फॉर्मेट के लिए लिखे गए स्क्रिप्ट्स एक ही API कुंजी के साथ काम करते हैं: बेस एड्रेस को https://snsotp.com/stubs/handler_api.php में बदलें और एक्शन्स को रखें। सेवा और देश कोड REST API के समान हैं।
getBalanceACCESS_BALANCE:42.50
getServicesListसेवाओं की JSON सूची
getCountriesदेशों की JSON मैप
getPricesservice, country (वैकल्पिक)JSON {country: {service: {cost, count}}}
getNumberservice, countryACCESS_NUMBER:<id>:<phone>
getStatusidSTATUS_WAIT_CODE, STATUS_OK:<code>, STATUS_WAIT_RETRY:<code>, STATUS_CANCEL
setStatusid, status 1 / 3 / 6 / 8ACCESS_READY, ACCESS_RETRY_GET, ACCESS_ACTIVATION, ACCESS_CANCEL
curl "https://snsotp.com/stubs/handler_api.php\ ?api_key=$SNSOTP_KEY&action=getNumber\ &service=telegram&country=gb" ACCESS_NUMBER:OT-3QF8ZK2W7M:447700900182
setStatus मान: 1 तैयार, 3 एक और कोड, 6 समाप्त, 8 पूर्ण वापसी के साथ रद्द करें।