v1REST · JSON

SNSOTP OTP API

এসএমএস যাচাইকরণের জন্য একটি REST API। 182 সার্ভিসের মধ্যে একটি এবং 154 দেশের মধ্যে একটি নম্বর অর্ডার করুন, অর্ডার থেকে ওয়ান-টাইম কোড পড়ুন, এবং 20 মিনিটের মধ্যে কোনো কোড না আসলে সম্পূর্ণ মূল্য ফেরত পান।

প্রতিটি এন্ডপয়েন্ট প্যারামিটারকে কোয়েরি প্যারামিটার (GET) বা ফর্ম ফিল্ড বা JSON (POST) হিসাবে গ্রহণ করে। উত্তরগুলি JSON; টাকা দুই দশমিক সহ USD স্ট্রিং এবং সময়গুলি UTC-তে ISO 8601।

সার্ভার

https://snsotp.com/api/v1

অথেন্টিকেশনBearer টোকেন

কনসোল থেকে আপনার API কী, Authorization: Bearer sok_... হিসাবে পাঠানো হয়েছে

অথেন্টিকেশন

কনসোলের API পৃষ্ঠায় একটি কী তৈরি করুন। এটি sok_ দিয়ে শুরু হয় এবং একবার দেখানো হয়, তাই এটিকে একটি পরিবেশ পরিবর্তনশীল হিসাবে সংরক্ষণ করুন। কী প্রতিস্থাপন করলে পুরানো কীটি অবিলম্বে বন্ধ হয়ে যায়। /services, /countries এবং /prices কলগুলি কী ছাড়াই কাজ করে।

হেডার
Authorization: Bearer sok_your_key_here

কীটি একটি key কোয়েরি প্যারামিটার বা ফর্ম ফিল্ড হিসাবেও পাঠানো যেতে পারে, যা হেডার সেট করতে পারে না এমন টুলগুলিকে সাহায্য করে।

দ্রুত শুরু

একটি নম্বর অর্ডার করুন, এটিকে অ্যাপে দিন, তারপর কোড আসা পর্যন্ত অর্ডারটি পোল করুন। একই ফ্লো চারটি ভাষায়:

# 1. Order a number for whatsapp in US
curl -X POST https://snsotp.com/api/v1/orders \
  -H "Authorization: Bearer $SNSOTP_KEY" \
  -d service=whatsapp -d country=us

# 2. Read the code (poll every 3 to 5 seconds)
curl https://snsotp.com/api/v1/orders/OT-7K2M9QX4PB \
  -H "Authorization: Bearer $SNSOTP_KEY"

GET/services

প্রতিটি সার্ভিস তার কোড এবং সর্বনিম্ন মূল্য সহ · কী নেই

আপনি যে প্রতিটি সার্ভিস অর্ডার করতে পারেন, তার কোড (অন্যান্য কলগুলিতে সার্ভিস হিসাবে ব্যবহার করুন), তার বিভাগ এবং দেশ জুড়ে সর্বনিম্ন মূল্য। কী প্রয়োজন নেই।

অনুরোধcURL
curl https://snsotp.com/api/v1/services
প্রতিক্রিয়া200
{
  "services": [
    { "code": "whatsapp", "name": "WhatsApp", "category": "social", "from": "0.09" },
    { "code": "telegram", "name": "Telegram", "category": "social", "from": "0.03" }
  ]
}

GET/countries

প্রতিটি দেশ তার কোড এবং ডায়াল কোড সহ · কী নেই

প্রতিটি দেশের কোড (ISO 3166 alpha-2 ছোট হাতের অক্ষরে, দেশ হিসাবে ব্যবহার করুন) এবং তার ডায়াল কোড। কী প্রয়োজন নেই।

অনুরোধcURL
curl https://snsotp.com/api/v1/countries
প্রতিক্রিয়া200
{
  "countries": [
    { "code": "us", "name": "United States", "dial_code": "1" },
    { "code": "gb", "name": "United Kingdom", "dial_code": "44" }
  ]
}

