API pro příjem SMS

Kupujte čísla a čtěte ověřovací kódy přes JSON API. Bez kontroly totožnosti, platba kryptoměnou.

REST · JSONOpenAPI 3.1 Specifikace OpenAPI →

Každá zdejší operace je zároveň nástrojem MCP. Endpointy REST jsou překladem týchž nástrojů, které vystavuje server MCP: samostatný agent i běžná integrace se tedy chovají shodně. Pokud míříte s AI agentem na OTPDrop, začněte sekcí pro agenty.

Jak je API uspořádané?

  1. Založte účet a uschovejte vrácenou frázi. Je to jediný přístup a nelze ji resetovat.
  2. Vytvořte dobití, odešlete kryptoměnu a počkejte na připsání.
  3. Kupte číslo pro požadovanou službu a zemi — zůstatek se strhne ihned.
  4. Dotažte se na SMS s kódem. Pokud kód nedorazí do vypršení objednávky, peníze se vrátí automaticky.

Dobijte jednou, nakupujte často: jedno dobití pokryje tolik čísel, kolik zůstatek dovolí, takže na potvrzení čeká jen první nákup.

Přihlášení

Frázi účtu předávejte jako bearer token. Není tu žádný samostatný klíč API ani přihlašovací volání — fráze je přihlašovací údaj.

Authorization: Bearer YOUR-SEED-PHRASE

Endpointy katalogu žádné přihlášení nevyžadují: služby, země i ceny si tedy prohlédnete ještě před založením účtu. Vše, co se týká peněz a objednávek, hlavičku vyžaduje.

Frázi nelze obnovit. Uchováváme z ní jen otisk. Když ji ztratíte, účet i jeho zůstatek zmizí, bez resetu a bez pomoci podpory.

Základní adresa

Všechny endpointy jsou relativní vůči:

https://otpdrop.com/api/v1

Odpovědi jsou v JSON. Těla POST přijímáme jako application/json nebo application/x-www-form-urlencoded.

Chyby

Při selhání vracíme stav mimo 2xx spolu s jediným chybovým objektem.

{
  "error": {
    "code": "invalid_request",
    "message": "unknown service: \"whatsap\""
  }
}
StavVýznam
200Úspěch
201Vytvořeno — účet, dobití nebo objednávka nyní existuje
401Chybějící nebo nesprávná fráze v hlavičce Authorization
422Požadavku jsme rozuměli, ale nelze jej provést
500Selhání na naší straně

Časté zprávy u 422:

ZprávaPříčina
insufficient_fundsZůstatek je nižší než cena — vytvořte nejdřív dobití
unknown serviceTakový kód služby neexistuje; viz výpis služeb
unknown countryTakový kód země neexistuje; viz výpis zemí
unknown coinMěna není přijímána; viz endpoint dobití
amount_usd must be between…Dobití je omezeno na $25–$1000

Platí nějaké limity volání?

Žádnou kvótu nezveřejňujeme a neexistuje klíč API, který by se dal škrtit — ale volat endpointy ve smyčce není zadarmo. Dva z nich jsou určené k opakovaným dotazům a zaslouží zvláštní pozornost.

EndpointRozumné tempoProč
Katalog a výpočet cenyUkládejte si je do mezipamětiCeny se mění zřídka; načítat katalog při každém požadavku nemá smysl.
/topups/{id}Každých 10 až 15 sekundPotvrzení v síti trvá minuty, ne milisekundy. Častější dotazy nic dřív nezjistí.
/orders/{id}/smsKaždé 3 až 5 sekundKódy obvykle dorazí během několika sekund; těsnější smyčka jen přidává zátěž.
NákupPodle potřebyKaždý nákup strhne skutečné peníze, takže smyčka bez brzdy bude stát víc vás než nás.

Provoz, který vypadá jako útok, zablokujeme dřív, bez zdvořilého 429. Pokud máte oprávněný důvod dotazovat se častěji, napište nám nejdřív přes kontaktní stránku.

Výpis služeb

GET/api/v1/services

Všechny služby s kódem, kategorií a minimální cenou. Přihlášení není potřeba.

Požadavek

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

Odpověď

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

Výpis zemí

GET/api/v1/countries

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

Požadavek

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

Odpověď

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

Matice cen

GET/api/v1/catalog

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

Parametry

NázevTypPopis
limitintegernepovinnéHow many rows to return, 1 to 500. Defaults to 12.

Požadavek

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

Odpověď

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

Výpočet ceny

GET/api/v1/quote

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

