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.
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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
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?
Hoe moet ik het nummer schrijven?
Waarom is mijn nummer afgewezen?
Welke lijntypen kan het retourneren?
Hoe kan ik zien of een nummer is geporteerd?
Waarom ontbreekt country_code in mijn antwoord?
Belt of berichtt een lookup het nummer?
Breng het in de praktijk.
Ga verder met de documentatie, gidsen en voorbeelden voor dit onderwerp. De bronnen zijn in het Engels.
De rest van Lookup
Eén API-sleutel, één foutenvelope. Ontdek de andere mogelijkheid.
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.