GET/prices

একটি সার্ভিস, একটি দেশ বা উভয়ের জন্য মূল্য · কী নেই

প্রতিটি দেশে একটি সার্ভিসের জন্য প্রতি অর্ডারের মূল্য, প্রতিটি সার্ভিসের জন্য একটি দেশ, বা একটি জোড়া। অন্তত একটি ফিল্টার পাঠান। কী প্রয়োজন নেই।

প্যারামিটার

  • servicestring

    সার্ভিস কোড, উদাহরণস্বরূপ whatsapp

  • countrystring

    দেশ কোড, উদাহরণস্বরূপ us

অনুরোধcURL
curl "https://snsotp.com/api/v1/prices?service=whatsapp&country=us"
প্রতিক্রিয়া200
{
  "prices": [
    { "service": "whatsapp", "country": "us", "price": "0.93" }
  ]
}

GET/balance

USD এ আপনার ক্রেডিট · কী প্রয়োজন

USD-তে আপনার ক্রেডিট।

অনুরোধcURL
curl https://snsotp.com/api/v1/balance \
  -H "Authorization: Bearer $SNSOTP_KEY"
প্রতিক্রিয়া200
{
  "balance": "42.50",
  "currency": "USD"
}

POST/orders

একটি সার্ভিস এবং একটি দেশের জন্য একটি নম্বর অর্ডার করুন · কী প্রয়োজন

একটি নম্বর অর্ডার করে এবং তার মূল্য চার্জ করে। উত্তরে নম্বরটি সম্পূর্ণ (phone) এবং ডায়াল কোড ছাড়া (number) থাকে। অর্ডারটি 20 মিনিটের জন্য খোলা থাকে; সেই সময়ে কোনো কোড না আসলে মূল্য আপনার ক্রেডিটে ফিরে আসে। উত্তর স্ট্যাটাস 201।

প্যারামিটার

  • servicestringপ্রয়োজন

    GET /services থেকে সার্ভিস কোড

  • countrystringপ্রয়োজন

    GET /countries থেকে দেশ কোড

অনুরোধcURL
curl -X POST https://snsotp.com/api/v1/orders \
  -H "Authorization: Bearer $SNSOTP_KEY" \
  -d service=whatsapp -d country=us
প্রতিক্রিয়া201
{
  "order": {
    "id": "OT-7K2M9QX4PB",
    "service": "whatsapp",
    "country": "us",
    "phone": "+13475550182",
    "number": "3475550182",
    "dial_code": "1",
    "price": "0.93",
    "status": "waiting",
    "code": null,
    "sms": null,
    "codes": [],
    "expires_at": "2026-11-03T12:20:00.000Z"
  },
  "window_minutes": 20
}

GET/orders/{id}

একটি অর্ডারের স্ট্যাটাস, কোড এবং এসএমএস টেক্সট · কী প্রয়োজন

একটি অর্ডার তার স্ট্যাটাস, সর্বশেষ কোড, সর্বশেষ এসএমএস টেক্সট এবং এখন পর্যন্ত প্রাপ্ত প্রতিটি কোড সহ। স্ট্যাটাস waiting থাকা অবস্থায় প্রতি 3 থেকে 5 সেকেন্ডে পোল করুন।

প্যারামিটার

  • idpathপ্রয়োজন

    POST /orders থেকে অর্ডার id

অনুরোধcURL
curl https://snsotp.com/api/v1/orders/OT-7K2M9QX4PB \
  -H "Authorization: Bearer $SNSOTP_KEY"
প্রতিক্রিয়া200
{
  "order": {
    "id": "OT-7K2M9QX4PB",
    "service": "whatsapp",
    "country": "us",
    "phone": "+13475550182",
    "number": "3475550182",
    "price": "0.93",
    "status": "received",
    "code": "284913",
    "sms": "Your WhatsApp code is 284913",
    "expires_at": "2026-11-03T12:20:00.000Z"
  }
}

GET/orders

