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.
Jak je API uspořádané?
- Založte účet a uschovejte vrácenou frázi. Je to jediný přístup a nelze ji resetovat.
- Vytvořte dobití, odešlete kryptoměnu a počkejte na připsání.
- Kupte číslo pro požadovanou službu a zemi — zůstatek se strhne ihned.
- 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.
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\""
}
}
| Stav | Význam |
|---|---|
200 | Úspěch |
201 | Vytvořeno — účet, dobití nebo objednávka nyní existuje |
401 | Chybějící nebo nesprávná fráze v hlavičce Authorization |
422 | Požadavku jsme rozuměli, ale nelze jej provést |
500 | Selhání na naší straně |
Časté zprávy u 422:
| Zpráva | Příčina |
|---|---|
insufficient_funds | Zůstatek je nižší než cena — vytvořte nejdřív dobití |
unknown service | Takový kód služby neexistuje; viz výpis služeb |
unknown country | Takový kód země neexistuje; viz výpis zemí |
unknown coin | Mě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.
| Endpoint | Rozumné tempo | Proč |
|---|---|---|
| Katalog a výpočet ceny | Ukládejte si je do mezipaměti | Ceny 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 sekund | Potvrzení v síti trvá minuty, ne milisekundy. Častější dotazy nic dřív nezjistí. |
/orders/{id}/sms | Každé 3 až 5 sekund | Kódy obvykle dorazí během několika sekund; těsnější smyčka jen přidává zátěž. |
| Nákup | Podle potřeby | Kaž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ázev | Typ | Popis | |
|---|---|---|---|
limit | integer | nepovinné | 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ázev | Typ | Popis | |
|---|---|---|---|
service | string | povinné | Service code, e.g. telegram |
country | string | povinné | 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ázev | Typ | Popis | |
|---|---|---|---|
amount_usd | number | povinné | How much to add to the balance, in USD. Minimum 25, maximum 1000. |
coin | string | povinné | 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ázev | Typ | Popis | |
|---|---|---|---|
id | string | povinné | 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ázev | Typ | Popis | |
|---|---|---|---|
service | string | povinné | Service code, e.g. telegram |
country | string | povinné | 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ázev | Typ | Popis | |
|---|---|---|---|
id | string | povinné | 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ázev | Typ | Popis | |
|---|---|---|---|
id | string | povinné | 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í.
| Soubor | Obsah |
|---|---|
/openapi.json | Úplné schéma OpenAPI 3.1 |
/.well-known/agent.json | Schopnosti, model přihlášení a provozní pravidla |
/llms.txt | Stručný orientační bod pro jazykové modely |
/llms-full.txt | Totéž, 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.