单条短信
POST /v1/messages 向一个号码发送一条短信,并立即返回消息ID。登录验证码、密码重置和支付提醒会在你的代码调用时立即发出。
发送短信构建模块
POST /v1/messages 向一个号码发送一条短信,并立即返回消息ID。登录验证码、密码重置和支付提醒会在你的代码调用时立即发出。
发送短信POST /v1/batches 在一次请求中最多可处理10,000个号码,可以发送相同的短信给所有人,或为每个号码发送个性化短信。重复和无效号码会被排除并列出在响应中。
发送批量短信每条成功或失败的短信都会通过签名的JSON事件调用你的端点。每个事件会在约24小时内尝试10次,因此部署不会导致你丢失状态。
设置WebhookGET /v1/pricing 返回每个国家每条短信分段的价格,无需API密钥。你可以在自己的产品中展示成本,或在大量发送前检查路由。
通过API读取价格在任何请求中添加send_at字段,批量短信会等待到指定时间发送,时间范围从2分钟后到45天内。如果在开始前取消,全额费用将退回余额。
定时发送批量短信粘贴或上传号码列表,编写短信内容,预览每个接收者的短信内容并无需代码即可发送。来自API的每个批量短信都会显示在同一个控制台中,并实时更新计数。
查看控制台系统中的每个事件对应一条短信,发送给一个人,几秒内完成。
一条短信,或为每个人发送一条短信,通过一次请求发送给数千人。
通过 POST /v1/messages 从您的认证服务发送一次性验证码,并在用户请求新验证码之前读取送达事件。
当包裹离开仓库时,您的订单系统会调用 API,并在一条简短消息中包含时间窗口和追踪码。
夜间任务会生成明天的列表,并在前一天晚上发送包含每位患者或客户个性化消息的批次。
卡片支付、转账和新设备登录会立即触发短信,按分段计费并记录其状态。
从控制台发送 50,000 条号码,或从 CRM 发送 10,000 条批次的短信,每条短信均添加退订链接。
当服务、航班或配送路线发生变化时,立即通知所有受影响的客户,并在问题解决后进行跟进。
curl https://bulksmsapi.cc/v1/batches \
-H "Authorization: Bearer $BULKSMSAPI_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: spring-sale-0412" \
-d '{
"name": "Spring sale",
"text": "Spring sale at Northwind: 20% off until Sunday. Opt out: northwind.example/sms",
"to": [
"+14155550123",
"+447400123456",
"+4915123456789"
]
}'const res = await fetch("https://bulksmsapi.cc/v1/batches", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.BULKSMSAPI_KEY}`,
"Content-Type": "application/json",
"Idempotency-Key": "spring-sale-0412",
},
body: JSON.stringify({
name: "Spring sale",
text: "Spring sale at Northwind: 20% off until Sunday. Opt out: northwind.example/sms",
to: ["+14155550123", "+447400123456", "+4915123456789"],
}),
});
const batch = await res.json();
console.log(res.status, batch.id, batch.recipients, batch.cost);import json, os, urllib.request
req = urllib.request.Request(
"https://bulksmsapi.cc/v1/batches",
data=json.dumps({
"name": "Spring sale",
"text": "Spring sale at Northwind: 20% off until Sunday. Opt out: northwind.example/sms",
"to": ["+14155550123", "+447400123456", "+4915123456789"],
}).encode(),
headers={
"Authorization": "Bearer " + os.environ["BULKSMSAPI_KEY"],
"Content-Type": "application/json",
"Idempotency-Key": "spring-sale-0412",
"User-Agent": "northwind-app/1.0",
},
method="POST",
)
with urllib.request.urlopen(req) as res:
batch = json.load(res)
print(res.status, batch["id"], batch["recipients"], batch["cost"])<?php
$ch = curl_init("https://bulksmsapi.cc/v1/batches");
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
"Authorization: Bearer " . getenv("BULKSMSAPI_KEY"),
"Content-Type: application/json",
"Idempotency-Key: spring-sale-0412",
],
CURLOPT_POSTFIELDS => json_encode([
"name" => "Spring sale",
"text" => "Spring sale at Northwind: 20% off until Sunday. Opt out: northwind.example/sms",
"to" => ["+14155550123", "+447400123456", "+4915123456789"],
]),
]);
$batch = json_decode(curl_exec($ch), true);
echo $batch["id"], " ", $batch["recipients"], " ", $batch["cost"], "\n";package main
import (
"bytes"
"encoding/json"
"fmt"
"net/http"
"os"
)
func main() {
body, _ := json.Marshal(map[string]any{
"name": "Spring sale",
"text": "Spring sale at Northwind: 20% off until Sunday. Opt out: northwind.example/sms",
"to": []string{"+14155550123", "+447400123456", "+4915123456789"},
})
req, _ := http.NewRequest("POST", "https://bulksmsapi.cc/v1/batches", bytes.NewReader(body))
req.Header.Set("Authorization", "Bearer "+os.Getenv("BULKSMSAPI_KEY"))
req.Header.Set("Content-Type", "application/json")
req.Header.Set("Idempotency-Key", "spring-sale-0412")
res, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer res.Body.Close()
var batch map[string]any
json.NewDecoder(res.Body).Decode(&batch)
fmt.Println(res.StatusCode, batch["id"], batch["recipients"], batch["cost"])
}资费
GET /v1/pricing 读取,因此您的产品可以显示相同的价格。227个国家中的227个
| 国家 | 呼叫代码 | 每条短信 |
|---|---|---|
| $0.01357 | ||
| $0.02267 | ||
| $0.03117 | ||
| $0.01417 | ||
| $0.00447 | ||
| $0.01387 | ||
| $0.01277 | ||
| $0.05557 | ||
| $0.03687 | ||
| $0.06157 | ||
| $0.01417 | ||
| $0.00727 | ||
| $0.00987 | ||
| $0.00987 | ||
| $0.01297 | ||
| $0.01327 | ||
| $0.00707 | ||
| $0.00507 | ||
| $0.01067 | ||
| $0.01277 | ||
| $0.03997 | ||
| $0.01017 | ||
| $0.04197 | ||
| $0.00417 | ||
| $0.04257 | ||
| $0.00907 | ||
| $0.01037 | ||
| $0.00247 | ||
| $0.03827 | ||
| $0.01447 | ||
| $0.02547 | ||
| $0.00707 | ||
| $0.01187 | ||
| $0.01867 | ||
| $0.01467 | ||
| $0.00847 | ||
| $0.00507 | ||
| $0.01387 | ||
| $0.02067 | ||
| $0.01557 | ||
| $0.00907 | ||
| $0.02807 | ||
| $0.01247 | ||
| $0.01037 | ||
| $0.05677 | ||
| $0.01277 | ||
| $0.00987 | ||
| $0.01447 | ||
| $0.01217 | ||
| $0.00617 | ||
| $0.01157 | ||
| $0.01607 | ||
| $0.09657 | ||
| $0.02377 | ||
| $0.01667 | ||
| $0.01247 | ||
| $0.00677 | ||
| $0.01847 | ||
| $0.00987 | ||
| $0.00987 | ||
| $0.01327 | ||
| $0.01667 | ||
| $0.01787 | ||
| $0.01817 | ||
| $0.00907 | ||
| $0.01277 | ||
| $0.01387 | ||
| $0.00417 | ||
| $0.00727 | ||
| $0.02207 | ||
| $0.00587 | ||
| $0.02547 | ||
| $0.01417 | ||
| $0.01697 | ||
| $0.04257 | ||
| $0.00617 | ||
| $0.00957 | ||
| $0.04537 | ||
| $0.01637 | ||
| $0.00277 | ||
| $0.01817 | ||
| $0.01467 | ||
| $0.01157 | ||
| $0.02547 | ||
| $0.02117 | ||
| $0.05107 | ||
| $0.01357 | ||
| $0.01557 | ||
| $0.00527 | ||
| $0.01357 | ||
| $0.01187 | ||
| $0.02117 | ||
| $0.01037 | ||
| $0.01667 | ||
| $0.01127 | ||
| $0.00907 | ||
| $0.01757 | ||
| $0.03407 | ||
| $0.00847 | ||
| $0.01357 | ||
| $0.01847 | ||
| $0.02037 | ||
| $0.02147 | ||
| $0.00907 | ||
| $0.00817 | ||
| $0.00987 | ||
| $0.00817 | ||
| $0.00847 | ||
| $0.01417 | ||
| $0.00757 | ||
| $0.01127 | ||
| $0.02697 | ||
| $0.00987 | ||
| $0.01417 | ||
| $0.01247 | ||
| $0.00727 | ||
| $0.00847 | ||
| $0.01977 | ||
| $0.01417 | ||
| $0.00927 | ||
| $0.01557 | ||
| $0.04477 | ||
| $0.00907 | ||
| $0.04797 | ||
| $0.01357 | ||
| $0.02517 | ||
| $0.01417 | ||
| $0.01387 | ||
| $0.01557 | ||
| $0.00507 | ||
| $0.02177 | ||
| $0.00707 | ||
| $0.03317 | ||
| $0.02207 | ||
| $0.02407 | ||
| $0.01927 | ||
| $0.01847 | ||
| $0.02697 | ||
| $0.01157 | ||
| $0.03407 | ||
| $0.02717 | ||
| $0.01217 | ||
| $0.01297 | ||
| $0.00927 | ||
| $0.00727 | ||
| $0.01127 | ||
| $0.02947 | ||
| $0.01357 | ||
| $0.02697 | ||
| $0.01277 | ||
| $0.01977 | ||
| $0.00957 | ||
| $0.01327 | ||
| $0.00417 | ||
| $0.01067 | ||
| $0.01037 | ||
| $0.00847 | ||
| $0.01277 | ||
| $0.00907 | ||
| $0.02897 | ||
| $0.00787 | ||
| $0.02777 | ||
| $0.00507 | ||
| $0.01037 | ||
| $0.01897 | ||
| $0.07097 | ||
| $0.00957 | ||
| $0.02207 | ||
| $0.00987 | ||
| $0.01417 | ||
| $0.02207 | ||
| $0.04257 | ||
| $0.00907 | ||
| $0.02237 | ||
| $0.00907 | ||
| $0.01787 | ||
| $0.00907 | ||
| $0.01037 | ||
| $0.01277 | ||
| $0.04827 | ||
| $0.01277 | ||
| $0.00337 | ||
| $0.00877 | ||
| $0.00707 | ||
| $0.02207 | ||
| $0.00787 | ||
| $0.05077 | ||
| $0.13637 | ||
| $0.00307 | ||
| $0.00727 | ||
| $0.02357 | ||
| $0.01977 | ||
| $0.00847 | ||
| $0.01187 | ||
| $0.00707 | ||
| $0.01327 | ||
| $0.01467 | ||
| $0.00957 | ||
| $0.05307 | ||
| $0.00707 | ||
| $0.00987 | ||
| $0.01247 | ||
| $0.01067 | ||
| $0.01357 | ||
| $0.01387 | ||
| $0.01417 | ||
| $0.04257 | ||
| $0.01277 | ||
| $0.01417 | ||
| $0.04537 | ||
| $0.02237 | ||
| $0.02117 | ||
| $0.03967 | ||
| $0.00877 | ||
| $0.01557 | ||
| $0.04257 | ||
| $0.00787 | ||
| $0.01187 | ||
| $0.02267 | ||
| $0.01417 | ||
| $0.02777 | ||
| $0.01417 | ||
| $0.01187 | ||
| $0.00727 | ||
| $0.00367 | ||
| $0.00677 | ||
| $0.00587 |
首次充值余额 $44
大约 8,678 条单分段消息发送至 美国
首次充值余额 $120
大约 23,668 条单分段消息发送至 美国
首次充值余额 $250
大约 49,309 条单分段消息发送至 美国
首次充值余额 $390
大约 76,923 条单分段消息发送至 美国
首次充值余额 $675
大约 133,136 条单分段消息发送至 美国
首次充值余额 $1,400
大约 276,134 条单分段消息发送至 美国
10,000
每批次请求的号码数量
在一次调用中发送列表,按国家拆分并按接收者计费。
600
每分钟每个密钥的请求数
每次响应的速率限制标头显示窗口内剩余的请求数。
1,200
每分钟每个账户的消息数
队列每两秒按顺序将消息传递给路由。
步骤 1
您的浏览器生成账户密钥。保存一次即可,这是唯一的登录方式,无需管理电子邮件或密码。
步骤 2
通过托管结账页面从 $40 开始充值。余额显示在控制台和通过 GET /v1/balance 查询。
步骤 3
为每个应用或环境命名一个密钥,复制一次,并可随时撤销而不影响其他密钥。
步骤 4
调用 /v1/messages 或 /v1/batches 并添加 webhook URL:送达和失败事件将以签名形式到达。