簡訊驗證 API

一個 HTTP 請求即可完成購買號碼、查詢驗證碼與取消。採用虛擬號碼業界廣泛使用的 handler_api 方式,在註冊程式與機器人中填入網址與金鑰即可直接串接。

取得 API 金鑰

登入後,在帳戶頁面的 API 選單中建立金鑰。金鑰只在建立時顯示一次,請立即保存。API 與網頁使用相同的餘額與價格。

基本網址

https://010sms.com/stubs/handler_api.php?api_key=API_KEY&action=...

主要請求

action服務內容回應範例
getBalance查看餘額ACCESS_BALANCE:12.50
getPrices&service=telegram&country=kr各服務價格與剩餘號碼{"kr":{"telegram":{"cost":3.2,"count":7922}}}
getNumber&service=telegram&country=kr購買號碼ACCESS_NUMBER:ID:PHONE
getStatus&id=ID查看驗證碼STATUS_WAIT_CODE / STATUS_OK:CODE
setStatus&id=ID&status=8取消號碼(收到驗證碼前,全額退款)ACCESS_CANCEL
setStatus&id=ID&status=3用同一號碼再收一次驗證碼ACCESS_RETRY_GET
setStatus&id=ID&status=6結束使用ACCESS_ACTIVATION

請求參數

名稱必填說明
api_key全部在帳戶頁面建立的 API 金鑰
action全部getBalance, getPrices, getNumber, getStatus, setStatus
servicegetNumber服務代碼(例:telegram、whatsapp、google)。與服務清單頁面網址相同
countrygetNumberkr(韓國 010 號碼,省略時預設為 kr)
idgetStatus, setStatusgetNumber 回傳的號碼 ID(以 N- 開頭)
statussetStatus8 取消,3 再收一次驗證碼,6 完成,1 就緒

回應文字與意思

回應意思金額
ACCESS_NUMBER:ID:PHONE已取得號碼扣除號碼費用
STATUS_WAIT_CODE正在等待驗證碼原樣
STATUS_OK:CODE驗證碼已送達付款完成
STATUS_WAIT_RETRY:CODE正在等待下一則驗證碼(含先前的驗證碼)無額外費用
STATUS_CANCEL已取消或已逾時未收到驗證碼則已退款
ACCESS_CANCEL已取消全額退款
ACCESS_RETRY_GET用同一號碼再等一次驗證碼無額外費用
ACCESS_ACTIVATION號碼已使用完畢原樣
NO_BALANCE儲值餘額即可立即接收不扣款
NO_NUMBERS目前無法提供該國家的號碼不扣款
NO_ACTIVATIONS進行中的號碼已達 20 個不扣款
EARLY_CANCEL_DENIED已收到驗證碼的號碼請用完成(6),而不是取消原樣
BAD_KEYAPI 金鑰不正確不扣款
BAD_SERVICE / BAD_COUNTRY服務或國家代碼不正確不扣款
NO_ACTIVATION找不到號碼 ID原樣
TOO_MANY_REQUESTS已超過每分鐘 300 次不扣款

各語言範例

import time, requests

BASE = "https://010sms.com/stubs/handler_api.php"
KEY = "API_KEY"

def call(**p):
    return requests.get(BASE, params={"api_key": KEY, **p}, timeout=30).text

r = call(action="getNumber", service="telegram", country="kr")
if not r.startswith("ACCESS_NUMBER"):
    raise SystemExit(r)
_, num_id, phone = r.split(":")
print("Number:", phone)

for _ in range(240):                      # 20 minutes
    s = call(action="getStatus", id=num_id)
    if s.startswith("STATUS_OK"):
        print("Code:", s.split(":")[1])
        call(action="setStatus", id=num_id, status=6)
        break
    time.sleep(5)

這樣使用

  • 用 getNumber 取得號碼,在註冊畫面填入號碼後,每隔 5 秒呼叫一次 getStatus。
  • STATUS_OK:收到驗證碼後輸入該驗證碼,再用 setStatus 6 完成。
  • 20 分鐘內未收到驗證碼,號碼費用自動退回餘額。
  • 每分鐘最多送出 300 次請求。
簡訊驗證 API | 010SMS