मुख्य सामग्री पर जाएँ
100+
देश
1000+ सर्विसेज़। Crypto से भुगतान, बिना KYC।
नंबर खरीदें

SMS वेरिफिकेशन API — SMSNoKYC

OTP सत्यापन को आद्योपांत स्वचालित करें। 190 से अधिक देशों में वर्चुअल नंबर आरक्षित करें, सेकंडों में SMS कोड पढ़ें, दीर्घकालिक समर्पित लाइनें किराए पर लें, और हर ऑर्डर को एक ही REST सतह से नियंत्रित करें — बिना API कुंजी, बिना KYC, क्रिप्टोकरेंसी में भुगतान।

पढ़ने का समय: 5 मिनट REST · JSON · OpenAPI 3.0 OpenAPI स्पेसिफ़िकेशन →

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

डेवलपर्स SMSNoKYC API क्यों चुनते हैं

SMSNoKYC उन डेवलपर्स के लिए सबसे लचीला SMS वेरिफिकेशन API है जिन्हें गुमनामी, ग्लोबल कवरेज और पूर्वानुमानित मूल्य निर्धारण की ज़रूरत है। बड़े एंटरप्राइज़ अनुबंधों, मासिक न्यूनतम और KYC प्रश्नावलियों के पीछे गेट करने वाले पुराने SMS-OTP प्रोवाइडर्स के विपरीत, SMSNoKYC किसी भी HTTPS क्लाइंट से काम करता है, केवल प्रति-नंबर चार्ज करता है, और 20+ क्रिप्टोकरेंसी स्वीकार करता है जिनमें Bitcoin, Monero, Ethereum, USDT, USDC, Solana, Litecoin, XRP, TRON और Toncoin शामिल हैं।

सामान्य उपयोग केसेस में scaled QA के लिए अकाउंट साइनअप ऑटोमेट करना, headless agents और CI bots के लिए OTP कोड प्राप्त करना, continuous integration में फोन-आवश्यक फ्लो वैलिडेट करना, Telegram या WhatsApp अकाउंट्स के लिए डेडिकेटेड दीर्घकालीन नंबर किराए पर लेना, और वर्चुअल, फ़िज़िकल या प्रीमियम ऑपरेटर टियर नियंत्रण के साथ 190+ देशों में geo-distributed वेरिफिकेशन शामिल हैं।

Authentication

API कुकी-आधारित सेशन ऑथेंटिकेशन का उपयोग करता है। प्रोग्रामेटिक रूप से प्रमाणित करने के लिए:

  1. अपने seed phrase के साथ /auth-api.php पर POST request भेजें
  2. उत्तर से सेशन cookie संग्रहीत करें
  3. सभी बाद के API अनुरोधों में cookie शामिल करें
POST /auth-api.php

अपने seed phrase से authenticate करें और session स्थापित करें।

पैरामीटरप्रकारRequiredविवरण
actionstringआवश्यक"login" होना चाहिए
seedstringआवश्यकआपका 16-अक्षरीय एक्सेस seed (जैसे AbC3-dEf4-gHj5-kLm6)
cURL
Python
JavaScript
# Login and save session cookie curl -X POST https://smsnokyc.com/auth-api.php \ -d "action=login&seed=AbC3-dEf4-gHj5-kLm6" \ -c cookies.txt
import requests session = requests.Session() resp = session.post("https://smsnokyc.com/auth-api.php", data={ "action": "login", "seed": "AbC3-dEf4-gHj5-kLm6" }) data = resp.json() print(data) # {"success": true, "user": {...}} # session object now holds the cookie for all future requests
const resp = await fetch("https://smsnokyc.com/auth-api.php", { method: "POST", credentials: "include", headers: { "Content-Type": "application/x-www-form-urlencoded" }, body: "action=login&seed=AbC3-dEf4-gHj5-kLm6" }); const data = await resp.json(); console.log(data); // {success: true, user: {...}}
सफल उत्तर
{ "success": true, "user": { "id": 42, "prefix": "AbC3", "balance": "74.50" } }
Error Response
{ "success": false, "error": "Invalid seed." }

Base URL

सभी API endpoints इससे संबंधित हैं:

https://smsnokyc.com/api.php?action={action}

सभी रेस्पॉन्स JSON में होते हैं। POST endpoints दोनों application/json और application/x-www-form-urlencoded request bodies स्वीकार करते हैं।

Rate Limits

API निम्नलिखित रेट सीमाएं लागू करता है:

