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 अल्फा-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}

एक ऑर्डर की स्थिति, कोड और SMS पाठ · कुंजी आवश्यक

एक ऑर्डर उसकी स्थिति, नवीनतम कोड, नवीनतम एसएमएस टेक्स्ट और अब तक प्राप्त हर कोड के साथ। स्थिति waiting होने पर हर 3 से 5 सेकंड में पोल करें।

पैरामीटर्स

  • idpathआवश्यक

    POST /orders से ऑर्डर आईडी

अनुरोध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आवश्यक

    ऑर्डर आईडी

अनुरोध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आवश्यक

    ऑर्डर आईडी

अनुरोध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आवश्यक

    ऑर्डर आईडी

अनुरोध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 डॉक्यूमेंटेशन: SMS वेरिफिकेशन REST API | SNSOTP