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ă.

REST · JSONOpenAPI 3.1 Specificația OpenAPI →

Fiecare operațiune de aici este și o unealtă MCP. Punctele de acces REST sunt traducerea acelorași unelte pe care le expune serverul MCP: un agent autonom și o integrare obișnuită se comportă deci identic. Dacă îndreptați un agent AI către OTPDrop, începeți cu secțiunea pentru agenți.

Cum este organizat API-ul?

  1. Creați un cont și păstrați fraza returnată. Este singurul acces și nu poate fi resetat.
  2. Creați o alimentare, trimiteți criptomoneda și așteptați creditarea.
  3. Cumpărați un număr pentru serviciul și țara dorite — soldul este debitat pe loc.
  4. 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.

Fraza nu poate fi recuperată. Păstrăm doar amprenta ei. Dacă o pierdeți, contul și soldul lui dispar, fără resetare și fără vreo cale prin asistență.

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\""
  }
}
StareSemnificație
200Succes
201Creat — contul, alimentarea sau comanda există de acum
401Frază absentă sau incorectă în antetul Authorization
422Cerere înțeleasă, dar imposibil de executat
500Defecțiune din partea noastră

Mesaje frecvente la 422:

MesajCauză
insufficient_fundsSoldul este mai mic decât prețul — creați mai întâi o alimentare
unknown serviceAcest cod de serviciu nu există; vedeți lista serviciilor
unknown countryAcest cod de țară nu există; vedeți lista țărilor
unknown coinMonedă 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 accesRitm rezonabilDe ce
Catalog și calculul prețuluiPă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 secundeO confirmare în rețea durează minute, nu milisecunde. Interogarea mai deasă nu aduce nimic mai devreme.
/orders/{id}/smsLa fiecare 3–5 secundeCodurile sosesc de obicei în câteva secunde; o buclă mai strânsă adaugă doar încărcare.
AchizițieLa nevoieFiecare 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

NumeTipDescriere
limitintegeropționalHow 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

NumeTipDescriere
servicestringobligatoriuService code, e.g. telegram
countrystringobligatoriuCountry 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

NumeTipDescriere
amount_usdnumberobligatoriuHow much to add to the balance, in USD. Minimum 25, maximum 1000.
coinstringobligatoriuBTC, 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

NumeTipDescriere
idstringobligatoriuThe 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

NumeTipDescriere
servicestringobligatoriuService code, e.g. telegram
countrystringobligatoriuCountry 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

NumeTipDescriere
idstringobligatoriuThe 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

NumeTipDescriere
idstringobligatoriuThe 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șierConținut
/openapi.jsonSchema OpenAPI 3.1 completă
/.well-known/agent.jsonCapabilități, model de autentificare și reguli de funcționare
/llms.txtUn reper scurt pentru modelele de limbaj
/llms-full.txtAcelaș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.