API за получаване на SMS

Купувайте номера и четете кодовете за потвърждение чрез 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Създадено — сметката, захранването или поръчката вече съществува
401Липсваща или неправилна фраза в заглавката Authorization
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 сървър

Същите операции са достъпни през Model Context Protocol на https://otpdrop.com/mcp, под формата на единайсет инструмента. За да го добавите към 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Същото, с пълния каталог

Често задавани въпроси

Нужен ли е ключ за API на OTPDrop?

Не. Няма какво да се заявява и няма одобрение. Идентификаторът е фразата на сметката, подадена като bearer токен — а крайните точки на каталога дори нямат нужда от нея.

Колко струва API на OTPDrop?

Нищо над самите номера. Нито абонамент, нито такса на повикване, нито минимален обем — цените са тези от сайта.

С кои езици за програмиране работи API?

С всеки език, който може да направи HTTPS заявка. Това е обикновен JSON по HTTP със заглавка bearer: няма SDK за инсталиране и няма какво да се сверява с нашите версии.

Какво става, ако SMS не пристигне?

Поръчката се възстановява сама в баланса при изтичането си; можете също да я отмените по-рано от сайта. Плащате за доставени кодове, а не за опити.

Едно и също ли са REST API и MCP сървърът?

Да, умишлено. Всяка REST крайна точка е превод на извикване на MCP инструмент, тъй че те не могат да се разминат: промяната на едното е промяна и на другото. Изберете това, което подхожда по-добре на вашия клиент.

Може ли API да се изпробва, без да се харчи нищо?

Каталогът, изчисляването на цена и създаването на сметка са безплатни: по-голямата част от една интеграция може да се напише и провери преди каквото и да е захранване. Само покупката струва пари.