বাংলা

এসএমএস ভেরিফিকেশন 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 সম্পূর্ণ তালিকা প্রদান করে।

সাধারণ প্রবাহ
  1. সার্ভিস এবং দেশ সহ একটি নম্বর অর্ডার করুন। id সংরক্ষণ করুন।
  2. অ্যাপে নম্বরটি প্রবেশ করুন এবং এটি এসএমএস পাঠাতে বলুন।
  3. কোড পাওয়া না পর্যন্ত প্রতি 4 সেকেন্ডে অর্ডারটি পড়ুন।
  4. আরও একটি এসএমএস প্রয়োজন? অন্য একটি কোড চাইুন, তারপর আবার পড়ুন। সম্পন্ন: অর্ডার শেষ করুন।
  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)।

এসএমএস অ্যাক্টিভেশন ফরম্যাট

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"}}

এসএমএস অ্যাক্টিভেশন ফরম্যাট পদ্ধতি

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
কাকাওটক, লাইন এবং উইচ্যাট নম্বরের জন্য এসএমএস ভেরিফিকেশন API