Telefoonnummer opzoeken

Weet wat een nummer is. Voordat u ernaar verstuurt.

Eén POST, één antwoord, geen resource om aan te maken of te pollen. De basisopzoeking retourneert het land van het nummer, het netwerk dat het vandaag bedient, het netwerk dat het bereik heeft uitgegeven, een vlag die aangeeft of het nummer tussen die twee is verplaatst, en wat voor type lijn het is. Vijf extra eigenschappen zijn beschikbaar door ze op te geven.

phone-number.ts
200
const answer = await bird.lookup.phoneNumber({
  phone_number: "+31612345678",
  type: ["classification", "porting"],
});

console.log(answer.country_code, answer.line_type);
// → "NL" "mobile"
console.log(answer.network_info?.carrier_name);
// → "KPN"
console.log(answer.original_network_info?.carrier_name);
// → "Vodafone"
console.log(answer.flags);
// → ["ported"]

if (answer.porting?.status === "ok") {
  console.log(answer.porting.ported, answer.porting.last_ported_at);
  // → true "2021-04-18T00:00:00Z"
}

Twee netwerken, en het verschil ertussen.

Dat verschil is hoe portering eruitziet in een response.

Telefoonnummer opzoeken is een van de twee operaties in de Bird Lookup API. Stuur een nummer in internationaal formaat, met of zonder de voorloopplus, en u krijgt country_code terug, een network_info-blok voor de provider die het nummer vandaag bedient, en een original_network_info-blok voor de provider die het bereik toegewezen heeft gekregen. Wanneer die twee niet overeenkomen is het nummer geporteerd, en flags geeft dat aan. Alleen-nationale nummers worden geweigerd in plaats van geraden, zodat een foutieve invoer luid faalt in plaats van een plausibel antwoord over het verkeerde land te retourneren.

Wat er terugkomt, en wanneer.

De eerste drie komen bij elke opzoeking mee. De rest komt mee wanneer u ze opgeeft in type.

  1. 01

    Land en beide providers.

    country_code is het ISO-land van het bereik, en het ontbreekt bij niet-geografische nummers in plaats van geraden te worden. network_info en original_network_info bevatten elk een providernaam plus de mobiele land- en netwerkcodes — precies wat u nodig hebt als u routeert op MCC en MNC in plaats van op naam.

  2. 02

    Lijntype, uit een vaste lijst.

    mobile, fixed_line, voip, toll_free, premium_rate, satellite, pager, payphone, m2m, service, other of unknown. De lijst is gesloten, zodat een switch eroverheen volledig blijft, en het is het veld dat u moet controleren voordat u beslist of een SMS überhaupt mogelijk is.

  3. 03

    De porteringsvlag, zonder extra kosten.

    flags bevat ported wanneer het nummer ooit van netwerk is gewisseld. Het komt mee met het basisantwoord, dus de goedkope vraag of een nummer ooit is geporteerd vereist helemaal geen property.

  4. 04

    classification, een second opinion over de lijn.

    Een fijnmazigere lezing uit een andere bron, met waarden die line_type niet heeft: fixed_line_or_mobile, shared_cost, national_rate, personal_number, isp, voice_mail, short_codes en meer. Het staat naast line_type in de response in plaats van het te vervangen, zodat u de twee kunt vergelijken wanneer een nummer er ongewoon uitziet.

  5. 05

    porting, met datums en een geschiedenis.

    ported als boolean, last_ported_at als timestamp, last_ported_at_is_approximate wanneer het register alleen de maand kent, en history als de lijst van porteringsgebeurtenissen op chronologische volgorde. Elke gebeurtenis bevat een registerspecifieke actiecode, die het tonen waard is maar niet om op te vertakken.

  6. 06

    presence en roaming, van het live netwerk.

    presence bevraagt het netwerk en rapporteert reachable — het dichtste bij de vraag of de lijn aan staat. roaming rapporteert is_roaming plus de MCC en MNC van het bezochte netwerk, zodat een aanmelding vanaf een nummer op een buitenlands netwerk iets is dat u kunt zien in plaats van afleiden.

  7. 07

    score, één getal van 0 tot 100.

    Een samengestelde betrouwbaarheidsscore. Deze is niet af te leiden uit de andere eigenschappen, en dat is precies de reden om erom te vragen: één integer waarop u een drempel kunt instellen in een aanmeldflow zonder zelf regels te schrijven over providernamen en lijntypes.

Elke property vertelt u of deze is beantwoord.

Elk blok heeft een eigen status: ok, unavailable of inconclusive. Alleen ok bevat een waarde, dus u hoeft nooit een response te inspecteren om te bepalen dat deze leeg is, en een veld zonder waarde wordt weggelaten in plaats van op null gezet. De facturering volgt dezelfde lijn. De basisopzoeking wordt eenmaal gefactureerd, een property wordt alleen gefactureerd wanneer de status ok is, en een mislukte opzoeking wordt niet gefactureerd.

