Lookup is being upgraded

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.

lookup.ts
200 · 0.3s
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.

1
2
3
4
5
6
7
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.

  1. 01

    Lijntype-detectie

    Mobiel, vast, VoIP, gratis nummer, premium, pager. Bepaal of SMS überhaupt mogelijk is voordat u verzendt.

  2. 02

    Provideridentificatie

    Huidige providernaam en landcode per E.164-invoer. Continu bijgewerkt tegen MNP-registers.

  3. 03

    Geporteerd-van-historie

    De vorige provider waarvan het nummer is weggeporteerd. Handig voor routeringskostenprognoses en fraudeheuristieken.

  4. 04

    Land- en regioformaat

    Retourneert E.164-, nationaal en internationaal formaat; de land- en regiocodes die een router nodig heeft.

  5. 05

    Fraudesignalen

    Een fraud_score van 0-1 per nummer, gebaseerd op snelheid, lijntype-heuristieken, recente-portvlaggen en bekende-kwaadlijsten.

  6. 06

    Validiteit en bereikbaarheid

    Een boolean valid en een reachable-venster — sommige nummers parsen correct, maar de provider wijst ze niet meer toe.

  7. 07

    Batch-lookup

    POST een lijst van maximaal 1.000 nummers in één aanroep. Dezelfde prijs per nummer geldt; u bespaart de round trips.

  8. 08

    Cache-bewuste prijzen

    Een 24-uurscache op identieke invoer is gratis. U betaalt alleen wanneer het antwoord daadwerkelijk zou verschillen.

  9. 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. 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.

lookup.ts
200 · 0.3s
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.

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
  }
}

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.

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

Provider, lijntype, geporteerd-van, fraudesignalen — synchroon geretourneerd in minder dan 300 ms.

SMS.

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.

Vanaf $0,005 per lookup.

Prijs per query. Identieke invoer binnen een 24-uursvenster wordt gecachet en is gratis. Volumekortingen gelden automatisch boven 1M/maand. Geen platformkosten, geen stoelkosten.

Begin met één kanaal.
Voeg de rest toe wanneer je er klaar voor bent.

Een test-API-key is direct beschikbaar. Productietoegang wordt ontgrendeld zodra je een betaalmethode toevoegt en een afzender verifieert.

Aan de slagLees de docsof

Using Claude Code, Cursor, or Codex? Point it at our MCP server — tools for every channel we expose, with scoped agent keys.

Cursor