हिन्दी

एसएमएस वेरिफिकेशन एपीआई

अंतिम बार 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 पूरी सूची लौटाते हैं।

सामान्य प्रवाह
  1. सेवा और देश के साथ एक नंबर ऑर्डर करें। आईडी सहेजें।
  2. ऐप में नंबर दर्ज करें और इसे एसएमएस भेजने के लिए कहें।
  3. कोड आने तक हर 4 सेकंड में ऑर्डर को पढ़ें।
  4. एक और SMS की आवश्यकता है? दूसरा कोड मांगें, फिर फिर से पढ़ें। हो गया: ऑर्डर समाप्त करें।
  5. कोड नहीं मिला? पूर्ण धनवापसी के लिए रद्द करें। बिना कॉल के, जब विंडो समाप्त होती है तो धनवापसी अपने आप हो जाती है।

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_ACTIVATIONS20 सक्रियण पहले से ही खुले हैं।

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
KakaoTalk, LINE और WeChat नंबरों के लिए SMS सत्यापन API