API verifikasi SMS

Beli nomor dan baca kode verifikasi lewat API JSON. Tanpa KYC, hanya kripto.

REST · JSONOpenAPI 3.1 Spesifikasi OpenAPI →

Setiap operasi di sini juga merupakan alat MCP. Endpoint REST adalah terjemahan dari alat-alat yang sama yang disediakan server MCP, sehingga agen otonom dan integrasi konvensional mendapat perilaku yang identik. Bila Anda mengarahkan agen AI ke OTPDrop, mulailah dari halaman untuk agen.

Bagaimana bagian-bagian API ini terhubung?

  1. Buat akun dan simpan frasa benih yang dikembalikan. Itu satu-satunya kredensial dan tidak bisa disetel ulang.
  2. Buat pengisian saldo, kirim kriptonya, dan tunggu sampai dikreditkan.
  3. Beli nomor untuk layanan dan negara yang Anda butuhkan — saldo terpotong seketika.
  4. Tanyakan kode SMS-nya secara berkala. Bila tidak ada kode sebelum pesanan kedaluwarsa, dananya kembali otomatis.

Isi sekali, beli berkali-kali: satu pengisian saldo menanggung sebanyak nomor yang dijangkau saldonya, jadi hanya pembelian pertama yang menunggu konfirmasi.

Autentikasi

Kirim frasa benih akun sebagai token bearer. Tidak ada kunci API terpisah dan tidak ada panggilan masuk — frasa benih itu adalah kredensialnya.

Authorization: Bearer YOUR-SEED-PHRASE

Endpoint katalog sama sekali tidak memerlukan autentikasi, jadi Anda bisa menelusuri layanan, negara, dan harga sebelum sebuah akun ada. Semua yang menyangkut uang atau pesanan memerlukan header itu.

Frasa benih tidak dapat dipulihkan. Kami hanya menyimpan hash-nya. Kehilangannya berarti akun beserta saldonya lenyap, tanpa penyetelan ulang dan tanpa jalur dukungan untuk masuk kembali.

URL dasar

Semua endpoint bersifat relatif terhadap:

https://otpdrop.com/api/v1

Tanggapan berupa JSON. Badan permintaan POST diterima sebagai application/json atau application/x-www-form-urlencoded.

Kesalahan

Kegagalan mengembalikan status di luar 2xx dan satu objek kesalahan.

{
  "error": {
    "code": "invalid_request",
    "message": "unknown service: \"whatsap\""
  }
}
StatusArtinya
200Berhasil
201Dibuat — sebuah akun, pengisian saldo, atau pesanan kini ada
401Frasa benih pada header Authorization hilang atau tidak sah
422Permintaan dimengerti tetapi tidak dapat dijalankan
500Ada yang gagal di sisi kami

Pesan yang lazim pada 422:

PesanPenyebab
insufficient_fundsSaldo di bawah harga — buat pengisian saldo dulu
unknown serviceKode layanan itu tidak ada; lihat «daftar layanan»
unknown countryKode negara itu tidak ada; lihat «daftar negara»
unknown coinKoin tidak diterima; lihat endpoint pengisian saldo
amount_usd must be between…Pengisian saldo dibatasi $25–$1000

Apakah ada batas frekuensi?

Tidak ada kuota yang diumumkan dan tidak ada kunci API untuk dicekik, tetapi memanggil endpoint dalam gelung bukan tanpa biaya. Dua di antaranya adalah endpoint untuk pemeriksaan berkala dan layak diperlakukan dengan hati-hati.

EndpointIrama yang wajarAlasannya
Katalog dan penawaran hargaSimpan di singgahan lokalHarga jarang berubah; tak perlu mengambil katalog pada tiap permintaan.
/topups/{id}Tiap 10-15 detikKonfirmasi jaringan memakan menit, bukan milidetik. Memeriksa lebih cepat tidak memberi tahu apa pun lebih awal.
/orders/{id}/smsTiap 3-5 detikKode biasanya tiba dalam hitungan detik; gelung yang lebih rapat hanya menambah beban.
PembelianSeperlunyaTiap pembelian memotong saldo sungguhan, jadi gelung yang lepas kendali membebani uang Anda sebelum membebani kami.

Lalu lintas yang tampak seperti serangan akan diblokir di tepi jaringan tanpa 429 yang sopan. Bila Anda punya alasan sah untuk memeriksa lebih sering, tanyakan dulu lewat halaman kontak.

Daftar layanan

GET/api/v1/services

Setiap layanan dengan kode, kategori, dan harga termurahnya. Tidak perlu autentikasi.

Permintaan

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

Tanggapan

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

Daftar negara

GET/api/v1/countries

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

Permintaan

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

Tanggapan

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

Matriks harga

GET/api/v1/catalog

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

Parameter

NamaTipeKeterangan
limitintegeropsionalHow many rows to return, 1 to 500. Defaults to 12.

Permintaan

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

Tanggapan

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

Tanyakan harga

GET/api/v1/quote

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

Parameter