আপনার খোলা অর্ডার (বা status=all সহ সব) · কী প্রয়োজন

আপনার খোলা অর্ডারগুলি, নতুন থেকে শুরু করে। প্রতিটি স্ট্যাটাসে সাম্প্রতিক অর্ডারগুলির জন্য status=all যোগ করুন।

প্যারামিটার

  • statusstring

    open (ডিফল্ট) বা all

  • limitnumber

    1 থেকে 100, ডিফল্ট 50

অনুরোধcURL
curl "https://snsotp.com/api/v1/orders?status=open" \
  -H "Authorization: Bearer $SNSOTP_KEY"
প্রতিক্রিয়া200
{
  "orders": [
    { "id": "OT-7K2M9QX4PB", "service": "whatsapp", "status": "received", "code": "284913" }
  ]
}

POST/orders/{id}/resend

একই নম্বরে আরেকটি কোড · কী প্রয়োজন

প্রথম কোডের পরে একই নম্বরে আরেকটি কোড জিজ্ঞাসা করে, উইন্ডোর মধ্যে, অতিরিক্ত খরচ ছাড়াই। তারপর অ্যাপে একটি নতুন এসএমএস ট্রিগার করুন; waiting_for_resend সত্য থাকে যতক্ষণ না এটি আসে।

প্যারামিটার

  • idpathপ্রয়োজন

    অর্ডার id

অনুরোধcURL
curl -X POST https://snsotp.com/api/v1/orders/OT-7K2M9QX4PB/resend \
  -H "Authorization: Bearer $SNSOTP_KEY"
প্রতিক্রিয়া200
{
  "order": { "id": "OT-7K2M9QX4PB", "status": "received", "waiting_for_resend": true }
}

POST/orders/{id}/finish

কোড ব্যবহার করার পরে একটি অর্ডার বন্ধ করুন · কী প্রয়োজন

একটি অর্ডার বন্ধ করে যা একটি কোড পেয়েছে একবার আপনি এটি ব্যবহার করেছেন। ফিনিশিং ঐচ্ছিক: খোলা অর্ডারগুলি উইন্ডো শেষ হলে নিজে থেকেই বন্ধ হয়ে যায়।

প্যারামিটার

  • idpathপ্রয়োজন

    অর্ডার id

অনুরোধcURL
curl -X POST https://snsotp.com/api/v1/orders/OT-7K2M9QX4PB/finish \
  -H "Authorization: Bearer $SNSOTP_KEY"
প্রতিক্রিয়া200
{
  "order": { "id": "OT-7K2M9QX4PB", "status": "finished" }
}

POST/orders/{id}/cancel

কোডের আগে বাতিল করুন, সম্পূর্ণ ফেরত · কী প্রয়োজন

একটি কোড আসার আগে একটি অর্ডার বাতিল করে এবং সম্পূর্ণ মূল্য আপনার ক্রেডিটে অবিলম্বে ফেরত দেয়। একটি কোডের পরে, বাতিল উত্তর দেয় has_code।

প্যারামিটার

  • idpathপ্রয়োজন

    অর্ডার id

অনুরোধcURL
curl -X POST https://snsotp.com/api/v1/orders/OT-7K2M9QX4PB/cancel \
  -H "Authorization: Bearer $SNSOTP_KEY"
প্রতিক্রিয়া200
{
  "order": { "id": "OT-7K2M9QX4PB", "status": "canceled", "refunded": "0.93" }
}

অর্ডার স্ট্যাটাস

স্ট্যাটাস মান
  • waitingনম্বরটি প্রস্তুত এবং এখনও কোনো এসএমএস আসেনি। বাতিল সম্ভব।
  • receivedঅন্তত একটি কোড এসেছে। code এবং sms সর্বশেষটি ধারণ করে।
  • finishedএকটি কোডের পরে বন্ধ, ফিনিশ দ্বারা বা উইন্ডো শেষ হলে।
  • refunded20 মিনিটের মধ্যে কোনো কোড আসেনি। সম্পূর্ণ মূল্য আপনার ক্রেডিটে ফিরে এসেছে।
  • canceledএকটি কোড আসার আগে বাতিল। সম্পূর্ণ মূল্য আপনার ক্রেডিটে ফিরে এসেছে।

