API за получаване на SMS
Купувайте номера и четете кодовете за потвърждение чрез JSON API. Без проверка на самоличността, плащане с криптовалута.
Как е устроено API?
- Създайте сметка и запазете върнатата фраза. Това е единственият достъп и той е невъзстановим.
- Създайте захранване, изпратете криптовалутата и изчакайте начисляването.
- Купете номер за желаната услуга и държава — балансът се тегли веднага.
- Запитайте за 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.
Параметри
| Име | Тип | Описание | |
|---|---|---|---|
limit | integer | по избор | 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.
Параметри
| Име | Тип | Описание | |
|---|---|---|---|
service | string | задължителен | Service code, e.g. telegram |
country | string | задължителен | 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_usd | number | задължителен | How much to add to the balance, in USD. Minimum 25, maximum 1000. |
coin | string | задължителен | 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.
Параметри
| Име | Тип | Описание | |
|---|---|---|---|
id | string | задължителен | 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.
Параметри
| Име | Тип | Описание | |
|---|---|---|---|
service | string | задължителен | Service code, e.g. telegram |
country | string | задължителен | 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.
Параметри
| Име | Тип | Описание | |
|---|---|---|---|
id | string | задължителен | 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.
Параметри
| Име | Тип | Описание | |
|---|---|---|---|
id | string | задължителен | 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 да се изпробва, без да се харчи нищо?
Каталогът, изчисляването на цена и създаването на сметка са безплатни: по-голямата част от една интеграция може да се напише и провери преди каквото и да е захранване. Само покупката струва пари.