NamaTipeKeterangan
servicestringwajibService code, e.g. telegram
countrystringwajibCountry code, e.g. us

Permintaan

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

Tanggapan

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

Buat akun

POST/api/v1/accounts

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

Permintaan

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

Tanggapan

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

Buat pengisian saldo

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.

Parameter

NamaTipeKeterangan
amount_usdnumberwajibHow much to add to the balance, in USD. Minimum 25, maximum 1000.
coinstringwajibBTC, LTC, ETH, XMR, SOL, TRX, BNB, USDT, USDC and more

Permintaan

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

Tanggapan

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

Status pengisian saldo

GET/api/v1/topups/{id}

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

Parameter

NamaTipeKeterangan
idstringwajibThe top-up id, in the path

Permintaan

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

Tanggapan

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

Beli nomor

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.

Parameter

NamaTipeKeterangan
servicestringwajibService code, e.g. telegram
countrystringwajibCountry code, e.g. us

Permintaan

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

Tanggapan

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

Daftar pesanan Anda

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.

Permintaan

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

Tanggapan

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

Ambil satu pesanan

GET/api/v1/orders/{id}

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

Parameter

NamaTipeKeterangan
idstringwajibThe order id, in the path

Permintaan

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

Tanggapan

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

Ambil kode 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.

Parameter

NamaTipeKeterangan
idstringwajibThe order id, in the path

Permintaan

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

Tanggapan

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

Seperti apa integrasi yang lengkap?

Dari akun sampai kode dalam enam panggilan. Semua di bawah ini nyata: tempel dan ia berjalan.

# 1. Buat akun dan simpan frasa benihnya
SEED=$(curl -s -X POST https://otpdrop.com/api/v1/accounts | jq -r .seed)

# 2. Isi saldonya — kirim coin_amount ke alamat yang dikembalikan
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. Periksa berkala sampai setorannya dikreditkan
curl -s https://otpdrop.com/api/v1/topups/TOPUP_ID \
  -H "Authorization: Bearer \$SEED" | jq .status

# 4. Cek harganya sebelum memutuskan
curl -s 'https://otpdrop.com/api/v1/quote?service=telegram&country=us'

# 5. Beli — saldo terpotong dan nomor keluar sekaligus
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. Periksa berkala untuk kodenya
until curl -s https://otpdrop.com/api/v1/orders/\$ORDER/sms \
  -H "Authorization: Bearer \$SEED" | jq -e .code; do sleep 4; done

Urutan yang sama dalam Python, tanpa shell:

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)

Server MCP

Operasi yang sama tersedia lewat Model Context Protocol di https://otpdrop.com/mcp, sebagai sebelas alat. Untuk menambahkannya ke Claude Code:

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

Penyiapan dan daftar alat selengkapnya ada di halaman untuk agen.

Berkas penemuan

Keterangan layanan yang terbaca mesin, semuanya disajikan tanpa autentikasi.

BerkasIsinya
/openapi.jsonSkema OpenAPI 3.1 selengkapnya
/.well-known/agent.jsonKemampuan, model autentikasi, dan aturan usaha
/llms.txtPengantar singkat untuk model bahasa
/llms-full.txtSama, dengan katalog lengkap di dalamnya

Pertanyaan yang sering diajukan

Apakah API OTPDrop memerlukan kunci API?

Tidak. Tidak ada yang perlu diajukan dan tidak ada langkah persetujuan. Kredensialnya adalah frasa benih akun, dikirim sebagai token bearer, dan endpoint katalog sama sekali tidak memerlukan kredensial.

Berapa biaya API OTPDrop?

Tidak ada, di luar nomor yang Anda beli. Tidak ada langganan, tidak ada biaya per panggilan, dan tidak ada volume minimum — Anda membayar harga yang sama seperti pemakai situs.

Bahasa pemrograman apa saja yang bisa dipakai dengan API ini?

Bahasa apa pun yang bisa membuat permintaan HTTPS. Ini JSON biasa di atas HTTP dengan sebuah header bearer, jadi tidak ada SDK yang perlu dipasang dan tidak ada yang perlu disamakan dengan rilis kami.

Apa yang terjadi bila kode SMS tidak pernah datang?

Pesanan mengembalikan dananya sendiri ke saldo Anda ketika kedaluwarsa, dan Anda bisa membatalkan lebih awal lewat situs. Anda ditagih untuk kode yang terkirim, bukan untuk percobaan.

Apakah API REST sama dengan server MCP?

Ya, dan itu disengaja. Tiap endpoint REST adalah terjemahan dari satu panggilan alat MCP, sehingga keduanya tidak bisa menyimpang: memperbaiki yang satu berarti memperbaiki yang lain. Pilih mana pun yang cocok untuk klien Anda.

Bisakah menguji API tanpa mengeluarkan biaya?

Katalog, penawaran harga, dan pembuatan akun gratis, jadi Anda bisa membangun dan menguji hampir seluruh integrasi sebelum mengisi saldo. Hanya pembelian yang berbiaya.