Parametry

NázevTypPopis
servicestringpovinnéService code, e.g. telegram
countrystringpovinnéCountry code, e.g. us

Požadavek

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

Odpověď

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

Založení účtu

POST/api/v1/accounts

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

Požadavek

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

Odpověď

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

Vytvoření dobití

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.

Parametry

NázevTypPopis
amount_usdnumberpovinnéHow much to add to the balance, in USD. Minimum 25, maximum 1000.
coinstringpovinnéBTC, LTC, ETH, XMR, SOL, TRX, BNB, USDT, USDC and more

Požadavek

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

Odpověď

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

Stav dobití

GET/api/v1/topups/{id}

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

Parametry

NázevTypPopis
idstringpovinnéThe top-up id, in the path

Požadavek

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

Odpověď

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

Nákup čísla

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.

Parametry

NázevTypPopis
servicestringpovinnéService code, e.g. telegram
countrystringpovinnéCountry code, e.g. us

Požadavek

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

Odpověď

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

Výpis vašich objednávek

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.

Požadavek

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

Odpověď

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

Detail objednávky

GET/api/v1/orders/{id}

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

Parametry

NázevTypPopis
idstringpovinnéThe order id, in the path

Požadavek

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

Odpověď

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

Načtení SMS s kódem

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.

Parametry

NázevTypPopis
idstringpovinnéThe order id, in the path

Požadavek

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

Odpověď

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

Jak vypadá kompletní integrace?

Od účtu ke kódu šest volání. Vše níže je skutečné: vložte a spusťte.

# 1. Založit účet a uschovat frázi
SEED=$(curl -s -X POST https://otpdrop.com/api/v1/accounts | jq -r .seed)

# 2. Dobít — odešlete coin_amount na vrácenou adresu
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. Dotazovat se, dokud se dobití nepřipíše
curl -s https://otpdrop.com/api/v1/topups/TOPUP_ID \
  -H "Authorization: Bearer \$SEED" | jq .status

# 4. Ověřit cenu před nákupem
curl -s 'https://otpdrop.com/api/v1/quote?service=telegram&country=us'

# 5. Koupit — zůstatek se strhne, číslo se vydá ihned
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. Dotazovat se na kód
until curl -s https://otpdrop.com/api/v1/orders/\$ORDER/sms \
  -H "Authorization: Bearer \$SEED" | jq -e .code; do sleep 4; done

Tatáž posloupnost v Pythonu, bez shellu:

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

Tytéž operace jsou dostupné přes Model Context Protocol na https://otpdrop.com/mcp, a to jako jedenáct nástrojů. Přidání do Claude Code:

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

Nastavení a úplný seznam nástrojů najdete na stránce pro agenty.

Soubory pro objevování

Strojově čitelné popisy služby, všechny dostupné bez přihlášení.

SouborObsah
/openapi.jsonÚplné schéma OpenAPI 3.1
/.well-known/agent.jsonSchopnosti, model přihlášení a provozní pravidla
/llms.txtStručný orientační bod pro jazykové modely
/llms-full.txtTotéž, včetně úplného katalogu

Časté dotazy

Je pro API OTPDrop potřeba klíč?

Ne. Není o co žádat a nic se neschvaluje. Přihlašovacím údajem je fráze účtu předaná jako bearer token — a endpointy katalogu ji ani nepotřebují.

Kolik API OTPDrop stojí?

Nic nad rámec samotných čísel. Žádné předplatné, žádné účtování za volání, žádný minimální objem — platí ceny z webu.

S jakými programovacími jazyky API funguje?

S jakýmkoli, který umí odeslat požadavek HTTPS. Je to běžný JSON přes HTTP s hlavičkou bearer: žádné SDK k instalaci a nic, co by se muselo držet krok s našimi verzemi.

Co se stane, když SMS nedorazí?

Objednávka se při vypršení sama vrátí na zůstatek; můžete ji také zrušit dřív z webu. Platíte za doručené kódy, ne za pokusy.

Jsou REST API a server MCP totéž?

Ano, záměrně. Každý endpoint REST je překladem jednoho volání nástroje MCP, takže se nemohou rozejít: změnit jedno znamená změnit druhé. Vyberte si to, co se vašemu klientovi hodí víc.

Lze API vyzkoušet, aniž bych něco utratil?

Katalog, výpočet ceny i založení účtu jsou zdarma: podstatnou část integrace tedy napíšete a ověříte ještě před prvním dobitím. Peníze stojí až nákup.