Endpointसीमाविंडो
Authentication5 प्रयास15 मिनट
अन्य सभी endpointsकोई निश्चित सीमा नहीं

Rate limiting: Authentication 15 मिनट में 5 प्रयासों तक सीमित है। अन्य endpoints अभी rate-limited नहीं हैं, लेकिन अत्यधिक उपयोग throttle हो सकता है। उचित request अंतराल रखें।

Error Handling

सभी त्रुटियाँ <code>error</code> फ़ील्ड वाला JSON ऑब्जेक्ट लौटाती हैं:

{ "error": "Description of what went wrong" }
HTTP Codeअर्थ
200सफल (एप्लिकेशन-स्तरीय त्रुटियों के लिए response body जांचें)
403Invalid CSRF token
405गलत HTTP विधि (जैसे POST-only endpoint पर GET)
429Rate limit exceeded

सामान्य application-level त्रुटियाँ:

त्रुटिकारण
"Login required"Session expired or not authenticated
"Insufficient balance"पर्याप्त फंड नहीं — need और have फ़ील्ड शामिल हैं
"Service not available for this country"चयनित देश के लिए कोई स्टॉक या सेवा उपलब्ध नहीं
"Missing country or service"Required parameters were not provided

देश सूची

GET /api.php?action=countries

उपलब्ध वर्चुअल नंबरों वाले सभी सक्रिय देश लौटाता है। प्रमाणीकरण आवश्यक नहीं।

cURL
Python
JavaScript
curl https://smsnokyc.com/api.php?action=countries
resp = session.get("https://smsnokyc.com/api.php", params={"action": "countries"}) countries = resp.json() for c in countries: print(c["code"], c["name"])
const resp = await fetch("https://smsnokyc.com/api.php?action=countries"); const countries = await resp.json();
Response
[ { "id": 1, "code": "us", "name": "USA" }, { "id": 2, "code": "gb", "name": "UK" }, { "id": 3, "code": "de", "name": "Germany" } ]

सेवा सूची

GET /api.php?action=services&country={code}

किसी विशेष देश के लिए उपलब्ध सेवाएं, मूल्य और स्टॉक सहित लौटाता है। देश कोड के बिना, मूल्य के बिना सभी सेवाएं लौटाता है।

पैरामीटरप्रकारRequiredविवरण
countrystringवैकल्पिकISO 3166-1 alpha-2 देश कोड (जैसे us, gb, de)
Response (देश सहित)
[ { "id": 12, "name": "WhatsApp", "slug": "whatsapp", "icon_code": "WA", "icon_color": "#25d366", "category": "social", "price": "0.35", "stock": 847 } ]

ऑपरेटर सूची

GET /api.php?action=operators&country={code}

किसी विशेष देश के लिए उपलब्ध ऑपरेटर (कैरियर) लौटाता है। प्रत्येक ऑपरेटर का एक प्रकार और आधार सेवा मूल्य पर लागू मूल्य गुणक होता है।

पैरामीटरप्रकारRequiredविवरण
countrystringआवश्यकISO 3166-1 alpha-2 देश कोड
Response
[ { "id": 5, "name": "T-Mobile", "type": "physical", "price_multiplier": "1.50", "icon_slug": "tmobile", "icon_domain": "t-mobile.com" } ]

ऑपरेटर प्रकार: virtual — VoIP नंबर, सबसे सस्ते, कुछ सर्विसेज़ द्वारा ब्लॉक हो सकते हैं। physical — असली SIM कार्ड, अधिक सक्सेस रेट। premium — सबसे तेज़ डिलीवरी (~10s), सर्वाधिक सक्सेस रेट।

नंबर खरीदें (SMS Activation)

POST /api.php?action=buy

एकबारगी SMS सत्यापन के लिए एक वर्चुअल नंबर खरीदें। नंबर 20 मिनट तक सक्रिय रहता है। यदि कोई SMS प्राप्त नहीं होता, तो आपका बैलेंस स्वचालित रूप से वापस कर दिया जाता है।

