এসএমএস ভেরিফিকেশন API
সর্বশেষ সংশোধন করা হয়েছে 2026/11/03
API কে প্রশ্ন চালানো হচ্ছে
দুটি API একটি কী শেয়ার করে: JSON সহ একটি REST API, এবং এসএমএস অ্যাক্টিভেশন ফরম্যাট যা অনেক টুল ইতিমধ্যেই ব্যবহার করে। কনসোলের API কী পৃষ্ঠায় কী তৈরি করুন; এটি একবার দেখানো হয়। সীমা: প্রতি কী প্রতি মিনিটে 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 সম্পূর্ণ তালিকা প্রদান করে।
সাধারণ প্রবাহ
- সার্ভিস এবং দেশ সহ একটি নম্বর অর্ডার করুন। id সংরক্ষণ করুন।
- অ্যাপে নম্বরটি প্রবেশ করুন এবং এটি এসএমএস পাঠাতে বলুন।
- কোড পাওয়া না পর্যন্ত প্রতি 4 সেকেন্ডে অর্ডারটি পড়ুন।
- আরও একটি এসএমএস প্রয়োজন? অন্য একটি কোড চাইুন, তারপর আবার পড়ুন। সম্পন্ন: অর্ডার শেষ করুন।
- কোন কোড নেই? সম্পূর্ণ ফেরতের জন্য বাতিল করুন। কোন কল ছাড়াই, উইন্ডো শেষ হলে ফেরত নিজে থেকেই হয়ে যায়।
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)। |
এসএমএস অ্যাক্টিভেশন ফরম্যাট
| 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"}}এসএমএস অ্যাক্টিভেশন ফরম্যাট পদ্ধতি
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