Telefonnummern-Intelligence. Leitungstyp, Netzbetreiber, Portierungshistorie, Betrugssignale.
MNP-fähige Netzbetreiber-Abfrage über dieselben Leitungen, die Bird's SMS- und Voice-Traffic transportieren. Ein Endpunkt, dieselbe Authentifizierung, dasselbe Fehlerformat wie bei jedem anderen Bird-Kanal — weil dasselbe Engineering-Team sie alle gebaut hat.
import { BirdClient } from "@bird/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 für jede gängige Laufzeitumgebung. Lookup-Antworten im Median unter 300 ms — schnell genug, um einen SMS-Versand davon abhängig zu machen.
import { BirdClient } from "@bird/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
Ein boolesches valid und ein reachable-Fenster — manche Nummern lassen sich korrekt parsen, aber der Netzbetreiber vergibt sie nicht mehr.
- 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.
Why we build Lookup
Weil Sie nicht erst erfahren sollten, dass eine Nummer ein Festnetzanschluss ist, indem die SMS fehlschlägt.
Wir haben MNP-Abfragen bereits innerhalb des Bird SMS-Routings durchgeführt — das mussten wir, um in Echtzeit die günstigste Netzbetreiber-Route zu wählen. Lookup ist dieselbe Abfrage, als eigenständiger Endpunkt bereitgestellt, damit Sie Registrierungen prüfen, Risiken bewerten und Routing-Kosten prognostizieren können, ohne eine einzige SMS zu senden. Dieselbe Authentifizierung, dasselbe Fehlerformat, dieselben Webhooks wie beim Rest der Plattform.
import { BirdClient } from "@bird/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.
Dieselbe Authentifizierung, derselbe Idempotenz-Vertrag, dasselbe Fehlerformat. Lookup ist wie jeder andere Endpunkt aufgebaut — der Unterschied ist, dass es Daten zurückgibt, statt eine Nachricht zu versenden.
Lookup.
await bird.lookup.get({
phone: "+14155550172",
});Netzbetreiber, Leitungstyp, Portierungshistorie, Betrugssignale — synchron in unter 300 ms zurückgegeben.
SMS.
await bird.sms.send({
from: "Bird",
to: "+14155550172",
text: `Your code is ${code}.`,
});Dieselbe Authentifizierung, dasselbe Fehlerformat. Machen Sie den Versand vom Lookup-Ergebnis abhängig — filtern Sie die Festnetznummern heraus, bevor sie Kosten verursachen.