Telefonnummern-Intelligence. Leitungstyp, Netzbetreiber, Portierungshistorie, Betrugssignale.
MNP-aware carrier lookup over the same wires that carry Bird's SMS and Voice traffic. One endpoint, same auth, same error envelope as every other Bird channel, because the same engineering team built them all.
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,
// }
5 Minuten von npm install bis zur ersten Abfrage
Fragen Sie eine Nummer in der Sprache ab, die Sie bereits verwenden.
SDKs in every major runtime. Lookup answers in under 300ms at the median, fast enough to gate an SMS send on it.
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();Zehn Felder, die Sie sonst von drei Anbietern zusammenstellen müssten.
Konkrete Datenpunkte, benannt und überprüfbar. Jeder stammt aus einer echten Quelle, nicht aus einem Modell, das rät.
- 01
Leitungstyp-Erkennung
Mobil, Festnetz, VoIP, gebührenfrei, Premium, Pager. Entscheiden Sie, ob SMS überhaupt möglich ist, bevor Sie senden.
- 02
Netzbetreiber-Identifikation
Aktueller Netzbetreibername und Ländercode pro E.164-Eingabe. Laufend gegen MNP-Register aktualisiert.
- 03
Portierungshistorie
Der vorherige Netzbetreiber, von dem die Nummer portiert wurde. Nützlich für Routing-Kostenprognosen und Betrugsheuristiken.
- 04
Land- und Regionsformat
Gibt E.164-, nationale und internationale Formatierung zurück; die Länder- und Regionscodes, die ein Router benötigt.
- 05
Betrugssignale
Ein fraud_score von 0–1 pro Nummer, basierend auf Geschwindigkeit, Leitungstyp-Heuristiken, Kürzlich-portiert-Flags und Negativlisten.
- 06
Gültigkeit und Erreichbarkeit
A boolean valid and a reachable window: some numbers parse fine but the carrier no longer assigns them.
- 07
Batch-Abfrage
Senden Sie per POST eine Liste von bis zu 1.000 Nummern in einem Aufruf. Der gleiche Pro-Nummer-Preis gilt; Sie sparen die Roundtrips.
- 08
Cache-bewusstes Pricing
Ein 24-Stunden-Cache für identische Eingaben ist kostenlos. Sie zahlen nur, wenn sich die Antwort tatsächlich unterscheiden würde.
- 09
Webhooks für Batch-Aufträge
Für große Batches abonnieren Sie lookup.completed und lesen die Ergebnisdatei, anstatt eine HTTP-Verbindung offen zu halten.
- 10
Dieselbe Authentifizierung, dasselbe Fehlerformat
Ein API-Schlüssel für Lookup, SMS, Email, WhatsApp, Voice. Ein einheitliches Fehlertyp-Register für alle.
Warum wir Lookup entwickelt haben
Weil Sie nicht erst erfahren sollten, dass eine Nummer ein Festnetzanschluss ist, indem die SMS fehlschlägt.
We were already running MNP lookups inside Bird SMS routing: we had to, to pick the cheapest carrier route in real time. Lookup is that same query, surfaced as a first-class endpoint, so you can gate signups, score risk, and forecast routing cost without sending a single SMS. Same auth, same error envelope, same webhooks as the rest of the platform.
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,
// }
Jede Statusänderung ist ein Webhook.
HMAC-signierte Payloads, Replay-geschützt, idempotent. Einzelnummern-Abfragen sind synchron; Batch-Abfragen werden als Webhooks verteilt.
{
"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
}
}
Retry-Zeitplan: 5s, 30s, 5m, 30m, 2h, 6h, 12h. Dead-Letter nach dem letzten Versuch; jedes Dead-Letter-Event kann über das Dashboard oder die API erneut abgespielt werden.
lookup.completedEine Abfrage (einzeln oder Batch) wurde abgeschlossen. Die Payload enthält die vollständige Antwort.lookup.failedDie Abfrage konnte nicht durchgeführt werden; die Payload enthält das Fehlerformat.
Nummer abfragen, dann an sie senden.
Same auth, same idempotency contract, same error envelope. Lookup is shaped like every other endpoint. The difference is that it returns data instead of dispatching a message.
Lookup.
await bird.lookup.get({
phone: "+14155550172",
});
Carrier, line type, ported-from, fraud signals: returned synchronously in under 300ms.
SMS.
await bird.sms.send({
from: "Bird",
to: "+14155550172",
text: `Your code is ${code}.`,
category: "authentication",
});
Same auth, same error envelope. Gate the send on the lookup result: drop the landlines before they cost you.