Lookup is being upgraded

电话号码智能查询。线路类型、运营商、携号转网来源、欺诈信号。

基于 MNP 感知的运营商查询,运行在承载 Bird SMS 和语音流量的同一网络上。一个端点、相同的认证、相同的错误响应格式——因为它们都出自同一个工程团队。

lookup.ts
200 · 0.3s
import { BirdClient } from "@messagebird/sdk";

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

const { data, error } = await bird.lookup.get({
  phone: "+14155550172",
}).safe();

if (error) throw error;
console.log(data);
// → {
//     phone:        "+14155550172",
//     line_type:    "mobile",
//     carrier:      "T-Mobile USA",
//     country:      "US",
//     ported_from:  "AT&T Mobility",
//     fraud_score:  0.07,
//     valid:        true,
//   }

从 npm install 到首次查询仅需 5 分钟

用您已经在使用的编程语言查询号码。

覆盖所有主流运行时的 SDK。Lookup 中位响应时间低于 300 毫秒——快到足以在发送 SMS 前完成拦截判断。

1
2
3
4
5
6
7
import { BirdClient } from "@messagebird/sdk";

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

const { data, error } = await bird.lookup.get({
  phone: "+14155550172",
}).safe();

十个数据字段,否则您需要从三家供应商分别拼凑。

具体的数据点,命名明确、可审计。每一条都来自真实数据源,而非模型猜测。

  1. 01

    线路类型检测

    移动电话、固定电话、VoIP、免费电话、增值电话、寻呼机。在发送前判断该号码是否支持 SMS。

  2. 02

    运营商识别

    根据 E.164 格式输入返回当前运营商名称和国家代码。持续对照 MNP 注册数据库更新。

  3. 03

    携号转网历史

    该号码此前从哪家运营商转出。可用于路由成本预测和欺诈启发式分析。

  4. 04

    国家和地区格式

    返回 E.164、国内和国际格式;路由器所需的国家和地区代码。

  5. 05

    欺诈信号

    每个号码返回 0-1 的 fraud_score,综合速率、线路类型启发式、近期携号转网标记和已知恶意名单。

  6. 06

    有效性和可达性

    返回布尔值 valid 和可达性窗口——有些号码格式正确,但运营商已不再分配。

  7. 07

    批量查询

    一次调用中 POST 最多 1,000 个号码。按相同的单号定价计费,节省往返请求开销。

  8. 08

    缓存感知定价

    相同输入在 24 小时内的缓存查询免费。只有当结果确实不同时才会计费。

  9. 09

    批量任务 Webhook

    对于大批量任务,订阅 lookup.completed 事件并读取结果文件,无需保持 HTTP 长连接。

  10. 10

    相同的认证,相同的错误响应格式

    一个 API 密钥通用于 Lookup、SMS、Email、WhatsApp、Voice。统一的错误类型注册表。

我们为什么构建 Lookup

您不应该在 SMS 发送失败后才发现那是个固定电话号码。

我们已经在 Bird SMS 路由内部运行 MNP 查询了——为了实时选择最低成本的运营商路由,这是必须的。Lookup 就是将同一个查询作为一级端点开放出来,让您无需发送任何 SMS 就能拦截注册、评估风险、预测路由成本。与平台其他服务共享相同的认证、错误响应格式和 Webhook。

lookup.ts
200 · 0.3s
import { BirdClient } from "@messagebird/sdk";

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

const { data, error } = await bird.lookup.get({
  phone: "+14155550172",
}).safe();

if (error) throw error;
console.log(data);
// → {
//     phone:        "+14155550172",
//     line_type:    "mobile",
//     carrier:      "T-Mobile USA",
//     country:      "US",
//     ported_from:  "AT&T Mobility",
//     fraud_score:  0.07,
//     valid:        true,
//   }

每次状态变更都是一个 Webhook。

HMAC 签名的载荷,防重放,幂等。单号查询为同步返回;批量查询以 Webhook 方式分发。

POST /webhooks/bird
signed
{
  "type": "lookup.completed",
  "id":   "evt_2qB72y...",
  "created_at": "2026-05-19T15:42:01.221Z",
  "data": {
    "lookup_id":   "lkp_4hQ8m2nT",
    "phone":       "+14155550172",
    "line_type":   "mobile",
    "carrier":     "T-Mobile USA",
    "country":     "US",
    "ported_from": "AT&T Mobility",
    "fraud_score": 0.07,
    "valid":       true
  }
}

重试计划:5 秒、30 秒、5 分钟、30 分钟、2 小时、6 小时、12 小时。最终尝试后进入死信队列;每个死信事件均可从控制台或 API 重放。

  • lookup.completed查询(单个或批量)已完成。载荷包含完整响应。
  • lookup.failed查询无法执行;载荷包含错误响应信息。

先查询号码,再发送消息。

相同的认证、相同的幂等性约定、相同的错误响应格式。Lookup 的结构与其他端点一致——区别在于它返回数据,而非发送消息。

Lookup。

lookup
await bird.lookup.get({
  phone: "+14155550172",
});

运营商、线路类型、携号转网来源、欺诈信号——同步返回,耗时低于 300 毫秒。

SMS。

sms
await bird.sms.send({
  from: "Bird",
  to:   "+14155550172",
  text: `Your code is ${code}.`,
});

相同的认证,相同的错误响应格式。根据查询结果决定是否发送——在产生费用之前过滤掉固定电话号码。

每次查询低至 $0.005 起

按查询计费。24 小时内相同输入的查询使用缓存,免费。月查询量超过 100 万自动享受批量折扣。无平台费,无席位费。

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

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

Using Claude Code, Cursor, or Codex? Copy a setup prompt and your agent installs the Bird CLI and skills for you. Pick yours: