路由

从发送到手机 的路径。

设置时长:
Cursor

Bird 通过 240 条直连运营商连接覆盖 150 多个国家/地区。当某条运营商路径质量下降时,我们会在下一条消息发出之前实时重选路由。而且每次发送都会返回一份运营商投递回执,因此你始终知道手机是否收到了它。

send-otp.ts
200 · 0.4s
import { BirdClient } from "@messagebird/sdk";

const bird = new BirdClient({ apiKey: process.env.BIRD_API_KEY! });

const code = generateOtp();

const { data, error } = await bird.sms.send({
  from: "Bird",
  to:   "+15005550006",
  text: `Your Bird verification code is ${code}. Reply STOP to opt out.`,
}).safe();

if (error) throw error;
console.log(data.id);
// → "sms_4kT01Lq2m..."

Today at 2:14 PM

Hey Ada — your Bird sign-in code is 482917. It'll expire in 10 minutes. Don't share it with anyone.
482917
Delivered

你的发送所依托的那一层。

路由是 Bird SMS API 之下的那一层。你用一个 from、一个 to 和一段 text 调用一个端点;在底层,我们会解析接收方的运营商、选择一条连接并交付消息。当某条路径变差时,路由会改变,而你的代码不会。

路由层为你决定的内容。

按消息解析,隐藏在一次 API 调用背后。

  1. 01

    直连运营商连接。

    240 条连接将我们直接接入 150 多个国家/地区的移动运营商。你的发送与运营商的 SMSC 之间没有转售商链条。

  2. 02

    实时路由重选。

    我们监测每条路径上的投递和延迟。当某条运营商路由开始质量下降时,下一条消息会经由一条更健康的连接发往同一运营商。故障转移在你察觉之前就已完成。

  3. 03

    发送前进行 MNP 查询。

    我们在每次发送时解析接收方当前的运营商,因此一个已携号转网的号码会路由到实际持有它的运营商,而不是它最初被分配时所属的运营商。

  4. 04

    为每条消息提供一份投递回执。

    运营商自己的 DLR 会以 sms.delivered 或 sms.failed webhook 形式返回,携带它落地的网络以及所用的时间。你这边无需推测。

  5. 05

    按路由选择最低成本或最高质量。

    路由会为每个目的地权衡成本与投递质量。事务性流量倾向于最快、最可靠的路径;批量流量则可以偏向最低成本。

为什么直连运营商胜过聚合商链条。

大量 SMS 流量在到达运营商之前会经过两三个转售商。每一次跳转都增加了一处消息可能停滞、价格可能攀升、投递回执可能被丢弃或伪造的地方。直连连接消除了这些中间商:消息从 Bird 直接到运营商,回执也沿同一路径返回。这正是全球约 40% 商业 SMS 已经通过这张网络运行的方式,其中 95% 的消息在 2.5 秒内投递。

投递回执,直接来自运营商。

一次发送会返回 202;结果会以一个携带运营商 DLR 的签名 webhook 形式送达。负载会告诉你它落地的网络、目的地国家/地区,以及往返延迟。

POST /webhooks/bird
signed
{
  "type": "sms.delivered",
  "id":   "evt_7jR42x...",
  "created_at": "2026-05-19T15:42:01.221Z",
  "data": {
    "sms_id":     "sms_4kT01Lq2m",
    "from":       "Bird",
    "to":         "+15005550006",
    "mcc_mnc":    "310-260",
    "country":    "US",
    "latency_ms": 1284
  }
}

mcc_mnc 标识了接收该消息的确切移动网络;一个与号码归属运营商不同的值,就是你判断接收方已携号转网的信号。

  • sms.delivered运营商已确认手机收到了消息(DLR)。
  • sms.failed运营商拒绝或无法投递——并附带原因。

路由依赖号码情报。

用于选择正确运营商的 MNP 查询,与你可以通过 号码查询(Lookup) 单独调用的号码情报是同一种——发送前获取线路类型、当前运营商和可携性。一旦消息上线,接入 webhook 以接收投递回执,阅读 错误参考 以处理每个失败码,或查看 可投递性指南 了解这些回执告诉你什么。

SMS 路由常见问题

直连运营商路由是什么意思?+
你的消息会通过我们 240 条直连连接之一直接交付给移动运营商,而不是经过一连串转售商。更少的跳转意味着消息更少有地方停滞、投递回执更少有地方丢失。
当某条运营商路由质量下降时会发生什么?+
Bird 会实时重选路由。如果某条路径开始丢失回执或变慢,下一条消息会经由一条更健康的连接发往同一运营商,而你编写的发送代码永远不变。
我如何知道一条消息确实到达了手机?+
每条消息都会以 sms.delivered 或 sms.failed webhook 形式返回一份运营商投递回执,其中携带 mcc_mnc、country 和 latency_ms。这是运营商自己的确认,而不是我们这边的推断。
发送前你们会检查接收方的运营商吗?+
会。我们在每次发送时运行一次 MNP 查询以解析接收方当前的运营商,因此一个已携号转网的号码会路由到实际持有它的运营商。如需独立的号码情报,请参阅号码查询(Lookup)。
我可以选择最低成本而非最高质量的路由吗?+
路由会按目的地在成本和投递质量之间取得平衡。像一次性密码这样的事务性流量倾向于最高质量的路径;批量流量则可以偏向最低成本。这种选择是按消息进行的,隐藏在同一次 API 调用背后。

你永远无需操心的路由。

覆盖范围、运营商连接、故障转移和投递回执是 Bird SMS API 的一项能力,运行在我们已经运营十年的基础设施之上。

从一个渠道开始。
准备好后,再添加其他渠道。

测试 API 密钥即刻可用。添加支付方式并验证发送者身份后,即可解锁生产环境。

正在使用 Claude Code、Cursor 或 Codex?复制一条设置提示,您的智能代理即可自动安装 Bird CLI 和相关技能。选择您的工具:

Cursor