JSON · HTTPS · Bearer 密钥
用短信API一次搞定接收验证码和发送短信
TODAY SMS API 是面向开发者的 API,用一个 API 密钥、一份余额同时使用通过一次性号码接收验证码的短信验证 API,以及向 227 个国家发送短信的发送 API。请求和响应全部为 JSON,价格和退款规则与网站相同。
$ curl -X POST https://today-sms.com/api/v1/numbers \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"app":"telegram","country":"indonesia"}'
{
"id": "N-7K2M-QX4P-9D3A",
"phone": "+6281234567890",
"price": "0.4515",
"status": "waiting",
"expires_at": "2026-10-18T09:20:00.000Z"
}
$ curl https://today-sms.com/api/v1/numbers/N-7K2M-QX4P-9D3A \
-H "Authorization: Bearer YOUR_API_KEY"
{
"id": "N-7K2M-QX4P-9D3A",
"status": "received",
"sms": [
{ "code": "482913", "text": "Your code is 482913", "at": "2026-10-18T09:02:11.000Z" }
]
}
$ curl -X POST https://today-sms.com/api/v1/messages \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"to":["+14155550100","+447700900123"],"text":"Your code is 482913"}'
{
"id": "m_7Q2K9X",
"status": "queued",
"recipients": 2,
"parts": 1,
"encoding": "GSM-7",
"cost": "0.0136"
}
$ curl https://today-sms.com/api/v1/messages/m_7Q2K9X \
-H "Authorization: Bearer YOUR_API_KEY"
- 每分钟 300 次
- 接收 · 发送同一密钥
- 失败 · 未收到退回余额
- 支持12种加密货币充值
短信API能做什么
短信验证 API
选择应用和国家购买号码,查询状态即可获得验证码。收不到短信时,到期后全额退回余额。
发送短信 API
一次发送最多 1,000 位收件人和文案,并获得按收件人的送达报告。填写定时时间即在该时间发送。
价格和库存 API
通过 API 获取各应用的国家和价格、号码数量以及各国家单条短信价格,可直接用在您的服务页面上。
一份余额
接收和发送共用同一份余额。余额用 USDT 充值,可随时通过 API 查询。
方法一览
完整文档| 方法 | 功能 |
|---|---|
| GET/balance | 查询余额 |
| GET/apps | 应用列表 |
| GET/prices?app=telegram | 按应用的国家和价格 |
| POST/numbers | 购买号码 |
| GET/numbers/{id} | 号码状态和短信 |
| POST/numbers/{id}/cancel | 取消号码 |
| POST/numbers/{id}/finish | 完成号码 |
| GET/messages/prices | 各国家短信价格 |
| POST/messages | 发送短信 |
| GET/messages/{id} | 发送状态和送达报告 |
| POST/messages/{id}/cancel | 取消定时发送 |
什么是短信API?
短信API是让您的程序通过 HTTP 请求接收或发送短信的接口。原本由人在网页上点击完成的工作改由代码来做,注册测试自动化、验证码发送、订单通知等重复工作都能无需人工完成。
TODAY SMS API 同时提供两种功能。一是用一次性号码接收应用验证码的短信验证 API (SMS activation API),二是向全球手机发送短信的发送短信 API。两个 API 使用同一地址、同一 API 密钥和同一份余额,无需分别注册或分别充值。
短信验证 API 怎么用?
共分四步。用 GET /apps 选择应用代码,用 GET /prices?app=应用代码 查看国家和价格。用 POST /numbers 购买号码,会返回号码和 id,每隔几秒调用 GET /numbers/{id} 确认验证码是否已到。收到验证码后用 POST /numbers/{id}/finish 关闭。
号码在 20 分钟内等待短信,期间同一号码收到的短信不另外收费。收不到短信时,到期后全额退回余额;如果什么都没收到,购买 120 秒后可用 POST /numbers/{id}/cancel 手动取消。需要应用验证自动化或批量虚拟号码 API 时,按这个流程重复即可。
发送短信 API 怎么用?
向 POST /messages 发送收件人列表 (to) 和文案 (text),会返回消息 id、收件人数、条数和总费用。收件人按带 + 和区号的国际格式填写,单次请求最多 1,000 人。需要定时发送时,在 at 中填写 UTC 时间。
发送后用 GET /messages/{id} 查看按收件人的送达报告。状态分为 pending、sent、delivered、failed 四种,以 failed 结束的条目金额计入 refunded 并退回余额。尚未发送的定时任务可用 POST /messages/{id}/cancel 取消。
发送验证码 (OTP) 时也用同一个方法。一个验证码按一条计费,没有单独的验证费用,各国家单条价格可通过 GET /messages/prices 获取,用于您自己的费用计算。
挑选便宜的短信API要看什么?
除了价格表上的单条价格,还要看实际支付的总额。TODAY SMS 没有月费,只按发送条数扣费,失败的条目和未收到的验证码都会退回余额。
接下来了解密钥管理与限额。每个账户拥有一个API密钥,可随时创建新密钥(旧密钥立即失效)。每分钟允许300次请求,满足多数自动化需求。最后是支付方式:支持包括USDT、USDC和BTC在内的12种加密货币充值,无需银行卡,全球用户均可即时开通服务。
如何获取 API 密钥?
创建账户并在首次充值到账后,即可在 API 密钥页面创建密钥。密钥只在创建时显示一次,请保存在安全的地方。每次请求通过 Authorization: Bearer 密钥 请求头发送即可。
如果认为密钥已泄露,请在 API 密钥页面生成新密钥,旧密钥会立即失效。持有密钥的人可以用您的余额购买号码或发送短信,请不要把密钥放在浏览器代码或公开仓库中。