開發者 API

大規模自動化驗證

SNSPhone API 讓您的工具能夠訂購美國非VoIP號碼、讀取SMS驗證碼並管理租用。兩種格式:帶有JSON的REST API,以及適用於現有腳本的常見SMS激活格式。

快速開始

基礎URL https://snsphone.com/api/v1。在控制台的API頁面建立金鑰並將其作為Authorization: Bearer spk_...發送(或金鑰欄位)。所有號碼均為美國非VoIP。金額為帶有2位小數的USD字串,時間為ISO 8601 UTC,每個金鑰每分鐘300次請求。價格截至2026-11-03。

Python

import os, time, requests

API = "https://snsphone.com/api/v1"
H = {"Authorization": f"Bearer {os.environ['SNSPHONE_KEY']}"}

order = requests.post(f"{API}/orders", headers=H, data={"service": "google"}).json()["order"]
print("Use this US 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://snsphone.com/api/v1";
const H = { Authorization: `Bearer ${process.env.SNSPHONE_KEY}` };

const { order } = await fetch(`${API}/orders`, {
  method: "POST", headers: H, body: new URLSearchParams({ service: "discord" }),
}).then((r) => r.json());
console.log("Use this US 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);

目錄

GET/services

每個服務代碼及其名稱、類別、驗證價格和租用期限。無需金鑰。

公開,無需金鑰。

curl "https://snsphone.com/api/v1/services"
{"country":"us","services":[{"code":"whatsapp","name":"WhatsApp","category":"Messaging","verification":"0.90","rentals":[]},{"code":"telegram","name":"Telegram","verification":"0.45","rentals":[{"days":365,"period":"1 year","price":"37.44"}]}]}

GET/prices?service=telegram

以USD計價,可選用於單一服務。無需金鑰。

公開,無需金鑰。

curl "https://snsphone.com/api/v1/prices?service=telegram"
{"country":"us","prices":[{"service":"telegram","type":"verification","days":null,"price":"0.45"},{"service":"telegram","type":"rental","days":365,"price":"37.44"}]}

GET/balance

您的餘額以USD顯示。

需要您的API金鑰。

curl "https://snsphone.com/api/v1/balance" \
  -H "Authorization: Bearer $KEY"
{"balance":"25.00","currency":"USD"}

驗證服務

POST/orders

購買驗證(201)。返回美國號碼和20分鐘窗口結束的時間。

需要您的API金鑰。

curl -X POST "https://snsphone.com/api/v1/orders" \
  -H "Authorization: Bearer $KEY" \
  -d "service=whatsapp"
{"order":{"id":"VR-7K2M9QX4PB","service":"whatsapp","country":"us","phone":"+14155550142","number":"4155550142","status":"waiting","code":null,"expires_at":"2026-11-03T12:20:00.000Z"},"window_minutes":20}

GET/orders/VR-7K2M9QX4PB

一次驗證及其狀態和收到的所有驗證碼。狀態:等待、已收到、已完成、已退款、已取消。

需要您的API金鑰。

curl "https://snsphone.com/api/v1/orders/VR-7K2M9QX4PB" \
  -H "Authorization: Bearer $KEY"
{"order":{"id":"VR-7K2M9QX4PB","status":"received","code":"482913","sms":"Your WhatsApp code is 482913"}}

GET/orders?status=open

您的開放驗證(status=all 為最近100筆)。

需要您的API金鑰。

curl "https://snsphone.com/api/v1/orders?status=open" \
  -H "Authorization: Bearer $KEY"
{"orders":[...]}

POST/orders/VR-7K2M9QX4PB/resend

在收到第一個驗證碼後且窗口仍開放時,請求同一號碼的另一個驗證碼。無額外費用。

需要您的API金鑰。

curl -X POST "https://snsphone.com/api/v1/orders/VR-7K2M9QX4PB/resend" \
  -H "Authorization: Bearer $KEY"
{"order":{"status":"received","waiting_for_resend":true}}

POST/orders/VR-7K2M9QX4PB/finish

關閉已收到驗證碼的驗證。

需要您的API金鑰。

curl -X POST "https://snsphone.com/api/v1/orders/VR-7K2M9QX4PB/finish" \
  -H "Authorization: Bearer $KEY"
{"order":{"status":"finished"}}

POST/orders/VR-7K2M9QX4PB/cancel

在驗證碼到達前取消。全額退回您的餘額。

需要您的API金鑰。

curl -X POST "https://snsphone.com/api/v1/orders/VR-7K2M9QX4PB/cancel" \
  -H "Authorization: Bearer $KEY"
{"order":{"status":"canceled","refunded":"0.90"}}

號碼租用

POST/rentals

為一個服務和期限租用美國號碼(201)。當服務只有一個期限時,days 為可選。

需要您的API金鑰。

curl -X POST "https://snsphone.com/api/v1/rentals" \
  -H "Authorization: Bearer $KEY" \
  -d "service=telegram&days=365"
{"rental":{"id":"RN-4J8T2W6QHM","service":"telegram","phone":"+13125550198","days":365,"period":"1 year","price":"37.44","status":"active","ends_at":"2027-11-03T12:00:00.000Z","messages":[]}}

GET/rentals?status=active

您的有效租用及其最新訊息(status=all 為最近100筆)。

需要您的API金鑰。

curl "https://snsphone.com/api/v1/rentals?status=active" \
  -H "Authorization: Bearer $KEY"
{"rentals":[...]}

GET/rentals/RN-4J8T2W6QHM

一次租用及其收到的所有SMS。

需要您的API金鑰。

curl "https://snsphone.com/api/v1/rentals/RN-4J8T2W6QHM" \
  -H "Authorization: Bearer $KEY"
{"rental":{"id":"RN-4J8T2W6QHM","status":"active","messages":[{"from":"Telegram","sms":"Telegram code: 57291","code":"57291","received_at":"2026-11-03T12:01:12.000Z"}]}}

POST/rentals/RN-4J8T2W6QHM/renew

以相同價格增加一個期限。

需要您的API金鑰。

curl -X POST "https://snsphone.com/api/v1/rentals/RN-4J8T2W6QHM/renew" \
  -H "Authorization: Bearer $KEY"
{"rental":{"renewed":1,"ends_at":"2028-11-02T12:00:00.000Z"}}

POST/rentals/RN-4J8T2W6QHM/cancel

在收到任何SMS前的20分鐘內取消。所有已付款項退回您的餘額。

需要您的API金鑰。

curl -X POST "https://snsphone.com/api/v1/rentals/RN-4J8T2W6QHM/cancel" \
  -H "Authorization: Bearer $KEY"
{"rental":{"status":"canceled","refunded":"37.44"}}

簡訊激活格式

適用於已支持常見激活格式的工具。一個URL,一個action欄位,純文字回答。僅限驗證。

https://snsphone.com/stubs/handler_api.php?api_key=KEY&action=ACTION
動作額外欄位回答意義
getBalance無ACCESS_BALANCE:12.50您的餘額以USD顯示。
getServicesList無{"status":"success","services":[{"code":"whatsapp","name":"WhatsApp"}]}帶有驗證價格的服務代碼(JSON)。
getCountries無{"us":{"name":"United States","dial":"1"}}僅限美國。country 可以是 us、187 或留空。
getPrices&service=whatsapp{"us":{"whatsapp":{"cost":0.9,"count":100}}}以USD計價。服務過濾器為可選。
getNumber&service=whatsapp&country=usACCESS_NUMBER:VR-7K2M9QX4PB:14155550142購買驗證。返回id和帶有1開頭的號碼。
getStatus&id=VR-7K2M9QX4PBSTATUS_OK:482913STATUS_WAIT_CODE, STATUS_OK:<code>, STATUS_WAIT_RETRY:<last code>(請求另一個驗證碼), STATUS_CANCEL(已取消或已退款)。
setStatus&id=VR-7K2M9QX4PB&status=3ACCESS_RETRY_GETstatus=1 準備就緒(ACCESS_READY), 3 請求另一個驗證碼(ACCESS_RETRY_GET), 6 完成(ACCESS_ACTIVATION), 8 在未收到驗證碼時取消並全額退款(ACCESS_CANCEL)。

錯誤

REST 錯誤以{"error":{"code","message"}}形式返回,並帶有這些狀態碼。激活格式以純文字回答。

400缺少或錯誤的欄位 (bad_json, bad_period)。
401無 API 金鑰或金鑰錯誤 (no_key, bad_key)。
402餘額不足 (no_balance)。
404未知的服務、訂單、租用號碼或端點,或該服務未提供的產品 (not_sold)。
409目前無法執行 (has_code, has_sms, too_late, not_ready, too_many_open, too_many_active, no_numbers)。
429每分鐘超過 300 次請求 (rate_limited)。
BAD_KEY缺少或錯誤的 API 金鑰。
BAD_ACTION未知的操作。
BAD_SERVICE未知的服務代碼。
BAD_COUNTRY非美國地區,或該服務僅提供租用號碼。
NO_BALANCE餘額不足。
NO_NUMBERS目前無可用號碼,請稍後再試。
NO_ACTIVATION未知的 ID 或非您的訂單。
EARLY_CANCEL_DENIED驗證碼已送達,無法取消。
NO_ACTIVATIONS已有 20 個驗碼服務進行中。
TOO_MANY_REQUESTS每分鐘超過 300 次請求。

API 常見問題

金鑰、限制與輪詢機制解答。

SNSPhone 是否提供簡訊驗證 API?

是的。提供 REST API 以 JSON 格式於 /api/v1 路徑管理服務、價格、驗證與租用號碼,並支援常見簡訊激活格式於 /stubs/handler_api.php。

如何驗證 API 請求?

在控制台的 API 頁面建立金鑰,並以 Authorization: Bearer spk_... 或 key 欄位傳送。金鑰僅儲存雜湊值且僅顯示一次。

API 的速率限制為何?

每個金鑰每分鐘 300 次請求,每個帳戶最多 20 個進行中驗證與 20 個有效租用號碼。

API 訂單費用是否高於網站訂單?

否。API 使用與控制台相同的價格及退款規則。

如何得知驗證碼已送達?

每隔幾秒輪詢 GET /orders/{id}。狀態將從 waiting 變為 received,且 code 欄位會包含驗證碼數字。

非 VoIP 簡訊驗證 API:透過 REST 取得美國門號 | SNSPhone