SMS doğrulama API’si

JSON tabanlı bir API üzerinden numara alın ve doğrulama kodlarını okuyun. Kimlik istenmez, yalnızca kripto.

REST · JSONOpenAPI 3.1 OpenAPI tanımı →

Buradaki her işlem aynı zamanda bir MCP aracıdır. REST uç noktaları, MCP sunucusunun sunduğu araçların çevirisidir; dolayısıyla özerk bir aracı ile sıradan bir entegrasyon birebir aynı davranışı alır. Bir yapay zekâ aracısını OTPDrop’a yönlendiriyorsanız Aracılar sayfasından başlayın.

API’nin parçaları nasıl birleşiyor?

  1. Bir hesap açın ve dönen tohum ifadesini saklayın. Tek kimlik bilgisi odur ve sıfırlanamaz.
  2. Bir yükleme oluşturun, kriptoyu gönderin ve hesaba geçmesini bekleyin.
  3. İhtiyacınız olan servis ve ülke için numarayı alın — bakiye anında düşer.
  4. SMS kodunu sorgulayın. Sipariş süresi dolmadan kod gelmezse otomatik iade olur.

Bir kez yükleyin, çok kez alın: tek bir yükleme, bakiyesinin yettiği kadar numarayı karşılar; dolayısıyla yalnızca ilk alışveriş bir onay bekler.

Kimlik doğrulama

Hesap tohumunu bearer belirteci olarak gönderin. Ayrı bir API anahtarı ve giriş çağrısı yok — tohumun kendisi kimlik bilgisidir.

Authorization: Bearer YOUR-SEED-PHRASE

Katalog uç noktaları hiçbir kimlik doğrulaması istemez; böylece hesap var olmadan önce servislere, ülkelere ve fiyatlara bakabilirsiniz. Paraya ya da siparişlere dokunan her şey bu başlığı gerektirir.

Tohum ifadesi kurtarılamaz. Yalnızca özetini saklıyoruz. Kaybederseniz hesap ve bakiye gider; sıfırlama da yoktur, geri girmenizi sağlayacak bir destek yolu da.

Temel adres

Tüm uç noktalar şuna görelidir:

https://www.otpdrop.com/api/v1

Yanıtlar JSON’dur. POST gövdeleri application/json ya da application/x-www-form-urlencoded olarak kabul edilir.

Hatalar

Başarısızlıklar 2xx dışında bir durum kodu ve tek bir hata nesnesi döndürür.

{
  "error": {
    "code": "invalid_request",
    "message": "unknown service: \"whatsap\""
  }
}
DurumAnlamı
200Başarılı
201Oluşturuldu — bir hesap, yükleme ya da sipariş artık var
401Authorization başlığında tohum yok ya da geçersiz
422İstek anlaşıldı ama yerine getirilemedi
500Bizim tarafımızda bir şey ters gitti

Sık görülen 422 iletileri:

İletiNedeni
insufficient_fundsBakiye fiyatın altında — önce bir yükleme oluşturun
unknown serviceBöyle bir servis kodu yok; «servisleri listele»ye bakın
unknown countryBöyle bir ülke kodu yok; «ülkeleri listele»ye bakın
unknown coinBu para kabul edilmiyor; yükleme uç noktasına bakın
amount_usd must be between…Yüklemeler $25–$1000 aralığındadır

Hız sınırı var mı?

Yayımlanmış bir kota ve kısıtlanacak bir API anahtarı yok; ama uç noktaları döngüde çağırmak bedava değil. Bunlardan ikisi düzenli sorgulama için tasarlanmıştır ve ayrı bir özen ister.

Uç noktaMakul tempoNedeni
Katalog ve fiyat sorgularıKendi tarafınızda önbelleğe alınFiyatlar seyrek değişir; kataloğu her istekte çekmeye gerek yok.
/topups/{id}10-15 saniyede birAğ onayı milisaniyelerle değil dakikalarla ölçülür. Daha sık sormak size bir şeyi daha erken söylemez.
/orders/{id}/sms3-5 saniyede birKodlar genellikle saniyeler içinde gelir; daha sıkı bir döngü yalnızca yük ekler.
Satın almaGerektikçeHer alışveriş gerçek bir bakiyeden düşer; kontrolsüz bir döngü bize maliyet çıkarmadan önce sizin paranızı yakar.

Saldırıya benzeyen trafik, nazik bir 429 gönderilmeden kenarda engellenir. Daha sık sorgulamak için haklı bir nedeniniz varsa önce iletişim sayfasından yazın.

Servisleri listele

GET/api/v1/services

Her servis; kodu, kategorisi ve en düşük fiyatıyla. Kimlik doğrulama gerekmez.

İstek

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

Yanıt

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

Ülkeleri listele

GET/api/v1/countries

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

İstek

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

Yanıt

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

Fiyat matrisi

GET/api/v1/catalog

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

Parametreler

AdTürAçıklama
limitintegeristeğe bağlıHow many rows to return, 1 to 500. Defaults to 12.

İstek

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

Yanıt

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

Fiyat sor

GET/api/v1/quote

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

Parametreler

AdTürAçıklama
servicestringzorunluService code, e.g. telegram
countrystringzorunluCountry code, e.g. us

İstek

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

