SMS पाने का API

एक JSON API से नंबर खरीदिए और सत्यापन कोड पढ़िए। बिना पहचान की जाँच के, भुगतान क्रिप्टोकरेंसी में।

REST · JSONOpenAPI 3.1 OpenAPI विनिर्देश →

यहाँ का हर काम एक MCP टूल भी है। REST एंडपॉइंट उन्हीं टूलों का अनुवाद हैं जिन्हें MCP सर्वर देता है: यानी कोई स्वायत्त एजेंट और कोई सामान्य एकीकरण एक जैसा ही व्यवहार करते हैं। अगर आप किसी AI एजेंट को OTPDrop की ओर भेज रहे हैं, तो एजेंट्स वाले खंड से शुरू कीजिए।

यह API कैसे व्यवस्थित है?

  1. खाता बनाइए और लौटाया गया वाक्यांश सहेज लीजिए। यही एकमात्र पहुँच है, और इसे रीसेट नहीं किया जा सकता।
  2. टॉप-अप बनाइए, क्रिप्टोकरेंसी भेजिए और जमा होने का इंतज़ार कीजिए।
  3. जिस सेवा और देश के लिए चाहिए, उसका नंबर खरीदिए — बैलेंस उसी क्षण कट जाता है।
  4. कोड वाला SMS माँगिए। अगर ऑर्डर की अवधि ख़त्म होने तक कोई कोड नहीं आता, तो पैसा अपने आप लौटा दिया जाता है।

एक बार भरिए, बार-बार खरीदिए: एक टॉप-अप उतने नंबर कवर करता है जितने बैलेंस से हो सकें, इसलिए पुष्टि का इंतज़ार सिर्फ़ पहली खरीद करती है।

प्रमाणीकरण

खाते का वाक्यांश bearer टोकन के रूप में भेजिए। न कोई अलग API कुंजी है, न लॉग इन की कोई कॉल — वाक्यांश ही पहचानकर्ता है।

Authorization: Bearer YOUR-SEED-PHRASE

कैटलॉग के एंडपॉइंट किसी प्रमाणीकरण की माँग नहीं करते: यानी सेवाएँ, देश और क़ीमतें खाता होने से पहले ही देखी जा सकती हैं। पैसे और ऑर्डर से जुड़ी हर चीज़ के लिए यह हेडर ज़रूरी है।

वाक्यांश दोबारा नहीं मिल सकता। हम उसकी सिर्फ़ छाप रखते हैं। अगर आप उसे खो देते हैं, तो खाता और उसका बैलेंस चले जाते हैं — न रीसेट, न सहायता के ज़रिए कोई उपाय।

आधार पता

सभी एंडपॉइंट इसके सापेक्ष हैं:

https://otpdrop.com/api/v1

उत्तर JSON में आते हैं। POST की बॉडी application/json या application/x-www-form-urlencoded में स्वीकार की जाती है।

त्रुटियाँ

विफलता पर 2xx से बाहर का स्टेटस लौटता है, साथ में एक ही त्रुटि ऑब्जेक्ट।

{
  "error": {
    "code": "invalid_request",
    "message": "unknown service: \"whatsap\""
  }
}
स्टेटसअर्थ
200सफल
201बन गया — खाता, टॉप-अप या ऑर्डर अब मौजूद है
401Authorization हेडर में वाक्यांश नहीं है या ग़लत है
422अनुरोध समझ में आया, पर पूरा नहीं किया जा सका
500हमारी ओर से गड़बड़ी

422 के आम संदेश:

संदेशकारण
insufficient_fundsबैलेंस क़ीमत से कम है — पहले टॉप-अप बनाइए
unknown serviceयह सेवा कोड मौजूद नहीं है; सेवाओं की सूची देखिए
unknown countryयह देश कोड मौजूद नहीं है; देशों की सूची देखिए
unknown coinयह मुद्रा स्वीकार नहीं है; टॉप-अप का एंडपॉइंट देखिए
amount_usd must be between…टॉप-अप $25–$1000 तक सीमित हैं

क्या कोई दर सीमाएँ हैं?

कोई कोटा प्रकाशित नहीं है, और गला घोंटने लायक कोई API कुंजी भी नहीं है — पर एंडपॉइंट को लगातार लूप में बुलाना मुफ़्त नहीं पड़ता। इनमें से दो लूप में पूछने के लिए ही बने हैं और ख़ास ध्यान माँगते हैं।

