服務
什麼是 BulkSMSAPI?
一個為開發者設計的群發簡訊 API:通過 REST 發送單條訊息或每批次最多 10,000 個號碼到 227 個國家,每條訊息都有簽名的 Webhooks 追蹤,並從預付餘額中按訊息付費。網頁控制台可以從貼上的列表或 CSV 發送活動,無需編寫程式碼。
誰會使用群發簡訊 API?
從自己的系統發送簡訊的產品和工程團隊:登入和註冊碼、訂單和送貨更新、預約提醒、付款通知、服務公告和行銷活動。任何能夠發送 HTTPS 請求的人都可以使用它。
我可以發送到哪些國家?
227 個國家和地區,價格列在定價頁面和國家頁面上。一個請求可以混合多個國家:每個號碼的價格由其所在的國家決定。
是否有月費或合約?
沒有。您從預付餘額中按訊息分段付費,沒有月費、設置費或最低用量限制。餘額沒有到期日。
是否有免費試用?
帳戶從零餘額開始,首次充值後即可使用所有功能。首次充值會增加最高 40% 的獎勵,因此第一條訊息的成本更低。價格是公開的,估算端點和控制台會在發送前顯示確切的成本。
帳戶和 API 金鑰
如何創建帳戶?
打開獲取 API 金鑰頁面。您的瀏覽器會生成一個以 acct_ 開頭的帳戶金鑰;複製它或將其保存為文字檔,確認已保存後,帳戶即準備就緒。帳戶金鑰是唯一的登入方式:沒有電子郵件或密碼需要管理。
如果我丟失了帳戶金鑰會發生什麼?
我們只儲存它的鍵控哈希值,因此包括我們的支援團隊在內,沒有人能再次顯示它。請將其保存在密碼管理器中。當您仍然登入時,控制台會繼續運作,您可以從中聯繫支援團隊。
如何取得 API 金鑰?
在控制台的 API 金鑰頁面,首次充值到帳後即可建立。為金鑰命名、建立並複製一次:金鑰以 bsa_live_ 開頭。每個帳戶可持有 10 個有效金鑰,每個金鑰都有自己的名稱和速率限制計數器。
我可以在正式環境和測試環境使用不同的金鑰嗎?
可以。為每個應用程式或環境建立一個金鑰並為其命名。每個金鑰都會顯示最後使用時間,撤銷一個金鑰不會影響其他金鑰的正常運作。
我可以建立多少個帳戶?
每個網路位址最多可建立 3 個帳戶。大多數團隊只需要一個帳戶並使用多個 API 金鑰。
傳送訊息
一個請求可以包含多少個號碼?
POST /v1/batches 每個請求最多可包含 10,000 個號碼,可以是所有人收到相同訊息,或每個號碼收到個人化訊息。控制台每個活動可包含 50,000 個號碼。更大的清單會被拆分為多個請求。
訊息傳送速度有多快?
佇列每兩秒執行一次,並按照接收順序將每個帳戶每分鐘最多 1,200 條訊息傳遞給網路。單一訊息通常在請求後的幾秒內發出。
電話號碼應使用什麼格式?
國際 E.164 格式:加號、國家代碼和國內號碼,例如 +14155550123。空格、破折號、括號和 00 前綴會自動清除;重複號碼和無法讀取的號碼會被排除且不收取費用。
訊息長度可以有多長?
最多 10 個分段:GSM-7 編碼下 1,530 個字元,Unicode 編碼下 670 個字元。一個分段可容納 160 個 GSM-7 字元或 70 個 Unicode 字元;較長的文字會被拆分為 153 或 67 個字元的部分,並在手機上重新組合。
為什麼我的訊息使用了比預期更多的分段?
一個 GSM-7 字母表以外的字元,例如花引號、表情符號或 á、ç 等字母,會將整段文字切換為 Unicode 編碼,每分段 70 個字元。控制台的訊息編輯器會標示這些字元,POST /v1/estimates 會在傳送前回傳編碼資訊。
我可以排程傳送訊息嗎?
可以。在 API 請求中加入 send_at,或在控制台選擇時間,從 2 分鐘後到 45 天內。排程批次在開始前可取消,且其全額費用會退還至餘額。
每個收件者可以收到不同的訊息嗎?
可以。透過 API 傳送批次訊息,每個收件者一個 {to, text}。在控制台中,貼上或上傳帶有額外欄位的清單,並在訊息中使用合併欄位 {{1}} 到 {{9}}。
我的訊息中會加入拒收聲明嗎?
在設定中設定一次拒收聲明,例如連結或電子郵件地址,勾選後控制台會將其加入活動訊息中。透過 API 時,您可控制完整訊息內容,因此請自行在行銷訊息中加入拒收聲明。控制台和 API 會跳過您的拒發名單中的號碼,且不收取費用。
我可以先傳送測試訊息嗎?
可以。控制台在活動前可傳送測試訊息至一個號碼,透過 API 您可以使用 POST /v1/messages 傳送單一訊息至自己的手機。
價格與付款
一條簡訊的費用是多少?
費用取決於號碼的國家:每個國家每個分段有一個美元價格,從 $0.00247(巴西)起。定價頁面和 GET /v1/pricing 列出了每個國家的價格。
如何計算批次的費用?
對於每個收件者:其國家每個分段的價格乘以其訊息的段數。總和在請求被接受時從餘額中扣除,並在回應中以 cost 顯示。
最低充值金額是多少?
$40。充值金額可從 $40 到 $5,000。首次充值可獲得最高 40% 的獎勵,支付前會顯示每筆金額的獎勵。
如何付款?
在控制台中,Billing 會在頁面上方開啟一個託管的結帳視窗。您選擇金額並以加密貨幣支付,支付頁面會顯示確切的金額和地址。支付頁面列出了每個步驟。
失敗的訊息會退款嗎?
是的。當訊息失敗時,其費用會自動退回餘額,並在帳本中顯示為退款項目。已取消的預定批次會全額退款。
我可以提領餘額嗎?
餘額用於支付訊息費用,並永久保留在您的帳戶中。失敗或取消的訊息退款也會退回餘額。
價格會變動嗎?
當網路成本變動時,價格可能會調整。目前的價格清單會標示日期,API 會返回每個價格的日期,已接受的訊息會保留其收取的價格。
送達與報告
如何知道訊息已送達?
每則訊息會從排隊、發送,再到送達或失敗。在控制台中添加 webhook URL 以獲取每個最終狀態的簽名事件,或讀取 GET /v1/messages/{id} 和 GET /v1/batches/{id}。
webhooks 如何簽名?
採用 Standard Webhooks 格式:標頭為 webhook-id、webhook-timestamp 和 webhook-signature,其中簽名是使用您的 whsec_ 密鑰對 id、timestamp 和原始內容進行 HMAC-SHA256 運算。文件中有 Node.js、Python、PHP 和 Go 的驗證程式碼。
如果我的 webhook 端點無法使用怎麼辦?
每個事件會在大約 24 小時內嘗試 10 次,每次嘗試都會在控制台中列出其 HTTP 狀態。您也可以隨時輪詢訊息端點。
訊息為何會失敗?
手機可能關機太久、號碼可能已停用,或網路可能拒絕該訊息。失敗狀態會帶有錯誤碼,且費用會退款。
訊息記錄會保留多久?
批次、訊息和餘額帳本會保留在您的帳戶和 API 中。請求記錄會保留您最近的 500 次 API 呼叫,webhook 記錄會保留您最近的 500 次送達。
開發者專區
有 SDK 嗎?
API 是透過 HTTPS 傳輸的純 JSON,因此任何語言的標準函式庫都足夠。文件中有完整的 curl、Node.js、Python、PHP 和 Go 範例,且 /openapi.json 的 OpenAPI 規格可在大多數語言中生成類型化客戶端。
速率限制是多少?
每個 API 金鑰每分鐘 600 次請求。每個回應都帶有 X-RateLimit-Limit、X-RateLimit-Remaining 和 X-RateLimit-Reset 標頭,429 回應會帶有 Retry-After。
超時後如何安全地重試?
發送 POST 請求時帶上 Idempotency-Key 標頭,並使用相同的金鑰重試。在 24 小時內,相同的金鑰和內容會返回第一個答案,而不是再次發送。
我可以在沒有 API 金鑰的情況下檢查價格嗎?
可以。GET /v1/pricing 和 GET /v1/pricing/{country} 是公開的,因此結帳頁面或儀表板可以顯示即時價格。
如何查看程式碼發送的內容?
控制台會記錄您最近500次API呼叫的方法、路徑、狀態和時間,並顯示批次、訊息及webhook紀錄。
控制台
可以不寫程式碼就發送嗎?
可以。在控制台中貼上號碼或上傳最多50,000行的CSV檔案,使用合併欄位撰寫內容,預覽每位收件者的訊息及國家費用,立即發送或設定排程。
控制台顯示哪些資訊?
餘額、即時更新的近期批次統計、各批次的訊息與狀態、儲值紀錄、API金鑰、webhook設定與傳送狀態、請求日誌、價目表、支援票券及設定。
如何聯繫客服?
透過控制台的支援頁面。付款問題首日即可提出,其他主題需在首次儲值後開放。