पैरामीटरप्रकारRequiredविवरण
countrystringआवश्यकदेश कोड (जैसे us)
service_idintegerआवश्यकList Services से Service ID
operator_idintegerवैकल्पिकList Operators से ऑपरेटर ID। डिफ़ॉल्ट ऑपरेटर के लिए छोड़ दें।
cURL
Python
JavaScript
curl -X POST https://smsnokyc.com/api.php?action=buy \ -b cookies.txt \ -H "Content-Type: application/json" \ -d '{"country":"us","service_id":12,"operator_id":5}'
resp = session.post("https://smsnokyc.com/api.php?action=buy", json={ "country": "us", "service_id": 12, "operator_id": 5 }) order = resp.json() print(f"Order #{order['order_id']} — ${order['price']}")
const resp = await fetch("https://smsnokyc.com/api.php?action=buy", { method: "POST", credentials: "include", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ country: "us", service_id: 12, operator_id: 5 }) }); const order = await resp.json();
सफल उत्तर
{ "success": true, "order_id": 1847, "price": 0.53, "balance": "73.97" }
त्रुटि: अपर्याप्त बैलेंस
{ "error": "Insufficient balance", "need": 0.53, "have": "0.10" }

ऑर्डर सूची

GET /api.php?action=orders

आपके 50 सबसे हालिया ऑर्डर, फ़ोन नंबर और SMS कोड सहित लौटाता है। सक्रिय ऑर्डर पर इनकमिंग SMS कोड जांचने के लिए इस Endpoint को poll करें।

Response
[ { "id": 1847, "price": "0.53", "status": "completed", "phone_number": "+12025551234", "sms_code": "847293", "created_at": "2026-04-09 14:32:00", "country_code": "us", "country_name": "USA", "service_name": "WhatsApp", "operator_name": "T-Mobile" } ]

ऑर्डर स्टेटस: active — SMS का इंतज़ार। completed — SMS मिल गया। cancelled — यूज़र ने रद्द किया। refunded — ऑटो-रिफंड (टाइमआउट से पहले कोई SMS नहीं आया)। expired — समय समाप्त।

नंबर रेंटल कीमत देखें

GET /api.php?action=rental_price&country={code}&operator_id={id}&duration={days}

किसी निश्चित ऑपरेटर से निधार्रित अवधि के लिए डेडिकेटेड नंबर किराए पर लेने की कीमत जानें।

पैरामीटरप्रकारRequiredविवरण
countrystringआवश्यकदेश कोड
operator_idintegerआवश्यकऑपरेटर ID
durationintegerआवश्यककिराया अवधि दिनों में: 7, 14, 30, या 90
Response
{ "price": "12.50", "duration": 30, "operator": "T-Mobile", "type": "physical", "country": "USA" }

नंबर किराए पर लें

POST /api.php?action=rental_buy

एक या अधिक समर्पित फ़ोन नंबर किराए पर लें। पूरी किराया अवधि के दौरान नंबर विशेष रूप से आपका होता है और असीमित इनकमिंग SMS प्राप्त करता है।

पैरामीटरप्रकारRequiredविवरण
countrystringआवश्यकदेश कोड
operator_idintegerआवश्यकऑपरेटर ID
durationintegerआवश्यक7, 14, 30, या 90 दिन
qtyintegerवैकल्पिककिराए पर लेने वाले नंबरों की संख्या (1–10, डिफ़ॉल्ट: 1)
सफल उत्तर
{ "success": true, "order_ids": [1848, 1849], "total": 25.00, "qty": 2, "unit_price": 12.50, "duration": 30, "balance": "49.50" }

यूज़र जानकारी देखें

GET /api.php?action=user

वर्तमान उपयोगकर्ता की खाता जानकारी और बैलेंस लौटाता है। प्रमाणीकरण स्थिति और उपलब्ध धनराशि जांचने के लिए इसका उपयोग करें।

Authenticated
{ "logged_in": true, "id": 42, "prefix": "AbC3", "balance": "74.50" }
प्रमाणित नहीं
{ "logged_in": false }

संपूर्ण Workflow उदाहरण

यह एक संपूर्ण Python उदाहरण है जो authenticate करता है, सर्विस ढूंढता है, नंबर खरीदता है, और SMS कोड के लिए poll करता है:

