基礎網址 https://snsverify.com/api/v1
本頁所有路徑皆以此為基準。金額以美元計,為帶兩位小數的字串,時間為UTC(ISO 8601格式)。
兩種格式,一個帳戶
本頁面描述了使用 JSON 的 REST API。如果您的工具已經支援常見的簡訊驗證格式(handler_api.php 帶有 action= 參數),請使用簡訊驗證 API。兩者共享您的 API 密鑰、價格、未完成的驗證和退款。
概覽
簡訊驗證API讓您的軟體能直接購買應用程式所需的電話號碼,等待驗證簡訊並讀取驗證碼,無需開啟網站。每筆訂單即為一次驗證:一項服務、一個國家、一組號碼及20分鐘的有效期。未收到驗證碼的訂單將於有效期結束時全額退款。
讀取使用GET請求,操作使用POST請求。POST內容可為表單欄位或JSON。成功回應為JSON物件;錯誤回應格式統一: {"error":{"code":"...","message":"..."}}.
身份驗證
請於控制台的API金鑰頁面建立金鑰。金鑰僅顯示一次;我們僅保存加密副本。請透過Authorization標頭以Bearer權杖形式傳送。無法設定標頭的工具亦可使用key參數傳遞。
Authorization: Bearer vfk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
建立新金鑰將立即替換舊金鑰。服務、國家及價格端點無需金鑰即可查詢。
錯誤代碼
| HTTP狀態碼 | 含義 |
|---|---|
| 400 | 缺少或錯誤的欄位(missing_filter、bad_json)。 |
| 401 | 未提供金鑰或金鑰錯誤(no_key、bad_key)。 |
| 402 | 餘額不足(no_balance)。 |
| 404 | 未知的服務、國家、訂單或端點。 |
| 409 | 訂單當前無法執行該操作(has_code、not_ready、too_many_open、no_numbers)。 |
| 429 | 每分鐘超過300次請求(rate_limited)。 |
快速開始
使用curl訂購英國WhatsApp號碼,然後每隔幾秒查詢訂單狀態直至取得驗證碼。
curl -X POST https://snsverify.com/api/v1/orders \ -H "Authorization: Bearer $SNSVERIFY_KEY" \ -d service=whatsapp -d country=gb
Python
import os, time, requests
API = "https://snsverify.com/api/v1"
H = {"Authorization": f"Bearer {os.environ['SNSVERIFY_KEY']}"}
order = requests.post(f"{API}/orders", headers=H,
data={"service": "whatsapp", "country": "gb"}).json()["order"]
print("Use this number:", order["phone"])
while True:
o = requests.get(f"{API}/orders/{order['id']}", headers=H).json()["order"]
if o["code"] or o["status"] in ("refunded", "canceled"):
break
time.sleep(4)
print("Code:", o["code"])Node.js
const API = "https://snsverify.com/api/v1";
const H = { Authorization: `Bearer ${process.env.SNSVERIFY_KEY}` };
const { order } = await fetch(`${API}/orders`, {
method: "POST", headers: H,
body: new URLSearchParams({ service: "telegram", country: "nl" }),
}).then((r) => r.json());
console.log("Use this number:", order.phone);
let o = order;
while (!o.code && !["refunded", "canceled"].includes(o.status)) {
await new Promise((r) => setTimeout(r, 4000));
({ order: o } = await fetch(`${API}/orders/${order.id}`, { headers: H }).then((r) => r.json()));
}
console.log("Code:", o.code);速率限制
每個金鑰每分鐘限300次請求,每個帳戶最多20筆未完成訂單。每3至5秒查詢一次訂單狀態已足夠:多數驗證碼於一分鐘內送達。
訂單狀態
waiting號碼已啟用,尚未收到驗證碼。received已收到至少一組驗證碼;在有效期內可透過resend要求再次發送。finished收到驗證碼後由您手動關閉,或於有效期結束時自動關閉。refunded有效期結束未收到驗證碼;全額款項已退回帳戶餘額。canceled您在收到驗證碼前取消;全額款項已退回帳戶餘額。
端點
GET/services
列出所有服務代碼及其名稱、類別與最低價格。無需金鑰。
{"services":[{"code":"whatsapp","name":"WhatsApp","category":"social","from":"0.31"}]}GET/countries
列出所有國家代碼(ISO小寫格式)及其名稱與國際冠碼。無需金鑰。
{"countries":[{"code":"gb","name":"United Kingdom","dial_code":"44"}]}GET/prices?service=whatsapp&country=gb
以美元計價。可依服務、國家或兩者篩選。無需金鑰。
{"prices":[{"service":"whatsapp","country":"gb","price":"0.94"}]}GET/balance
您的帳戶餘額(美元)。
{"balance":"25.00","currency":"USD"}POST/orders
購買一組號碼(HTTP 201)。回傳包含電話號碼及有效期截止時間的訂單資訊。
請求內容: service=whatsapp&country=gb
{"order":{"id":"AC-7K2M9QX4PB","service":"whatsapp","country":"gb","phone":"+447700900123","price":"0.94","status":"waiting","code":null,"expires_at":"2026-11-04T12:20:00.000Z"},"window_minutes":20}GET/orders/AC-7K2M9QX4PB
單筆訂單狀態及其所有已收驗證碼。狀態包含:waiting、received、finished、refunded、canceled。
{"order":{"id":"AC-7K2M9QX4PB","status":"received","code":"482915","sms":"Your WhatsApp code: 482-915"}}GET/orders?status=open
您的未完成訂單;status=all可查詢最近100筆。
{"orders":[{"id":"AC-7K2M9QX4PB","status":"waiting"}]}POST/orders/AC-7K2M9QX4PB/resend
於收到首組驗證碼後,在有效期內要求對同號碼再次發送驗證碼。不額外收費。
{"order":{"status":"received","waiting_for_resend":true}}POST/orders/AC-7K2M9QX4PB/finish
關閉已收到驗證碼的訂單。
{"order":{"status":"finished"}}POST/orders/AC-7K2M9QX4PB/cancel
於驗證碼送達前取消。全額款項退回帳戶餘額。
{"order":{"status":"canceled","refunded":"0.94"}}