एंडपॉइंटउचित रफ़्तारक्यों
कैटलॉग और क़ीमत की गणनाइन्हें अपने यहाँ कैश कीजिएक़ीमतें कम ही बदलती हैं; हर अनुरोध पर पूरा कैटलॉग दोबारा लाने से कुछ नहीं मिलता।
/topups/{id}हर 10 से 15 सेकंडनेटवर्क की पुष्टि में मिनट लगते हैं, मिलीसेकंड नहीं। ज़्यादा बार पूछने से कुछ जल्दी पता नहीं चलता।
/orders/{id}/smsहर 3 से 5 सेकंडकोड आम तौर पर कुछ ही सेकंड में आ जाते हैं; इससे तंग लूप सिर्फ़ बोझ बढ़ाता है।
खरीदजब ज़रूरत होहर खरीद असली पैसा काटती है, इसलिए बेलगाम लूप हमसे ज़्यादा आपको महँगा पड़ेगा।

जो ट्रैफ़िक हमले जैसा दिखेगा उसे ऊपर ही रोक दिया जाएगा, बिना किसी शिष्ट 429 के। अगर ज़्यादा बार पूछने की आपके पास कोई वाजिब वजह है, तो पहले हमें संपर्क पृष्ठ से लिखिए।

सेवाओं की सूची

GET/api/v1/services

सभी सेवाएँ, उनके कोड, श्रेणी और न्यूनतम क़ीमत के साथ। प्रमाणीकरण की ज़रूरत नहीं।

अनुरोध

curl -s https://otpdrop.com/api/v1/services

उत्तर

{
  "services": [
    {
      "code": "binance",
      "name": "Binance",
      "category": "Finance",
      "from_price_cents": 85,
      "color": "#F0B90B",
      "icon": "binance"
    }
  ],
  "count": 133
}

देशों की सूची

GET/api/v1/countries

Every country with its dial code and how many services are available there. No authentication required.

अनुरोध

curl -s https://otpdrop.com/api/v1/countries

उत्तर

{
  "countries": [
    {
      "code": "us",
      "name": "United States",
      "dial_code": "+1",
      "service_count": 133
    }
  ],
  "count": 197
}

क़ीमतों का मैट्रिक्स

GET/api/v1/catalog

The most useful service and country combinations with their prices, cheapest first. No authentication required.

पैरामीटर

नामप्रकारविवरण
limitintegerवैकल्पिकHow many rows to return, 1 to 500. Defaults to 12.

अनुरोध

curl -s 'https://otpdrop.com/api/v1/catalog?limit=2'

उत्तर

{
  "items": [
    {
      "service": "badoo",
      "country": "us",
      "price_cents": 35
    }
  ],
  "count": 2
}

क़ीमत निकालें

GET/api/v1/quote

The exact price for one service and country before you commit to buying. No authentication required.

पैरामीटर

नामप्रकारविवरण
servicestringअनिवार्यService code, e.g. telegram
countrystringअनिवार्यCountry code, e.g. us

अनुरोध

curl -s 'https://otpdrop.com/api/v1/quote?service=telegram&country=us'

उत्तर

{
  "service": "telegram",
  "country": "us",
  "price_cents": 111,
  "price_usd": "1.11",
  "currency": "USD",
  "purchasable": true
}

खाता बनाएँ

POST/api/v1/accounts

Generates an account and returns its seed. This is the only time the seed is ever shown. No authentication required.

अनुरोध

curl -s -X POST https://otpdrop.com/api/v1/accounts

उत्तर

{
  "public_id": "acc_7f3c1a92",
  "seed": "PABh-ZbRt-9xKm-Lq4V",
  "seed_prefix": "PABh",
  "balance_cents": 0,
  "warning": "This seed is shown exactly once, right now..."
}

टॉप-अप बनाएँ

POST/api/v1/topups

Claims a deposit address and returns the exact amount to send, as coin_amount, at the rate in rate_usd. Each top-up gets its own address, and it expires at expires_at. Send only the named coin, on the named network, before then.

पैरामीटर

नामप्रकारविवरण
amount_usdnumberअनिवार्यHow much to add to the balance, in USD. Minimum 25, maximum 1000.
coinstringअनिवार्यBTC, LTC, ETH, XMR, SOL, TRX, BNB, USDT, USDC and more

अनुरोध

curl -s -X POST https://otpdrop.com/api/v1/topups \
  -H 'Authorization: Bearer YOUR-SEED' \
  -H 'content-type: application/json' \
  -d '{"amount_usd": 25, "coin": "XMR"}'

उत्तर

{
  "topup_id": "top_019195919c80fc8f",
  "status": "awaiting_payment",
  "coin": "XMR",
  "address": "89Rm4XN39m9PCr8Sr3yAFnXvLRRWQVEE...",
  "amount_cents": 2500,
  "amount_usd": "25.00",
  "coin_amount": "0.1337",
  "rate_usd": 187.02,
  "bonus_cents": 0,
  "credited_total_cents": 2500,
  "expires_at": 1788532810
}

