API pentru primirea SMS-urilor
Cumpărați numere și citiți codurile de verificare printr-o API JSON. Fără control de identitate, plata în criptomonedă.
Cum este organizat API-ul?
- Creați un cont și păstrați fraza returnată. Este singurul acces și nu poate fi resetat.
- Creați o alimentare, trimiteți criptomoneda și așteptați creditarea.
- Cumpărați un număr pentru serviciul și țara dorite — soldul este debitat pe loc.
- Interogați SMS-ul care conține codul. Dacă nu sosește niciun cod până la expirarea comenzii, banii se rambursează automat.
Alimentați o dată, cumpărați des: o alimentare acoperă câte numere permite soldul, așa că doar prima achiziție așteaptă o confirmare.
Autentificare
Transmiteți fraza contului ca jeton bearer. Nu există nici cheie de API separată, nici apel de autentificare — fraza este identificatorul.
Authorization: Bearer YOUR-SEED-PHRASE
Punctele de acces ale catalogului nu cer nicio autentificare: serviciile, țările și prețurile pot fi consultate deci chiar înainte de a avea un cont. Tot ce ține de bani și de comenzi cere antetul.
Adresa de bază
Toate punctele de acces sunt relative la:
https://www.otpdrop.com/api/v1
Răspunsurile sunt în JSON. Corpurile POST sunt acceptate în application/json sau în
application/x-www-form-urlencoded.
Erori
În caz de eșec, se returnează o stare din afara clasei 2xx, cu un singur obiect de eroare.
{
"error": {
"code": "invalid_request",
"message": "unknown service: \"whatsap\""
}
}
| Stare | Semnificație |
|---|---|
200 | Succes |
201 | Creat — contul, alimentarea sau comanda există de acum |
401 | Frază absentă sau incorectă în antetul Authorization |
422 | Cerere înțeleasă, dar imposibil de executat |
500 | Defecțiune din partea noastră |
Mesaje frecvente la 422:
| Mesaj | Cauză |
|---|---|
insufficient_funds | Soldul este mai mic decât prețul — creați mai întâi o alimentare |
unknown service | Acest cod de serviciu nu există; vedeți lista serviciilor |
unknown country | Acest cod de țară nu există; vedeți lista țărilor |
unknown coin | Monedă neacceptată; vedeți punctul de acces al alimentării |
amount_usd must be between… | Alimentările sunt limitate la $25–$1000 |
Există limite de trafic?
Nu este publicată nicio cotă și nu există nicio cheie de API care să fie limitată — dar apelarea în buclă a punctelor de acces nu este gratuită. Două dintre ele sunt făcute pentru a fi interogate repetat și cer o atenție aparte.
| Punct de acces | Ritm rezonabil | De ce |
|---|---|---|
| Catalog și calculul prețului | Păstrați-le în cache la dumneavoastră | Prețurile se schimbă rar; reîncărcarea catalogului la fiecare cerere nu ajută la nimic. |
/topups/{id} | La fiecare 10–15 secunde | O confirmare în rețea durează minute, nu milisecunde. Interogarea mai deasă nu aduce nimic mai devreme. |
/orders/{id}/sms | La fiecare 3–5 secunde | Codurile sosesc de obicei în câteva secunde; o buclă mai strânsă adaugă doar încărcare. |
| Achiziție | La nevoie | Fiecare achiziție consumă bani reali, așa că o buclă fără frână vă va costa pe dumneavoastră mai mult decât pe noi. |
Traficul care seamănă cu un atac va fi blocat din amonte, fără un politicos 429. Dacă
aveți un motiv legitim să interogați mai des, scrieți-ne mai întâi prin pagina de
contact.
Listați serviciile
GET/api/v1/services
Toate serviciile, cu codul, categoria și prețul minim. Nu necesită autentificare.
Cerere
curl -s https://www.otpdrop.com/api/v1/services
Răspuns
{
"services": [
{
"code": "binance",
"name": "Binance",
"category": "Finance",
"from_price_cents": 85,
"color": "#F0B90B",
"icon": "binance"
}
],
"count": 133
}
Listați țările
GET/api/v1/countries
Every country with its dial code and how many services are available there. No authentication required.
Cerere
curl -s https://www.otpdrop.com/api/v1/countries
Răspuns
{
"countries": [
{
"code": "us",
"name": "United States",
"dial_code": "+1",
"service_count": 133
}
],
"count": 197
}
Matricea prețurilor
GET/api/v1/catalog
The most useful service and country combinations with their prices, cheapest first. No authentication required.
Parametri
| Nume | Tip | Descriere | |
|---|---|---|---|
limit | integer | opțional | How many rows to return, 1 to 500. Defaults to 12. |
Cerere
curl -s 'https://www.otpdrop.com/api/v1/catalog?limit=2'
Răspuns
{
"items": [
{
"service": "badoo",
"country": "us",
"price_cents": 35
}
],
"count": 2
}
Calculați un preț
GET/api/v1/quote
The exact price for one service and country before you commit to buying. No authentication required.
Parametri
| Nume | Tip | Descriere | |
|---|---|---|---|
service | string | obligatoriu | Service code, e.g. telegram |
country | string | obligatoriu | Country code, e.g. us |
Cerere
curl -s 'https://www.otpdrop.com/api/v1/quote?service=telegram&country=us'
Răspuns
{
"service": "telegram",
"country": "us",
"price_cents": 111,
"price_usd": "1.11",
"currency": "USD",
"purchasable": true
}
Creați un cont
POST/api/v1/accounts
Generates an account and returns its seed. This is the only time the seed is ever shown. No authentication required.
Cerere
curl -s -X POST https://www.otpdrop.com/api/v1/accounts
Răspuns
{
"public_id": "acc_7f3c1a92",
"seed": "PABh-ZbRt-9xKm-Lq4V",
"seed_prefix": "PABh",
"balance_cents": 0,
"warning": "This seed is shown exactly once, right now..."
}
Creați o alimentare
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.
Parametri
| Nume | Tip | Descriere | |
|---|---|---|---|
amount_usd | number | obligatoriu | How much to add to the balance, in USD. Minimum 25, maximum 1000. |
coin | string | obligatoriu | BTC, LTC, ETH, XMR, SOL, TRX, BNB, USDT, USDC and more |
Cerere
curl -s -X POST https://www.otpdrop.com/api/v1/topups \
-H 'Authorization: Bearer YOUR-SEED' \
-H 'content-type: application/json' \
-d '{"amount_usd": 25, "coin": "XMR"}'
Răspuns
{
"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
}
Starea unei alimentări
GET/api/v1/topups/{id}
Whether a deposit has been credited. Confirmation is not instant — poll this rather than assuming the funds arrived.
Parametri
| Nume | Tip | Descriere | |
|---|---|---|---|
id | string | obligatoriu | The top-up id, in the path |
Cerere
curl -s https://www.otpdrop.com/api/v1/topups/top_019195919c80fc8f \ -H 'Authorization: Bearer YOUR-SEED'
Răspuns
{
"topup_id": "top_019195919c80fc8f",
"status": "credited",
"coin": "XMR",
"amount_usd": "25.00",
"coin_amount": "0.1337",
"credited_total_cents": 2500,
"expires_at": 1788532810
}
Cumpărați un număr
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.
Parametri
| Nume | Tip | Descriere | |
|---|---|---|---|
service | string | obligatoriu | Service code, e.g. telegram |
country | string | obligatoriu | Country code, e.g. us |
Cerere
curl -s -X POST https://www.otpdrop.com/api/v1/orders \
-H 'Authorization: Bearer YOUR-SEED' \
-H 'content-type: application/json' \
-d '{"service": "telegram", "country": "us"}'
Răspuns
{
"order_id": "ord_1ad450bf7a42519c",
"service": "telegram",
"country": "us",
"phone": "+15558329008",
"status": "paid",
"price_usd": "1.11"
}
Listați comenzile dumneavoastră
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.
Cerere
curl -s https://www.otpdrop.com/api/v1/orders \ -H 'Authorization: Bearer YOUR-SEED'
Răspuns
{
"orders": [
{
"order_id": "ord_1ad450bf7a42519c",
"service": "telegram",
"country": "us",
"phone": "+15558329008",
"status": "paid",
"price_usd": "1.11"
}
],
"count": 1
}
Consultați o comandă
GET/api/v1/orders/{id}
The current state of one order: its number, status and price.
Parametri
| Nume | Tip | Descriere | |
|---|---|---|---|
id | string | obligatoriu | The order id, in the path |
Cerere
curl -s https://www.otpdrop.com/api/v1/orders/ord_1ad450bf7a42519c \ -H 'Authorization: Bearer YOUR-SEED'
Răspuns
{
"order_id": "ord_1ad450bf7a42519c",
"service": "telegram",
"country": "us",
"phone": "+15558329008",
"status": "paid",
"price_usd": "1.11"
}
Preluați SMS-ul cu codul
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.
Parametri
| Nume | Tip | Descriere | |
|---|---|---|---|
id | string | obligatoriu | The order id, in the path |
Cerere
curl -s https://www.otpdrop.com/api/v1/orders/ord_1ad450bf7a42519c/sms \ -H 'Authorization: Bearer YOUR-SEED'
Răspuns
{
"order_id": "ord_1ad450bf7a42519c",
"status": "paid",
"arrived": false,
"code": null
}
Cum arată o integrare completă?
De la cont la cod, șase apeluri. Tot ce urmează este real: lipiți și rulați.
# 1. Creați un cont și păstrați fraza
SEED=$(curl -s -X POST https://www.otpdrop.com/api/v1/accounts | jq -r .seed)
# 2. Alimentați — trimiteți coin_amount la adresa returnată
curl -s -X POST https://www.otpdrop.com/api/v1/topups \
-H "Authorization: Bearer \$SEED" \
-H 'content-type: application/json' \
-d '{"amount_usd": 25, "coin": "USDT"}'
# 3. Interogați până la creditarea alimentării
curl -s https://www.otpdrop.com/api/v1/topups/TOPUP_ID \
-H "Authorization: Bearer \$SEED" | jq .status
# 4. Verificați prețul înainte de a cumpăra
curl -s 'https://www.otpdrop.com/api/v1/quote?service=telegram&country=us'
# 5. Cumpărați — soldul este debitat, numărul livrat pe loc
ORDER=$(curl -s -X POST https://www.otpdrop.com/api/v1/orders \
-H "Authorization: Bearer \$SEED" \
-H 'content-type: application/json' \
-d '{"service": "telegram", "country": "us"}' | jq -r .order_id)
# 6. Interogați codul
until curl -s https://www.otpdrop.com/api/v1/orders/\$ORDER/sms \
-H "Authorization: Bearer \$SEED" | jq -e .code; do sleep 4; done
Aceeași secvență în Python, fără shell:
import time, requests
API = "https://www.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
Aceleași operațiuni sunt disponibile prin Model Context Protocol la https://www.otpdrop.com/mcp, sub
forma a unsprezece unelte. Pentru a-l adăuga în Claude Code:
claude mcp add --transport http otpdrop https://www.otpdrop.com/mcp
Configurarea și lista completă a uneltelor se află în pagina pentru agenți.
Fișiere de descoperire
Descrieri ale serviciului citibile de mașini, toate servite fără autentificare.
| Fișier | Conținut |
|---|---|
/openapi.json | Schema OpenAPI 3.1 completă |
/.well-known/agent.json | Capabilități, model de autentificare și reguli de funcționare |
/llms.txt | Un reper scurt pentru modelele de limbaj |
/llms-full.txt | Același lucru, cu tot catalogul inclus |
Întrebări frecvente
Este nevoie de o cheie pentru API-ul OTPDrop?
Nu. Nu aveți ce cere și nu există nicio aprobare. Identificatorul este fraza contului, transmisă ca jeton bearer — iar punctele de acces ale catalogului nici măcar nu au nevoie de ea.
Cât costă API-ul OTPDrop?
Nimic peste numerele în sine. Fără abonament, fără tarifare pe apel, fără volum minim — prețurile sunt cele de pe site.
Cu ce limbaje de programare funcționează API-ul?
Cu orice limbaj care poate face o cerere HTTPS. Este JSON obișnuit peste HTTP, cu un antet bearer: niciun SDK de instalat și nimic de sincronizat cu versiunile noastre.
Ce se întâmplă dacă SMS-ul nu sosește?
Comanda se rambursează singură în sold la expirare; o puteți anula și mai devreme, de pe site. Plătiți codurile livrate, nu încercările.
API-ul REST și serverul MCP sunt același lucru?
Da, în mod deliberat. Fiecare punct de acces REST este traducerea unui apel de unealtă MCP, așa că nu pot diverge: a modifica unul înseamnă a-l modifica pe celălalt. Alegeți-l pe cel care se potrivește mai bine clientului dumneavoastră.
Se poate testa API-ul fără a cheltui nimic?
Catalogul, calculul prețului și crearea contului sunt gratuite: cea mai mare parte a unei integrări poate fi deci scrisă și verificată înainte de orice alimentare. Doar achiziția costă bani.