एसएमएस वेरिफिकेशन एपीआई
अंतिम बार 2026/11/03 को संशोधित
एपीआई को क्वेरी चलाना
दो एपीआई एक कुंजी साझा करते हैं: JSON के साथ एक REST एपीआई, और एसएमएस एक्टिवेशन फॉर्मेट जो कई टूल पहले से उपयोग करते हैं। कंसोल के एपीआई कुंजी पेज पर कुंजी बनाएं; यह केवल एक बार दिखाई जाती है। सीमा: प्रति कुंजी प्रति मिनट 300 अनुरोध। प्रत्येक ऑर्डर में 20 मिनट का कोड विंडो होता है, जो कंसोल में समान है।
# REST API (JSON) curl https://virtualsns.com/api/v1/balance -H "Authorization: Bearer YOUR_KEY" # SMS activation format curl "https://virtualsns.com/stubs/handler_api.php?api_key=YOUR_KEY&action=getBalance"
सेवा और देश कोड
सेवा कोड हमारी सेवा पेज के पते में नाम हैं, उदाहरण के लिए kakaotalk, line, wechat, zalo, naver, shopee और whatsapp। देश कोड लोअर केस में ISO कोड हैं: kr, jp, id, ph, vn, th, us। GET /services और GET /countries पूरी सूची लौटाते हैं।
सामान्य प्रवाह
- सेवा और देश के साथ एक नंबर ऑर्डर करें। आईडी सहेजें।
- ऐप में नंबर दर्ज करें और इसे एसएमएस भेजने के लिए कहें।
- कोड आने तक हर 4 सेकंड में ऑर्डर को पढ़ें।
- एक और SMS की आवश्यकता है? दूसरा कोड मांगें, फिर फिर से पढ़ें। हो गया: ऑर्डर समाप्त करें।
- कोड नहीं मिला? पूर्ण धनवापसी के लिए रद्द करें। बिना कॉल के, जब विंडो समाप्त होती है तो धनवापसी अपने आप हो जाती है।
Python
import os, time, requests
API = "https://virtualsns.com/api/v1"
H = {"Authorization": f"Bearer {os.environ['VIRTUALSNS_KEY']}"}
order = requests.post(f"{API}/orders", headers=H,
data={"service": "kakaotalk", "country": "kr"}).json()["order"]
print("Use this number:", order["phone"])
while True:
o = requests.get(f"{API}/orders/{order['id']}", headers=H).json()["order"]
if o["code"] or o["status"] in ("refunded", "canceled"):
break
time.sleep(4)
print("Code:", o["code"])Node.js
const API = "https://virtualsns.com/api/v1";
const H = { Authorization: `Bearer ${process.env.VIRTUALSNS_KEY}` };
const { order } = await fetch(`${API}/orders`, {
method: "POST", headers: H,
body: new URLSearchParams({ service: "line", country: "jp" }),
}).then((r) => r.json());
console.log("Use this number:", order.phone);
let o = order;
while (!o.code && !["refunded", "canceled"].includes(o.status)) {
await new Promise((r) => setTimeout(r, 4000));
({ order: o } = await fetch(`${API}/orders/${order.id}`, { headers: H }).then((r) => r.json()));
}
console.log("Code:", o.code);त्रुटि कोड वापस करें
REST API
त्रुटियाँ JSON के रूप में आती हैं: {"error":{"code","message"}} इन HTTP स्थितियों के साथ:
| 400 | गुम या खराब फ़ील्ड (missing_filter, bad_json)। |
| 401 | कोई कुंजी नहीं या गलत कुंजी (no_key, bad_key)। |
| 402 | पर्याप्त क्रेडिट नहीं (no_balance)। |
| 404 | अज्ञात सेवा, देश, ऑर्डर या एंडपॉइंट। |
| 409 | ऑर्डर अभी ऐसा नहीं कर सकता (has_code, not_ready, too_many_open, no_numbers)। |
| 429 | एक मिनट में 300 से अधिक अनुरोध (rate_limited)। |
SMS सक्रियण प्रारूप
| BAD_KEY | गुम या गलत API कुंजी। |
| BAD_ACTION | अज्ञात क्रिया। |
| BAD_SERVICE | अज्ञात सेवा कोड। |
| BAD_COUNTRY | यह सेवा उस देश में नहीं बेची जाती है। |
| NO_BALANCE | पर्याप्त क्रेडिट नहीं। |
| NO_NUMBERS | अभी कोई नंबर उपलब्ध नहीं है। कुछ समय बाद फिर से प्रयास करें। |
| NO_ACTIVATION | अज्ञात सक्रियण आईडी, या आपकी नहीं। |
| EARLY_CANCEL_DENIED | एक कोड पहले ही आ चुका है, इसलिए सक्रियण को रद्द नहीं किया जा सकता। |
| TOO_MANY_REQUESTS | एक मिनट में 300 से अधिक अनुरोध। |
| NO_ACTIVATIONS | 20 सक्रियण पहले से ही खुले हैं। |
REST API विधियाँ
https://virtualsns.com/api/v1
GET/services
हर सेवा कोड उसके नाम, प्रकार और सबसे कम कीमत के साथ। कुंजी की आवश्यकता नहीं है।
curl "https://virtualsns.com/api/v1/services"
{"services":[{"code":"kakaotalk","name":"KakaoTalk","category":"social","from":"0.06"}]}GET/countries
हर देश कोड (ISO, लोअर केस) उसके नाम और डायल कोड के साथ। कुंजी की आवश्यकता नहीं है।
curl "https://virtualsns.com/api/v1/countries"
{"countries":[{"code":"kr","name":"South Korea","dial_code":"82"}]}GET/prices
USD में कीमतें। सेवा, देश या दोनों जोड़ें। कुंजी की आवश्यकता नहीं है।
curl "https://virtualsns.com/api/v1/prices?service=line&country=jp"
{"prices":[{"service":"line","country":"jp","price":"5.40"}]}GET/balance
USD में आपका क्रेडिट।
curl "https://virtualsns.com/api/v1/balance" \ -H "Authorization: Bearer YOUR_KEY"
{"balance":"25.00","currency":"USD"}POST/orders
एक नंबर खरीदता है (201)। फोन नंबर और विंडो समाप्त होने का समय के साथ ऑर्डर वापस करता है।
curl -X POST https://virtualsns.com/api/v1/orders \ -H "Authorization: Bearer YOUR_KEY" \ -d service=kakaotalk -d country=kr
{"order":{"id":"AC-7K2M9QX4PB","service":"kakaotalk","country":"kr","phone":"+821023456789","status":"waiting","code":null,"expires_at":"2026-11-03T12:20:00.000Z"},"window_minutes":20}GET/orders/AC-7K2M9QX4PB
एक ऑर्डर उसकी स्थिति और प्राप्त हुए हर कोड के साथ। स्थितियाँ: प्रतीक्षा, प्राप्त, समाप्त, धनवापसी, रद्द।
curl "https://virtualsns.com/api/v1/orders/AC-7K2M9QX4PB" \ -H "Authorization: Bearer YOUR_KEY"
{"order":{"id":"AC-7K2M9QX4PB","status":"received","code":"482193","sms":"[Kakao] Verification code [482193]"}}GET/orders
आपके खुले ऑर्डर (status=all पिछले 100 के लिए)।
curl "https://virtualsns.com/api/v1/orders?status=open" \ -H "Authorization: Bearer YOUR_KEY"
{"orders":[...]}POST/orders/AC-7K2M9QX4PB/resend
पहले कोड के बाद और जब विंडो खुली हो, उसी नंबर पर एक और कोड मांगता है। कोई अतिरिक्त शुल्क नहीं।
curl -X POST https://virtualsns.com/api/v1/orders/AC-7K2M9QX4PB/resend \ -H "Authorization: Bearer YOUR_KEY"
{"order":{"status":"received","waiting_for_resend":true}}POST/orders/AC-7K2M9QX4PB/finish
एक ऑर्डर को बंद करता है जिसने अपना कोड प्राप्त कर लिया है।
curl -X POST https://virtualsns.com/api/v1/orders/AC-7K2M9QX4PB/finish \ -H "Authorization: Bearer YOUR_KEY"
{"order":{"status":"finished"}}POST/orders/AC-7K2M9QX4PB/cancel
कोड आने से पहले रद्द करता है। पूरी कीमत आपके क्रेडिट में वापस आ जाती है।
curl -X POST https://virtualsns.com/api/v1/orders/AC-7K2M9QX4PB/cancel \ -H "Authorization: Bearer YOUR_KEY"
{"order":{"status":"canceled","refunded":"8.40"}}SMS सक्रियण प्रारूप विधियाँ
https://virtualsns.com/stubs/handler_api.php
विधि getBalance
USD में आपका क्रेडिट।
GET https://virtualsns.com/stubs/handler_api.php?api_key=KEY&action=getBalance
ACCESS_BALANCE:12.50
विधि getServicesList
आप जो सेवा कोड खरीद सकते हैं (JSON)।
GET https://virtualsns.com/stubs/handler_api.php?api_key=KEY&action=getServicesList
{"status":"success","services":[{"code":"line","name":"LINE"}]}विधि getCountries
देश कोड (ISO, लोअर केस) और डायल कोड (JSON)।
GET https://virtualsns.com/stubs/handler_api.php?api_key=KEY&action=getCountries
{"jp":{"name":"Japan","dial":"81"}}विधि getPrices
देश और सेवा के लिए USD में कीमतें। दोनों फ़िल्टर वैकल्पिक हैं।
GET https://virtualsns.com/stubs/handler_api.php?api_key=KEY&action=getPrices&service=line&country=jp
{"jp":{"line":{"cost":5.4,"count":100}}}विधि getNumber
एक नंबर खरीदता है। सक्रियण आईडी और उसके देश कोड के साथ नंबर वापस करता है।
GET https://virtualsns.com/stubs/handler_api.php?api_key=KEY&action=getNumber&service=line&country=jp
ACCESS_NUMBER:AC-7K2M9QX4PB:819012345678
विधि getStatus
STATUS_WAIT_CODE (अभी तक कोई कोड नहीं), STATUS_OK:<code>, STATUS_WAIT_RETRY:<last code> (एक और कोड का अनुरोध किया गया), STATUS_CANCEL (रद्द या धनवापसी)।
GET https://virtualsns.com/stubs/handler_api.php?api_key=KEY&action=getStatus&id=AC-7K2M9QX4PB
STATUS_OK:482913
विधि setStatus
status=1 तैयार (ACCESS_READY), 3 एक और कोड (ACCESS_RETRY_GET), 6 समाप्त (ACCESS_ACTIVATION), 8 कोड न आने पर पूर्ण धनवापसी के साथ रद्द (ACCESS_CANCEL)।
GET https://virtualsns.com/stubs/handler_api.php?api_key=KEY&action=setStatus&id=AC-7K2M9QX4PB&status=3
ACCESS_RETRY_GET