ত্রুটিসমূহ

ত্রুটিগুলি HTTP স্ট্যাটাস এবং একটি স্থিতিশীল কোড এবং পাঠযোগ্য বার্তা সহ একটি বডি ব্যবহার করে।

HTTP স্ট্যাটাস এবং কোড
  • 400missing_filter, bad_jsonএকটি প্রয়োজনীয় মান অনুপস্থিত বা বডি পড়া যায় না।
  • 401no_key, bad_keyকী অনুপস্থিত, ভুল বা মুছে ফেলা হয়েছে।
  • 402no_balanceএই অর্ডারের জন্য পর্যাপ্ত ক্রেডিট নেই। কনসোলে ক্রেডিট যোগ করুন।
  • 404unknown_service, unknown_country, not_sold, not_foundকোড বা অর্ডারটি বিদ্যমান নেই, বা জোড়াটি বিক্রি হয় না।
  • 409too_many_open, has_code, not_ready, no_numbersঅ্যাকশনটি অর্ডার স্টেটের সাথে ফিট করে না, বা এখনই কোনো নম্বর ফ্রি নেই (কিছুই চার্জ করা হয় না)।
  • 429rate_limitedএক মিনিটে এক কী দিয়ে 300 টির বেশি অনুরোধ।
ত্রুটি বডি402
{
  "error": {
    "code": "no_balance",
    "message": "Not enough credit. Add credit in the console."
  }
}

রেট লিমিট

  • প্রতি কী প্রতি মিনিটে 300 অনুরোধ। তার উপরে API মিনিটের বাকি সময়ের জন্য 429 rate_limited উত্তর দেয়।
  • প্রতি অ্যাকাউন্টে সর্বোচ্চ 20 টি খোলা অর্ডার। আরেকটি খুলতে একটি ফিনিশ বা বাতিল করুন।
  • প্রতি 3 থেকে 5 সেকেন্ডে একটি অর্ডার পোল করুন; কোডগুলি সাধারণত এক মিনিটের মধ্যে আসে।

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

সাধারণ handler_api.php ফরম্যাটের জন্য লেখা স্ক্রিপ্টগুলি একই API কী দিয়ে কাজ করে: বেস ঠিকানা পরিবর্তন করে https://snsotp.com/stubs/handler_api.php করুন এবং ক্রিয়াগুলি রাখুন। পরিষেবা এবং দেশের কোডগুলি REST API-এর মতোই।

ক্রিয়াকলাপ
  • getBalance

    ACCESS_BALANCE:42.50

  • getServicesList

    পরিষেবাগুলির JSON তালিকা

  • getCountries

    দেশগুলির JSON মানচিত্র

  • getPricesservice, country (ঐচ্ছিক)

    JSON {country: {service: {cost, count}}}

  • getNumberservice, country

    ACCESS_NUMBER:<id>:<phone>

  • getStatusid

    STATUS_WAIT_CODE, STATUS_OK:<code>, STATUS_WAIT_RETRY:<code>, STATUS_CANCEL

  • setStatusid, status 1 / 3 / 6 / 8

    ACCESS_READY, ACCESS_RETRY_GET, ACCESS_ACTIVATION, ACCESS_CANCEL

অনুরোধcURL
curl "https://snsotp.com/stubs/handler_api.php\
?api_key=$SNSOTP_KEY&action=getNumber\
&service=telegram&country=gb"

ACCESS_NUMBER:OT-3QF8ZK2W7M:447700900182

setStatus মান: 1 প্রস্তুত, 3 অন্য কোড, 6 শেষ, 8 সম্পূর্ণ ফেরত সহ বাতিল।

OTP API ডকুমেন্টেশন: এসএমএস যাচাইকরণ REST API | SNSOTP