Informacje o numerach telefonów. Typ linii, operator, historia przeniesień, sygnały oszustw.
Wyszukiwanie operatora z uwzględnieniem MNP na tych samych łączach, które obsługują ruch SMS i Voice Bird. Jeden endpoint, ta sama autoryzacja, ten sam format błędów co w każdym innym kanale Bird — bo ten sam zespół inżynierów zbudował je wszystkie.
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 minut od npm install do pierwszego wyszukiwania
Sprawdź numer w języku, którego już używasz.
SDK dla każdego popularnego środowiska uruchomieniowego. Odpowiedzi Lookup w medianie poniżej 300 ms — wystarczająco szybko, by warunkować wysyłkę SMS.
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();Dziesięć pól, które normalnie składałbyś od trzech dostawców.
Konkretne punkty danych, nazwane i audytowalne. Każdy pochodzi z realnego źródła, a nie z modelu zgadującego.
- 01
Wykrywanie typu linii
Komórkowy, stacjonarny, VoIP, bezpłatny, premium, pager. Zdecyduj, czy SMS jest w ogóle możliwy, zanim go wyślesz.
- 02
Identyfikacja operatora
Aktualna nazwa operatora i kod kraju na podstawie numeru E.164. Ciągle aktualizowane na podstawie rejestrów MNP.
- 03
Historia przeniesień numeru
Poprzedni operator, od którego numer został przeniesiony. Przydatne do prognozowania kosztów routingu i heurystyk wykrywania oszustw.
- 04
Format kraju i regionu
Zwraca formatowanie E.164, krajowe i międzynarodowe; kody kraju i regionu potrzebne routerowi.
- 05
Sygnały oszustw
fraud_score 0–1 dla każdego numeru, łączący prędkość, heurystyki typu linii, flagi niedawnych przeniesień i listy znanych zagrożeń.
- 06
Ważność i osiągalność
Wartość logiczna valid i okno reachable — niektóre numery parsują się poprawnie, ale operator już ich nie przydziela.
- 07
Wyszukiwanie wsadowe
Wyślij POST z listą do 1000 numerów w jednym wywołaniu. Obowiązuje ta sama cena za numer; oszczędzasz na liczbie zapytań.
- 08
Cennik z uwzględnieniem cache
24-godzinny cache dla identycznych zapytań jest bezpłatny. Płacisz tylko wtedy, gdy odpowiedź faktycznie byłaby inna.
- 09
Webhooki dla zadań wsadowych
Dla dużych partii subskrybuj lookup.completed i odczytaj plik wynikowy zamiast utrzymywać połączenie HTTP.
- 10
Ta sama autoryzacja, ten sam format błędów
Jeden klucz API dla Lookup, SMS, Email, WhatsApp, Voice. Jeden rejestr typów błędów dla wszystkich.
Dlaczego stworzyliśmy Lookup
Bo nie powinieneś dowiadywać się, że numer jest stacjonarny, obserwując niepowodzenie SMS.
Już wcześniej wykonywaliśmy wyszukiwania MNP wewnątrz routingu SMS Bird — musieliśmy to robić, by w czasie rzeczywistym wybrać najtańszą trasę operatora. Lookup to to samo zapytanie, udostępnione jako pełnoprawny endpoint, dzięki czemu możesz weryfikować rejestracje, oceniać ryzyko i prognozować koszty routingu bez wysyłania ani jednego SMS. Ta sama autoryzacja, ten sam format błędów, te same webhooki co reszta platformy.
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,
// }Każda zmiana stanu to webhook.
Ładunki podpisane HMAC, zabezpieczone przed powtórzeniem, idempotentne. Wyszukiwania pojedynczych numerów są synchroniczne; wyszukiwania wsadowe rozsyłane są jako webhooki.
{
"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
}
}Harmonogram ponawiania: 5 s, 30 s, 5 min, 30 min, 2 godz., 6 godz., 12 godz. Dead-letter po ostatniej próbie; każde zdarzenie dead-letter można ponowić z panelu lub API.
lookup.completedWyszukiwanie (pojedyncze lub wsadowe) zakończone. Ładunek zawiera pełną odpowiedź.lookup.failedNie udało się wykonać wyszukiwania; ładunek zawiera format błędu.
Sprawdź numer, a potem wyślij do niego wiadomość.
Ta sama autoryzacja, ten sam kontrakt idempotentności, ten sam format błędów. Lookup wygląda jak każdy inny endpoint — różnica polega na tym, że zwraca dane zamiast wysyłać wiadomość.
Lookup.
await bird.lookup.get({
phone: "+14155550172",
});Operator, typ linii, historia przeniesień, sygnały oszustw — zwracane synchronicznie w mniej niż 300 ms.
SMS.
await bird.sms.send({
from: "Bird",
to: "+14155550172",
text: `Your code is ${code}.`,
});Ta sama autoryzacja, ten sam format błędów. Warunkuj wysyłkę wynikiem wyszukiwania — odrzuć numery stacjonarne, zanim będą Cię kosztować.