टॉप-अप की स्थिति

GET/api/v1/topups/{id}

Whether a deposit has been credited. Confirmation is not instant — poll this rather than assuming the funds arrived.

पैरामीटर

नामप्रकारविवरण
idstringअनिवार्यThe top-up id, in the path

अनुरोध

curl -s https://otpdrop.com/api/v1/topups/top_019195919c80fc8f \
  -H 'Authorization: Bearer YOUR-SEED'

उत्तर

{
  "topup_id": "top_019195919c80fc8f",
  "status": "credited",
  "coin": "XMR",
  "amount_usd": "25.00",
  "coin_amount": "0.1337",
  "credited_total_cents": 2500,
  "expires_at": 1788532810
}

नंबर खरीदें

POST/api/v1/orders

Debits the balance and issues a number immediately. There is no per-purchase address and no second wait. Fails with insufficient_funds if the balance is short.

पैरामीटर

नामप्रकारविवरण
servicestringअनिवार्यService code, e.g. telegram
countrystringअनिवार्यCountry code, e.g. us

अनुरोध

curl -s -X POST https://otpdrop.com/api/v1/orders \
  -H 'Authorization: Bearer YOUR-SEED' \
  -H 'content-type: application/json' \
  -d '{"service": "telegram", "country": "us"}'

उत्तर

{
  "order_id": "ord_1ad450bf7a42519c",
  "service": "telegram",
  "country": "us",
  "phone": "+15558329008",
  "status": "paid",
  "price_usd": "1.11"
}

अपने ऑर्डर की सूची

GET/api/v1/orders

Every order on the account, newest first, with status, number and price. Useful for reconciling state after a restart rather than for polling.

अनुरोध

curl -s https://otpdrop.com/api/v1/orders \
  -H 'Authorization: Bearer YOUR-SEED'

उत्तर

{
  "orders": [
    {
      "order_id": "ord_1ad450bf7a42519c",
      "service": "telegram",
      "country": "us",
      "phone": "+15558329008",
      "status": "paid",
      "price_usd": "1.11"
    }
  ],
  "count": 1
}

ऑर्डर देखें

GET/api/v1/orders/{id}

The current state of one order: its number, status and price.

पैरामीटर

नामप्रकारविवरण
idstringअनिवार्यThe order id, in the path

अनुरोध

curl -s https://otpdrop.com/api/v1/orders/ord_1ad450bf7a42519c \
  -H 'Authorization: Bearer YOUR-SEED'

उत्तर

{
  "order_id": "ord_1ad450bf7a42519c",
  "service": "telegram",
  "country": "us",
  "phone": "+15558329008",
  "status": "paid",
  "price_usd": "1.11"
}

कोड वाला SMS लाएँ

GET/api/v1/orders/{id}/sms

Poll this until arrived turns true. If the order expires with nothing delivered, the price returns to your balance automatically.

पैरामीटर

नामप्रकारविवरण
idstringअनिवार्यThe order id, in the path

अनुरोध

curl -s https://otpdrop.com/api/v1/orders/ord_1ad450bf7a42519c/sms \
  -H 'Authorization: Bearer YOUR-SEED'

उत्तर

{
  "order_id": "ord_1ad450bf7a42519c",
  "status": "paid",
  "arrived": false,
  "code": null
}

पूरा एकीकरण कैसा दिखता है?

खाते से कोड तक, छह कॉल। नीचे सब कुछ असली है: चिपकाइए और चलाइए।

