Telefoonnummer-intelligentie. Lijntype, provider, geporteerd-van, fraudesignalen.
MNP-aware provider-lookup over dezelfde lijnen die het SMS- en Voice-verkeer van Bird verwerken. Eén endpoint, dezelfde auth, dezelfde error-envelope als elk ander Bird-kanaal — omdat hetzelfde engineeringteam ze allemaal heeft gebouwd.
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 van npm install tot eerste lookup
Zoek een nummer op vanuit de taal die u al gebruikt.
SDK's in elke grote runtime. Lookup antwoordt in minder dan 300 ms mediaan — snel genoeg om een SMS-verzending erop te laten wachten.
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();Tien velden die u anders bij drie leveranciers zou moeten samenstellen.
Concrete datapunten, benoemd en auditeerbaar. Elk punt komt van een echte bron, niet van een model dat raadt.
- 01
Lijntype-detectie
Mobiel, vast, VoIP, gratis nummer, premium, pager. Bepaal of SMS überhaupt mogelijk is voordat u verzendt.
- 02
Provideridentificatie
Huidige providernaam en landcode per E.164-invoer. Continu bijgewerkt tegen MNP-registers.
- 03
Geporteerd-van-historie
De vorige provider waarvan het nummer is weggeporteerd. Handig voor routeringskostenprognoses en fraudeheuristieken.
- 04
Land- en regioformaat
Retourneert E.164-, nationaal en internationaal formaat; de land- en regiocodes die een router nodig heeft.
- 05
Fraudesignalen
Een fraud_score van 0-1 per nummer, gebaseerd op snelheid, lijntype-heuristieken, recente-portvlaggen en bekende-kwaadlijsten.
- 06
Validiteit en bereikbaarheid
Een boolean valid en een reachable-venster — sommige nummers parsen correct, maar de provider wijst ze niet meer toe.
- 07
Batch-lookup
POST een lijst van maximaal 1.000 nummers in één aanroep. Dezelfde prijs per nummer geldt; u bespaart de round trips.
- 08
Cache-bewuste prijzen
Een 24-uurscache op identieke invoer is gratis. U betaalt alleen wanneer het antwoord daadwerkelijk zou verschillen.
- 09
Webhooks voor batchtaken
Abonneer u voor grote batches op lookup.completed en lees het resultaatbestand in plaats van een HTTP-verbinding open te houden.
- 10
Dezelfde auth, dezelfde error-envelope
Eén API-sleutel voor Lookup, SMS, Email, WhatsApp, Voice. Eén fouttype-register voor allemaal.
Why we build Lookup
Want u zou niet moeten ontdekken dat een nummer een vaste lijn is door te zien dat de SMS mislukt.
We draaiden al MNP-lookups binnen de SMS-routering van Bird — dat moest, om in realtime de goedkoopste providerroute te kiezen. Lookup is diezelfde query, beschikbaar als een volwaardig endpoint, zodat u aanmeldingen kunt filteren, risico kunt scoren en routeringskosten kunt voorspellen zonder één SMS te verzenden. Dezelfde auth, dezelfde error-envelope, dezelfde webhooks als de rest van het platform.
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,
// }Elke statuswijziging is een webhook.
HMAC-ondertekende payloads, replay-beschermd, idempotent. Enkele lookups zijn synchroon; batch-lookups worden als webhooks verspreid.
{
"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-schema: 5s, 30s, 5m, 30m, 2u, 6u, 12u. Dead-letter na de laatste poging; elk dead-lettered event is opnieuw afspeelbaar vanuit het dashboard of de API.
lookup.completedEen lookup (enkel of batch) is voltooid. De payload bevat de volledige response.lookup.failedLookup kon niet worden uitgevoerd; de payload bevat de error-envelope.
Zoek het nummer op en verstuur er vervolgens naartoe.
Dezelfde auth, hetzelfde idempotency-contract, dezelfde error-envelope. Lookup is vormgegeven als elk ander endpoint — het verschil is dat het data retourneert in plaats van een bericht te verzenden.
Lookup.
await bird.lookup.get({
phone: "+14155550172",
});Provider, lijntype, geporteerd-van, fraudesignalen — synchroon geretourneerd in minder dan 300 ms.
SMS.
await bird.sms.send({
from: "Bird",
to: "+14155550172",
text: `Your code is ${code}.`,
});Dezelfde auth, dezelfde error-envelope. Laat de verzending afhangen van het lookup-resultaat — filter de vaste lijnen eruit voordat ze u geld kosten.