優惠儲值贈送:儲值 $50 以上,最高加贈 +20% 免費餘額。建立帳號 →
推薦賺回饋邀請朋友,即可獲得他們每一筆儲值的 5%,直接撥入你的餘額。註冊取得你的推薦連結 →

簡訊驗證 API

三個呼叫就涵蓋整個流程:訂購號碼、輪詢直到驗證碼送達、沒收到就釋出號碼。Bearer token、JSON 輸入與輸出,而且後台能做的每一項操作,都能透過同一套 API 完成。

最低
$0.01每組驗證碼
服務
744

按每次驗證付費。取消沒有收到任何簡訊的訂單,費用就會退回。

以 API 呼叫表示的流程

  1. GET /api/v2/tn101/get-services:服務目錄,包含下單時要用的識別碼以及目前價格。
  2. POST /api/v2/tn101/request-number:訂購一個號碼。接受 service_key,以及選填的 state 和區碼。回應訂單 ID、號碼和到期時間。
  3. GET /api/v2/tn101/get-number-details:用 order_id 輪詢。驗證碼送達前 pin 為 null,送達後就會包含驗證碼。這是 API 中成本最低的讀取操作,也是專為迴圈呼叫而設計的端點。
  4. POST /api/v2/tn101/reject-number:釋出一個沒有收到任何東西的號碼。費用也是透過這個呼叫退回。

這條路徑不會主動推送任何東西給你,所以第 3 步是輪詢。如果你寧願被通知而不是主動詢問,帳號也會在訂單事件發生時發送 webhook,可在後台設定。

身分驗證

每個請求都要帶上 Authorization: Bearer <token>。Token 在後台的 API 存取設定中產生,並可隨時在那裡更換。更換會立即讓舊 token 失效,所以請先更新你的設定。

沒有有效 token 的請求會收到 401。帳號被停權或關閉了 API 存取,會收到 403。當 API 在全站停用時,每個端點都會回應 503,而不是假裝一切正常。

回應格式

每個端點都以相同的三個欄位回應:

data 帶有資料內容,success 是用來判斷分支的布林值,summery 則是人類可讀的訊息。這個拼法不是本頁的筆誤:它是 API 一直以來使用的欄位名稱,存在於所有針對它撰寫的整合中,為了修正一個字母而改名會讓這些整合全部壞掉。請讀取 summery。

驗證失敗會回應 422,data 是一個欄位名稱對應錯誤訊息的物件,讓呼叫端能回報是哪個參數有誤,而不只是知道有東西錯了。

測試驗證流程

這套 API 是以真實電信路徑(而不是模擬環境)來測試註冊或密碼重設流程的實用方式:訂購號碼、用它操作你自己的表單、輪詢驗證碼,再驗證你的應用程式接下來的行為。它比 stub 慢,但能抓到 stub 抓不到的問題:號碼格式正規化、線路類型過濾,以及你的使用者實際會遇到的送達延遲。

限制

API 沒有每秒請求數的限制,但下單有兩項配額,和後台套用的配額相同:

  • 未結訂單。 一個帳號同時能保留的號碼數量有限。請輪詢並釋出,而不是同時大量開單。
  • 每日取消與到期的訂單數。 超過每日額度,下單功能會暫停一段時間,重複超過時暫停時間會延長。無論驗證碼是否送達,每次保留都會消耗真實的號碼資源,而這正是配額要保護的。

兩者在臨時號碼中有更詳細的說明,那裡解釋了一筆訂單如何進行。

常見問題

如何取得 token?
建立帳號後,在後台的 API 存取設定中產生。完整的 token 會顯示在那裡,需要時可隨時更換。
呼叫 API 要收費嗎?
請求是免費的,號碼則不是。當 `request-number` 核發號碼時才會收費,價格和在後台下單的每次驗證價格相同。
有沙盒環境嗎?
沒有獨立的沙盒。只有一個環境,訂購的號碼就是真實的號碼,也會產生真實的費用,而這也正是值得用它來測試的原因。
應該如何輪詢驗證碼?
`get-number-details` 是一次有索引的查詢,不會呼叫上游,所以每次輪詢間隔幾秒是合理的。當 `pin` 有值或訂單超過到期時間時就停止,並釋出所有沒收到東西的號碼。
可以用通知取代輪詢嗎?
可以。Webhook 按帳號在後台設定,會在訂單事件發生時觸發,讓長時間執行的整合不必一直在迴圈中等待。

相關頁面

準備好接收驗證碼了嗎?

註冊只要一分鐘,而且只需為成功送達的號碼付費。

免費建立帳號