# 1. खाता बनाइए और वाक्यांश सहेज लीजिए
SEED=$(curl -s -X POST https://otpdrop.com/api/v1/accounts | jq -r .seed)

# 2. बैलेंस भरिए — लौटाए गए पते पर coin_amount भेजिए
curl -s -X POST https://otpdrop.com/api/v1/topups \
  -H "Authorization: Bearer \$SEED" \
  -H 'content-type: application/json' \
  -d '{"amount_usd": 25, "coin": "USDT"}'

# 3. टॉप-अप जमा होने तक पूछते रहिए
curl -s https://otpdrop.com/api/v1/topups/TOPUP_ID \
  -H "Authorization: Bearer \$SEED" | jq .status

# 4. खरीदने से पहले क़ीमत जाँच लीजिए
curl -s 'https://otpdrop.com/api/v1/quote?service=telegram&country=us'

# 5. खरीदिए — बैलेंस कटता है, नंबर तुरंत मिल जाता है
ORDER=$(curl -s -X POST https://otpdrop.com/api/v1/orders \
  -H "Authorization: Bearer \$SEED" \
  -H 'content-type: application/json' \
  -d '{"service": "telegram", "country": "us"}' | jq -r .order_id)

# 6. कोड के लिए पूछते रहिए
until curl -s https://otpdrop.com/api/v1/orders/\$ORDER/sms \
  -H "Authorization: Bearer \$SEED" | jq -e .code; do sleep 4; done

वही क्रम Python में, बिना शेल के:

import time, requests

API = "https://otpdrop.com/api/v1"
seed = requests.post(f"{API}/accounts").json()["seed"]
auth = {"Authorization": f"Bearer {seed}"}

topup = requests.post(f"{API}/topups", headers=auth,
                      json={"amount_usd": 25, "coin": "USDT"}).json()
print("send", topup["coin_amount"], topup["coin"], "to", topup["address"])

while requests.get(f"{API}/topups/{topup['topup_id']}",
                   headers=auth).json()["status"] != "credited":
    time.sleep(15)

order = requests.post(f"{API}/orders", headers=auth,
                      json={"service": "telegram", "country": "us"}).json()
print("number:", order["phone"])

while True:
    sms = requests.get(f"{API}/orders/{order['order_id']}/sms",
                       headers=auth).json()
    if sms["arrived"]:
        print("code:", sms["code"])
        break
    time.sleep(4)

MCP सर्वर

वही सारे काम https://otpdrop.com/mcp पर Model Context Protocol के ज़रिए भी उपलब्ध हैं, ग्यारह टूलों के रूप में। इसे Claude Code में जोड़ने के लिए:

claude mcp add --transport http otpdrop https://otpdrop.com/mcp

कॉन्फ़िगरेशन और टूलों की पूरी सूची एजेंट्स वाले पृष्ठ पर है।

डिस्कवरी फ़ाइलें

सेवा का मशीन के पढ़ने लायक विवरण, और ये सब बिना प्रमाणीकरण के दिए जाते हैं।

फ़ाइलसामग्री
/openapi.jsonपूरा OpenAPI 3.1 स्कीमा
/.well-known/agent.jsonक्षमताएँ, प्रमाणीकरण का ढाँचा और काम करने के नियम
/llms.txtभाषा मॉडलों के लिए छोटा-सा संकेत
/llms-full.txtवही, पूरे कैटलॉग समेत

अक्सर पूछे जाने वाले प्रश्न

क्या OTPDrop के API के लिए कोई कुंजी चाहिए?

नहीं। माँगने को कुछ नहीं है और कोई मंज़ूरी भी नहीं। पहचानकर्ता खाते का वाक्यांश है, जिसे bearer टोकन के रूप में भेजा जाता है — और कैटलॉग के एंडपॉइंट को तो उसकी भी ज़रूरत नहीं।

OTPDrop के API का ख़र्च कितना है?

नंबरों के अलावा कुछ नहीं। न सदस्यता, न प्रति कॉल शुल्क, न कोई न्यूनतम मात्रा — क़ीमतें वही हैं जो साइट पर हैं।

यह API किन प्रोग्रामिंग भाषाओं के साथ काम करता है?

हर उस भाषा के साथ जो HTTPS अनुरोध कर सके। यह HTTP पर सामान्य JSON है, एक bearer हेडर के साथ: न कोई SDK इंस्टॉल करना है, न हमारे संस्करणों से कुछ मिलाकर रखना है।

अगर SMS न आए तो क्या होता है?

अवधि ख़त्म होने पर ऑर्डर का पैसा अपने आप बैलेंस में लौट आता है; आप उसे साइट से पहले भी रद्द कर सकते हैं। आप डिलीवर हुए कोड के पैसे देते हैं, कोशिशों के नहीं।

क्या REST API और MCP सर्वर एक ही चीज़ हैं?

हाँ, जान-बूझकर। हर REST एंडपॉइंट किसी MCP टूल कॉल का ही अनुवाद है, इसलिए वे अलग-अलग रास्ते नहीं जा सकते: एक को बदलना दूसरे को बदलना है। जो आपके क्लाइंट के लिए ज़्यादा सुविधाजनक हो, वही चुनिए।

क्या बिना कुछ ख़र्च किए API आज़माया जा सकता है?

कैटलॉग, क़ीमत की गणना और खाता बनाना मुफ़्त हैं: यानी एकीकरण का ज़्यादातर हिस्सा किसी भी टॉप-अप से पहले लिखा और जाँचा जा सकता है। पैसा सिर्फ़ खरीद पर लगता है।