API nhận SMS xác minh
Mua số và đọc mã xác minh qua một API JSON. Không KYC, chỉ tiền mã hóa.
Các phần của API ghép với nhau ra sao?
- Tạo tài khoản và lưu cụm từ hạt giống nhận được. Đó là thông tin xác thực duy nhất và không đặt lại được.
- Tạo một lần nạp, gửi tiền mã hóa, rồi chờ được ghi có.
- Mua số cho dịch vụ và quốc gia bạn cần — số dư bị trừ ngay lập tức.
- Hỏi mã SMS theo chu kỳ. Không mã nào đến trước khi đơn hết hạn thì tự hoàn tiền.
Nạp một lần, mua nhiều lần: một lần nạp đủ cho bao nhiêu số thì tùy số dư vươn tới đâu, nên chỉ lần mua đầu tiên phải chờ xác nhận.
Xác thực
Gửi cụm từ hạt giống của tài khoản dưới dạng token bearer. Không có khóa API riêng và không có lệnh đăng nhập — cụm từ hạt giống chính là thông tin xác thực.
Authorization: Bearer YOUR-SEED-PHRASE
Các endpoint danh mục hoàn toàn không cần xác thực, nên bạn có thể xem dịch vụ, quốc gia và giá trước khi có tài khoản. Mọi thứ đụng tới tiền hay đơn hàng đều cần tiêu đề đó.
URL gốc
Mọi endpoint đều tính tương đối với:
https://otpdrop.com/api/v1
Phản hồi ở dạng JSON. Thân yêu cầu POST nhận cả application/json lẫn
application/x-www-form-urlencoded.
Lỗi
Khi hỏng, hệ thống trả về mã trạng thái ngoài 2xx cùng một đối tượng lỗi duy nhất.
{
"error": {
"code": "invalid_request",
"message": "unknown service: \"whatsap\""
}
}
| Trạng thái | Ý nghĩa |
|---|---|
200 | Thành công |
201 | Đã tạo — một tài khoản, lần nạp hoặc đơn hàng nay đã tồn tại |
401 | Thiếu hoặc sai cụm từ hạt giống trong tiêu đề Authorization |
422 | Yêu cầu hiểu được nhưng không thực hiện được |
500 | Có gì đó hỏng ở phía chúng tôi |
Các thông báo 422 thường gặp:
| Thông báo | Nguyên nhân |
|---|---|
insufficient_funds | Số dư thấp hơn giá — hãy tạo một lần nạp trước |
unknown service | Không có mã dịch vụ đó; xem «liệt kê dịch vụ» |
unknown country | Không có mã quốc gia đó; xem «liệt kê quốc gia» |
unknown coin | Không nhận đồng coin đó; xem endpoint nạp tiền |
amount_usd must be between… | Mỗi lần nạp giới hạn $25–$1000 |
Có giới hạn tần suất không?
Không có hạn mức công bố và cũng không có khóa API nào để bóp, nhưng gọi endpoint trong vòng lặp thì không miễn phí. Hai trong số đó là endpoint để hỏi theo chu kỳ và đáng được cẩn thận riêng.
| Endpoint | Nhịp hợp lý | Vì sao |
|---|---|---|
| Danh mục và báo giá | Hãy lưu đệm ở máy bạn | Giá ít khi đổi; không cần tải danh mục ở mỗi yêu cầu. |
/topups/{id} | Mỗi 10-15 giây | Mạng xác nhận mất vài phút chứ không phải vài mili giây. Hỏi dồn dập cũng không biết sớm hơn. |
/orders/{id}/sms | Mỗi 3-5 giây | Mã thường tới trong vài giây; vòng lặp sát hơn chỉ tăng tải. |
| Mua hàng | Khi cần | Mỗi lần mua trừ vào số dư thật, nên một vòng lặp mất kiểm soát tốn tiền của bạn trước khi tốn của chúng tôi. |
Lưu lượng trông như một cuộc tấn công sẽ bị chặn ngay ở rìa mạng, không kèm mã 429 lịch
sự nào. Nếu bạn có lý do chính đáng để hỏi dồn hơn, hãy nhắn trước qua
trang liên hệ.
Liệt kê dịch vụ
GET/api/v1/services
Mọi dịch vụ kèm mã, danh mục và giá thấp nhất. Không cần xác thực.
Yêu cầu
curl -s https://otpdrop.com/api/v1/services
Phản hồi
{
"services": [
{
"code": "binance",
"name": "Binance",
"category": "Finance",
"from_price_cents": 85,
"color": "#F0B90B",
"icon": "binance"
}
],
"count": 133
}
Liệt kê quốc gia
GET/api/v1/countries
Every country with its dial code and how many services are available there. No authentication required.
Yêu cầu
curl -s https://otpdrop.com/api/v1/countries
Phản hồi
{
"countries": [
{
"code": "us",
"name": "United States",
"dial_code": "+1",
"service_count": 133
}
],
"count": 197
}
Bảng giá
GET/api/v1/catalog
The most useful service and country combinations with their prices, cheapest first. No authentication required.
Tham số
| Tên | Kiểu | Mô tả | |
|---|---|---|---|
limit | integer | tùy chọn | How many rows to return, 1 to 500. Defaults to 12. |
Yêu cầu
curl -s 'https://otpdrop.com/api/v1/catalog?limit=2'
Phản hồi
{
"items": [
{
"service": "badoo",
"country": "us",
"price_cents": 35
}
],
"count": 2
}
Báo giá
GET/api/v1/quote
The exact price for one service and country before you commit to buying. No authentication required.
Tham số
| Tên | Kiểu | Mô tả | |
|---|---|---|---|
service | string | bắt buộc | Service code, e.g. telegram |
country | string | bắt buộc | Country code, e.g. us |
Yêu cầu
curl -s 'https://otpdrop.com/api/v1/quote?service=telegram&country=us'
Phản hồi
{
"service": "telegram",
"country": "us",
"price_cents": 111,
"price_usd": "1.11",
"currency": "USD",
"purchasable": true
}
Tạo tài khoản
POST/api/v1/accounts
Generates an account and returns its seed. This is the only time the seed is ever shown. No authentication required.
Yêu cầu
curl -s -X POST https://otpdrop.com/api/v1/accounts
Phản hồi
{
"public_id": "acc_7f3c1a92",
"seed": "PABh-ZbRt-9xKm-Lq4V",
"seed_prefix": "PABh",
"balance_cents": 0,
"warning": "This seed is shown exactly once, right now..."
}
Tạo lần nạp
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.
Tham số
| Tên | Kiểu | Mô tả | |
|---|---|---|---|
amount_usd | number | bắt buộc | How much to add to the balance, in USD. Minimum 25, maximum 1000. |
coin | string | bắt buộc | BTC, LTC, ETH, XMR, SOL, TRX, BNB, USDT, USDC and more |
Yêu cầu
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"}'
Phản hồi
{
"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
}
Trạng thái lần nạp
GET/api/v1/topups/{id}
Whether a deposit has been credited. Confirmation is not instant — poll this rather than assuming the funds arrived.
Tham số
| Tên | Kiểu | Mô tả | |
|---|---|---|---|
id | string | bắt buộc | The top-up id, in the path |
Yêu cầu
curl -s https://otpdrop.com/api/v1/topups/top_019195919c80fc8f \ -H 'Authorization: Bearer YOUR-SEED'
Phản hồi
{
"topup_id": "top_019195919c80fc8f",
"status": "credited",
"coin": "XMR",
"amount_usd": "25.00",
"coin_amount": "0.1337",
"credited_total_cents": 2500,
"expires_at": 1788532810
}
Mua một số
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.
Tham số
| Tên | Kiểu | Mô tả | |
|---|---|---|---|
service | string | bắt buộc | Service code, e.g. telegram |
country | string | bắt buộc | Country code, e.g. us |
Yêu cầu
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"}'
Phản hồi
{
"order_id": "ord_1ad450bf7a42519c",
"service": "telegram",
"country": "us",
"phone": "+15558329008",
"status": "paid",
"price_usd": "1.11"
}
Liệt kê đơn hàng của bạn
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.
Yêu cầu
curl -s https://otpdrop.com/api/v1/orders \ -H 'Authorization: Bearer YOUR-SEED'
Phản hồi
{
"orders": [
{
"order_id": "ord_1ad450bf7a42519c",
"service": "telegram",
"country": "us",
"phone": "+15558329008",
"status": "paid",
"price_usd": "1.11"
}
],
"count": 1
}
Lấy một đơn hàng
GET/api/v1/orders/{id}
The current state of one order: its number, status and price.
Tham số
| Tên | Kiểu | Mô tả | |
|---|---|---|---|
id | string | bắt buộc | The order id, in the path |
Yêu cầu
curl -s https://otpdrop.com/api/v1/orders/ord_1ad450bf7a42519c \ -H 'Authorization: Bearer YOUR-SEED'
Phản hồi
{
"order_id": "ord_1ad450bf7a42519c",
"service": "telegram",
"country": "us",
"phone": "+15558329008",
"status": "paid",
"price_usd": "1.11"
}
Lấy mã 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.
Tham số
| Tên | Kiểu | Mô tả | |
|---|---|---|---|
id | string | bắt buộc | The order id, in the path |
Yêu cầu
curl -s https://otpdrop.com/api/v1/orders/ord_1ad450bf7a42519c/sms \ -H 'Authorization: Bearer YOUR-SEED'
Phản hồi
{
"order_id": "ord_1ad450bf7a42519c",
"status": "paid",
"arrived": false,
"code": null
}
Một tích hợp hoàn chỉnh trông ra sao?
Từ tài khoản tới mã trong sáu lần gọi. Mọi thứ bên dưới đều thật: dán vào là chạy.
# 1. Tạo tài khoản và giữ cụm từ hạt giống
SEED=$(curl -s -X POST https://otpdrop.com/api/v1/accounts | jq -r .seed)
# 2. Nạp tiền — gửi coin_amount tới địa chỉ nhận được
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. Hỏi cho tới khi tiền nạp được ghi có
curl -s https://otpdrop.com/api/v1/topups/TOPUP_ID \
-H "Authorization: Bearer \$SEED" | jq .status
# 4. Xem giá trước khi quyết
curl -s 'https://otpdrop.com/api/v1/quote?service=telegram&country=us'
# 5. Mua — số dư bị trừ và số được cấp ngay
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. Hỏi cho tới khi có mã
until curl -s https://otpdrop.com/api/v1/orders/\$ORDER/sms \
-H "Authorization: Bearer \$SEED" | jq -e .code; do sleep 4; done
Vẫn trình tự đó trong Python, không cần shell:
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)
Máy chủ MCP
Vẫn những thao tác đó, có sẵn qua Model Context Protocol tại https://otpdrop.com/mcp, dưới dạng mười
một công cụ. Thêm vào Claude Code bằng:
claude mcp add --transport http otpdrop https://otpdrop.com/mcp
Cách thiết lập và danh sách công cụ đầy đủ nằm ở trang dành cho tác nhân.
Tệp khám phá
Các mô tả dịch vụ đọc được bằng máy, tất cả đều phục vụ mà không cần xác thực.
| Tệp | Nội dung |
|---|---|
/openapi.json | Toàn bộ lược đồ OpenAPI 3.1 |
/.well-known/agent.json | Khả năng, mô hình xác thực và quy tắc nghiệp vụ |
/llms.txt | Bản dẫn nhập ngắn cho mô hình ngôn ngữ |
/llms-full.txt | Vẫn vậy, kèm trọn danh mục bên trong |
Câu hỏi thường gặp
API của OTPDrop có cần khóa API không?
Không. Không có gì để xin cấp và không có bước phê duyệt. Thông tin xác thực chính là cụm từ hạt giống của tài khoản, gửi dưới dạng token bearer, còn các endpoint danh mục thì không cần gì cả.
API của OTPDrop tốn bao nhiêu?
Không tốn gì ngoài chính những số bạn mua. Không thuê bao, không phí theo lượt gọi, không mức tối thiểu — bạn trả đúng giá như người dùng trang web.
Những ngôn ngữ lập trình nào dùng được với API?
Bất kỳ ngôn ngữ nào gửi được một yêu cầu HTTPS. Đây là JSON thuần trên HTTP kèm một tiêu đề bearer, nên không có SDK phải cài và cũng chẳng có gì phải chạy theo các bản phát hành của chúng tôi.
Nếu mã SMS không bao giờ đến thì sao?
Đơn hàng tự hoàn về số dư khi hết hạn, và bạn có thể hủy sớm hơn qua trang web. Bạn bị tính tiền cho mã đã được giao, không phải cho một lần thử.
API REST có giống máy chủ MCP không?
Giống, và đó là chủ ý. Mỗi endpoint REST là bản dịch của một lần gọi công cụ MCP, nên hai bên không thể lệch nhau: sửa bên này là sửa luôn bên kia. Hãy chọn cái nào hợp với ứng dụng của bạn.
Thử API mà không tốn tiền được không?
Danh mục, báo giá và việc tạo tài khoản đều miễn phí, nên bạn có thể dựng và thử gần như trọn bộ tích hợp trước khi nạp số dư. Chỉ việc mua mới tốn tiền.