Python
import requests, time BASE = "https://smsnokyc.com" SEED = "AbC3-dEf4-gHj5-kLm6" s = requests.Session() # 1. Authenticate s.post(f"{BASE}/auth-api.php", data={"action": "login", "seed": SEED}) # 2. Check balance user = s.get(f"{BASE}/api.php?action=user").json() print(f"Balance: ${user['balance']}") # 3. Get services for USA services = s.get(f"{BASE}/api.php?action=services&country=us").json() whatsapp = next(svc for svc in services if svc["name"] == "WhatsApp") print(f"WhatsApp: ${whatsapp['price']} ({whatsapp['stock']} in stock)") # 4. Buy a number order = s.post(f"{BASE}/api.php?action=buy", json={ "country": "us", "service_id": whatsapp["id"] }).json() print(f"Order #{order['order_id']} created") # 5. Poll for SMS code for _ in range(60): orders = s.get(f"{BASE}/api.php?action=orders").json() my_order = next(o for o in orders if o["id"] == order["order_id"]) if my_order["sms_code"]: print(f"SMS code: {my_order['sms_code']}") print(f"Phone: {my_order['phone_number']}") break print("Waiting for SMS...") time.sleep(5) else: print("Timeout — balance will be refunded automatically")

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

SMSNoKYC सत्यापन API किसलिए है?

यह आपके अपने कोड के लिए वही कैटलॉग खोल देता है जो साइट देती है: एक-बार के OTP सत्यापन और 7-90 दिन के किराए के लिए 190 से अधिक देशों में वर्चुअल नंबर। एक सरल JSON REST इंटरफ़ेस के ज़रिये आप ऐप्स ब्राउज़ कर सकते हैं, लाइव मूल्य पढ़ सकते हैं, नंबर आरक्षित कर सकते हैं, आने वाले कोड ला सकते हैं और विफल सक्रियणों का रिफ़ंड कर सकते हैं — बिना KYC, केवल क्रिप्टो में बिलिंग।

क्या API कुंजी या OAuth टोकन चाहिए?

नहीं। प्रमाणीकरण एक सत्र कुकी है: अपना 16-वर्ण का एक्सेस वाक्यांश एक बार POST से /auth-api.php पर भेजें, फिर हर अगली कॉल पर लौटाई गई कुकी आगे भेजें। कुछ भी प्रावधानित, घुमाने या निरस्त करने को नहीं — आप प्रति सत्र एक बार लॉग इन करते हैं और कुकी के जीवनकाल भर लॉग-इन रहते हैं।

API की लागत कितनी है?

API को कॉल करना निःशुल्क है — न मासिक शुल्क, न सदस्यता, न न्यूनतम मात्रा। आप केवल प्रति नंबर भुगतान करते हैं: एक-बार के सक्रियण 0.05 $ से, समर्पित किराए 7 दिन के लिए कुछ डॉलर से। सब कुछ आपके प्रीपेड बैलेंस से कटता है, और कोई भी सक्रियण जिसे कभी SMS नहीं मिलता, अपने आप रिफ़ंड हो जाता है।

कौन-सी भाषाएँ और फ़्रेमवर्क इसे कॉल कर सकते हैं?

जो कुछ भी HTTPS अनुरोध भेज सके, वह काम करता है — Python (requests, httpx), Node.js (fetch, axios), Go, PHP, Ruby, Java, C#, Bash से cURL और बाकी। दस्तावेज़ में cURL, Python और JavaScript में कॉपी-के-लिए-तैयार उदाहरण हैं, और /openapi.json पर एक पूर्ण OpenAPI 3.0 फ़ाइल आपको अपनी पसंद की भाषा में एक टाइप्ड क्लाइंट बनाने देती है।

यदि सत्यापन कोड कभी नहीं आता तो क्या होता है?

हर सक्रियण की एक 20 मिनट की खिड़की होती है। यदि उसके बंद होने से पहले कुछ नहीं आता, तो ऑर्डर अपने आप रद्द हो जाता है और पूरा मूल्य बैलेंस में लौट आता है — न टिकट, न मैनुअल पुनःप्रयास। लौटा हुआ बैलेंस आप तुरंत किसी दूसरे नंबर पर खर्च कर सकते हैं, शायद बेहतर सफलता-दर के लिए किसी अन्य ऑपरेटर श्रेणी (वर्चुअल, भौतिक या प्रीमियम) पर।

क्या API की दर-सीमाएँ हैं?

वाक्यांश-अनुमान रोकने के लिए लॉगिन प्रति IP प्रति 15 मिनट 5 प्रयासों तक सीमित है। बाकी — कैटलॉग, खरीद, ऑर्डर, किराए — फ़िलहाल किसी कठोर ऊपरी सीमा के बिना है, पर उचित अंतराल रखें: /api.php?action=orders को हर 3-5 सेकंड में पूछना SMS पढ़ने के लिए पर्याप्त से अधिक है, और लगभग 10 अनुरोध/सेकंड से ऊपर के निरंतर विस्फोट WAF स्तर पर सीमित किए जा सकते हैं।