Yanıt

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

Hesap oluştur

POST/api/v1/accounts

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

İstek

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

Yanıt

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

Yükleme oluştur

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.

Parametreler

AdTürAçıklama
amount_usdnumberzorunluHow much to add to the balance, in USD. Minimum 25, maximum 1000.
coinstringzorunluBTC, LTC, ETH, XMR, SOL, TRX, BNB, USDT, USDC and more

İstek

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

Yanıt

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

Yükleme durumu

GET/api/v1/topups/{id}

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

Parametreler

AdTürAçıklama
idstringzorunluThe top-up id, in the path

İstek

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

Yanıt

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

Numara satın al

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.

Parametreler

AdTürAçıklama
servicestringzorunluService code, e.g. telegram
countrystringzorunluCountry code, e.g. us

İstek

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

Yanıt

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

Siparişlerinizi listele

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.

İstek

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

Yanıt

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

Bir siparişi getir

GET/api/v1/orders/{id}

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

Parametreler

AdTürAçıklama
idstringzorunluThe order id, in the path

İstek

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

Yanıt

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

SMS kodunu getir

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.

Parametreler

AdTürAçıklama
idstringzorunluThe order id, in the path

İstek

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

Yanıt

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

Tam bir entegrasyon nasıl görünür?

Hesaptan koda altı çağrı. Aşağıdaki her şey gerçek: yapıştırın, çalışır.

# 1. Hesap aç ve tohumu sakla
SEED=$(curl -s -X POST https://www.otpdrop.com/api/v1/accounts | jq -r .seed)

# 2. Yükle — dönen adrese coin_amount kadar gönder
curl -s -X POST https://www.otpdrop.com/api/v1/topups \
  -H "Authorization: Bearer \$SEED" \
  -H 'content-type: application/json' \
  -d '{"amount_usd": 25, "coin": "USDT"}'

# 3. Yatırma hesaba geçene kadar sor
curl -s https://www.otpdrop.com/api/v1/topups/TOPUP_ID \
  -H "Authorization: Bearer \$SEED" | jq .status

# 4. Karar vermeden önce fiyata bak
curl -s 'https://www.otpdrop.com/api/v1/quote?service=telegram&country=us'

# 5. Satın al — bakiye düşer, numara hemen verilir
ORDER=$(curl -s -X POST https://www.otpdrop.com/api/v1/orders \
  -H "Authorization: Bearer \$SEED" \
  -H 'content-type: application/json' \
  -d '{"service": "telegram", "country": "us"}' | jq -r .order_id)

# 6. Kodu sor
until curl -s https://www.otpdrop.com/api/v1/orders/\$ORDER/sms \
  -H "Authorization: Bearer \$SEED" | jq -e .code; do sleep 4; done

Kabuk olmadan, aynı sıra Python ile:

import time, requests

API = "https://www.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 sunucusu

Aynı işlemler Model Context Protocol üzerinden https://www.otpdrop.com/mcp adresinde, on bir araç olarak sunulur. Claude Code’a eklemek için:

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

Kurulum ve araçların tam listesi Aracılar sayfasında.

Keşif dosyaları

Servisin makinece okunabilir tanımları; hepsi kimlik doğrulaması olmadan sunulur.

Dosyaİçerik
/openapi.jsonEksiksiz OpenAPI 3.1 şeması
/.well-known/agent.jsonYetenekler, kimlik doğrulama modeli ve iş kuralları
/llms.txtDil modelleri için kısa bir tanıtım
/llms-full.txtAynısı, kataloğun tamamı gömülü hâlde

Sık sorulan sorular

OTPDrop API’si için anahtar gerekiyor mu?

Hayır. Başvurulacak bir şey ve onay adımı yok. Kimlik bilgisi, bearer belirteci olarak gönderilen hesap tohumudur; katalog uç noktaları ise hiçbir kimlik bilgisi istemez.

OTPDrop API’sinin maliyeti nedir?

Satın aldığınız numaraların ötesinde hiçbir şey. Abonelik, çağrı başına ücret ya da asgari hacim yok — siteyi kullananla aynı fiyatları ödersiniz.

API hangi programlama dilleriyle çalışır?

HTTPS isteği yapabilen her dille. Bearer başlıklı, HTTP üzerinden düz JSON; kurulacak SDK ve sürümlerimizle senkron tutulacak bir şey yok.

SMS kodu hiç gelmezse ne olur?

Süresi dolduğunda sipariş kendi kendini bakiyenize iade eder; daha erken iptal etmeyi site üzerinden yapabilirsiniz. Teslim edilen kodlar için ücretlendirilirsiniz, denemeler için değil.

REST API ile MCP sunucusu aynı şey mi?

Evet, bilinçli olarak. Her REST uç noktası bir MCP araç çağrısının çevirisidir, dolayısıyla ikisi birbirinden ayrışamaz: birini düzeltmek diğerini de düzeltir. İstemcinize hangisi uyuyorsa onu seçin.

API hiçbir şey harcamadan denenebilir mi?

Katalog, fiyat sorgusu ve hesap açma ücretsizdir; bu yüzden bakiye yüklemeden önce entegrasyonun büyük bölümünü kurup deneyebilirsiniz. Yalnızca satın almak para tutar.