properties.ts
200 · partial
const answer = await bird.lookup.phoneNumber({
  phone_number: "+31612345678",
  type: ["presence", "roaming", "score"],
});

// Only a block whose status is ok carries a value.
if (answer.presence?.status === "ok") {
  console.log(answer.presence.reachable);
}

if (answer.roaming?.status === "ok") {
  console.log(answer.roaming.is_roaming, answer.roaming.mcc, answer.roaming.mnc);
}

// unavailable and inconclusive both mean no value, and no charge.
if (answer.score?.status !== "ok") {
  console.log("no credibility score on this answer");
}

Eén nummer per verzoek.

Er is bewust geen batchvariant: een opzoeking is een live query tegen providerdata, en een batch zou verbergen welke van duizend rijen is beantwoord en welke niet. De rate limit begint op 10 verzoeken per minuut per actieve credential en Lookup heeft een eigen budget, zodat het screenen van nummers nooit ten koste gaat van uw verzendcapaciteit. Stuur een Idempotency-Key mee en een retry herhaalt het antwoord waarvoor u al hebt betaald in plaats van een tweede te kopen.

Ga dieper in de docs.

Een telefoonnummer opzoeken doorloopt het verzoek en elk veld dat het kan retourneren. Het Lookup-overzicht behandelt beide operaties en de propertystatussen op één pagina, rate limits documenteert de lookup-groep, en idempotency legt uit wat een herhaald antwoord kost.

Vragen over telefoonnummer opzoeken, beantwoord.

Formattering, lijntypes, portering en wat een opzoeking niet doet.

Wat geeft een telefoonnummer-lookup als antwoord?
De basislookup geeft het land van het nummer, het netwerk dat het momenteel bedient, het netwerk dat het nummerbereik heeft uitgegeven, of het ooit van netwerk is gewisseld, en een globaal lijntype. De basislookup wordt altijd uitgevoerd, en als er geen antwoord kan worden gegeven, mislukt het hele verzoek in plaats van een half leeg antwoord te retourneren.
Hoe moet ik het nummer schrijven?
Eerst het landnummer, dan het nationale nummer. De plus aan het begin is optioneel en 00 werkt als vervanging, dus +31612345678, 31612345678 en 0031612345678 zijn allemaal hetzelfde nummer.
Waarom is mijn nummer afgewezen?
Een nummer dat is geschreven voor binnenlands bellen, zonder landcode, retourneert E22000 in plaats van te worden geraden. Een landcode vóór 0612345678 plakken zou een bestaand nummer ergens anders aanduiden en u kosten in rekening brengen voor het opzoeken van dát nummer.
Welke lijntypen kan het retourneren?
mobile, fixed_line, voip, toll_free, premium_rate, satellite, pager, payphone, m2m, service, other of unknown. unknown betekent dat het carrierplatform geen classificatie heeft voor het bereik, en other betekent dat het er wel een heeft zonder equivalent hier. Vraag de classification-eigenschap op voor de toegewezen dienst met hogere precisie.
Hoe kan ik zien of een nummer is geporteerd?
network_info is het netwerk dat het nummer momenteel bedient en original_network_info is het netwerk dat het bereik heeft uitgegeven. Die twee verschillen zodra een nummer is geporteerd, en flags bevat dan ported. Vraag de porting-eigenschap op als u ook de datum en het volledige record nodig hebt.
Waarom ontbreekt country_code in mijn antwoord?
Omdat het nummer niet tot één enkel land behoort, zoals bij een niet-geografisch bereik. Velden zonder waarde worden weggelaten in plaats van als null geretourneerd, dus elk veld dat in het antwoord aanwezig is, is daadwerkelijk opgelost.
Belt of berichtt een lookup het nummer?
Nee. Een lookup neemt nooit contact op met het nummer zelf. Het leest carrier- en nummerintelligentiegegevens, en de presence- en roaming-eigenschappen bevragen het netwerk waarop het nummer is geregistreerd, dus er gaat niets over en er komt niets aan op het toestel.

Breng het in de praktijk.

Ga verder met de documentatie, gidsen en voorbeelden voor dit onderwerp. De bronnen zijn in het Engels.

Ontvang een implementatieoverzicht

Voer uw eerste lookup uit op een nummer dat u kent.

Het dashboard voert dezelfde bewerking uit voor één nummer tegelijk — de snelste manier om een antwoord te zien voordat u code schrijft.

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.

Gebruik je Claude Code, Cursor of Codex? Kopieer een setup-prompt en je agent installeert de Bird CLI en skills voor je. Kies de jouwe:

Cursor