TODAY SMS

API

基于 HTTPS 的 JSON API。请在 Authorization 请求头中发送 API 密钥。价格、退款和 20 分钟倒计时与网站相同。

基础地址

https://today-sms.com/api/v1

身份验证

请求头 Authorization: Bearer YOUR_API_KEY。首次充值后,在 API 密钥页面创建密钥。每分钟最多 300 次请求。

curl https://today-sms.com/api/v1/balance \
  -H "Authorization: Bearer YOUR_API_KEY"

GET /balance

您的余额,单位 USD。

响应示例

{
  "balance": "42.5000",
  "currency": "USD"
}

GET /apps

目前有号码的应用:代码、名称、最低价格、国家数。

响应示例

[
  { "app": "telegram", "name": "Telegram", "from": "0.4515", "countries": 61 }
]

GET /prices?app=telegram

某个应用的国家列表,价格从低到高:国家代码、ISO 代码、价格、可用号码数。

响应示例

[
  { "country": "indonesia", "iso": "id", "price": "0.4515", "stock": 702866 }
]

POST /numbers {"app":"telegram","country":"indonesia"}

购买一个号码。费用从余额中扣除。

响应示例

{
  "id": 1042,
  "phone": "+6281234567890",
  "price": "0.4515",
  "status": "waiting",
  "expires_at": "2026-10-14T09:20:00Z"
}

GET /numbers/{id}

状态以及目前收到的所有短信。

响应示例

{
  "id": 1042,
  "status": "received",
  "sms": [ { "code": "482913", "text": "Your code is 482913", "at": "2026-10-14T09:02:11Z" } ]
}

POST /numbers/{id}/cancel

取消未收到短信的号码,购买 120 秒后可用。全额退款。

响应示例

{
  "id": 1042,
  "status": "canceled",
  "refunded": "0.4515"
}

POST /numbers/{id}/finish

收到验证码后关闭号码。

响应示例

{
  "id": 1042,
  "status": "finished"
}

状态

waiting号码已就绪,尚未收到短信
received至少收到一条短信
finished收到验证码后已关闭
canceled已取消,已退款
expired未在时间内收到短信,已退款
checking供应商答复不明确;如果没有出现号码,倒计时结束时退款

错误

出错时返回非 2xx 状态码,以及包含错误代码的 JSON 正文。

{
  "error": "not_enough_balance"
}
unauthorized缺少 API 密钥或密钥错误
not_allowed首次充值后才能使用 API
bad_request缺少必填字段或字段有误
no_numbers此应用和国家目前没有号码
not_enough_balance请先充值
too_many_open使用中的号码过多;请完成或取消部分号码
too_early购买 120 秒后才能取消
has_sms已收到短信;号码无法取消
not_found您的账户中没有此号码
try_again供应商未确认取消;请一分钟后再试
rate_limited一分钟内请求过多