Un seul appel indique ce qu'est un numéro de téléphone : le réseau qui le dessert, le réseau qui l'a attribué, s'il a été porté de l'un à l'autre, et le type de ligne. Un seul appel indique si une adresse e-mail accepte le courrier. Même clé, même enveloppe d'erreur, même contrat d'idempotence que tous les autres canaux Bird, car la même équipe d'ingénierie les a tous construits.
import { BirdClient } from "@messagebird/sdk";
const bird = new BirdClient({
apiKey: process.env.BIRD_API_KEY!,
});
const answer = await bird.lookup.phoneNumber({
phone_number: "+31612345678",
type: ["porting", "score"],
});
console.log(answer.country_code, answer.line_type);
// → "NL" "mobile"
console.log(answer.network_info?.carrier_name, answer.flags);
// → "KPN" ["ported"]
// Only a block whose status is ok carries a value,
// and only that one is billed.
if (answer.score?.status === "ok") console.log(answer.score.value);
// → 84
5 minutes entre npm install et votre première recherche
Recherchez un numéro ou une adresse depuis le langage que vous utilisez déjà.
Méthodes typées dans les SDK Go, TypeScript, Python et PHP, et bird lookup en ligne de commande. Le tableau de bord exécute les deux mêmes opérations une à la fois, ce qui est le moyen le plus rapide d'obtenir une réponse avant d'écrire la moindre ligne de code.
const answer = await bird.lookup.phoneNumber({
phone_number: "+31612345678",
type: ["classification", "score"],
});
console.log(answer.country_code, answer.line_type);
// Only a block whose status is ok carries a value, and only that one is billed.
if (answer.score?.status === "ok") console.log(answer.score.value);Ce qu'une recherche renvoie, et ce que chaque réponse coûte.
Des champs nommés issus de sources de données réelles, pas un modèle qui devine. Chacun d'eux vous indique s'il a reçu une réponse, et vous n'êtes facturé que pour ceux qui en ont obtenu une.
- 01
Pays et les deux réseaux
Le pays du numéro, le réseau qui le dessert aujourd'hui et le réseau qui a attribué sa plage. Ils diffèrent lorsque le numéro a été porté.
- 02
Détection du type de ligne
Mobile, ligne fixe, VoIP, numéro gratuit, numéro surtaxé, satellite, pager, cabine téléphonique, M2M, service. Déterminez si le SMS est même possible avant d'envoyer.
- 03
L'indicateur de portabilité, gratuit avec la réponse de base
Le fait que le numéro ait changé de réseau est inclus dans chaque recherche. Demandez la propriété de portage lorsque vous avez aussi besoin des dates et de l'historique complet.
- 04
Six propriétés sur demande
Name classification, porting, presence, roaming, sim_swap ou score dans type. Le service alloué de la plage, l'historique de portage, si la ligne est active, si elle est en itinérance, la date du dernier changement de SIM, et un score de crédibilité de 0 à 100.
- 05
Un statut pour chaque propriété
Chaque bloc renvoie ok, unavailable ou inconclusive. Seul ok contient une valeur, vous n'avez donc jamais à inspecter une réponse pour découvrir qu'elle est vide.
- 06
Vous payez les réponses, pas les tentatives
La recherche de base est facturée une fois. Une propriété n'est facturée que lorsqu'elle est délivrée, et une recherche qui échoue n'est pas facturée du tout.
- 07
Un seul champ pour statuer sur une adresse e-mail
result est valid, neutral, risky, undeliverable ou typo, avec reason indiquant pourquoi une adresse non distribuable ne peut pas recevoir de courrier.
- 08
Une correction pour une adresse mal orthographiée
did_you_mean contient l'adresse dont une faute de frappe semble être une erreur d'orthographe. flags signale une adresse de rôle, jetable ou de fournisseur gratuit, et delivery_confidence note le tout de 0 à 100.
- 09
Une nouvelle tentative ne peut pas être facturée deux fois
Envoyez un Idempotency-Key et une requête répétée rejouera la réponse que vous avez déjà payée au lieu d'en acheter une seconde.
- 10
Même authentification, même format d'erreur
Une seule clé API pour Lookup, SMS, Email, WhatsApp et Verify. Un registre d'erreurs unique pour tous, et un budget de limitation de débit dédié pour qu'une recherche n'empiète jamais sur votre envoi.
Pourquoi nous avons créé Lookup
Parce que vous ne devriez pas découvrir qu'un numéro est un fixe en regardant le SMS échouer.
La réponse de base provient de la même plateforme opérateur qui route les SMS et Voice de Bird, c'est pourquoi l'interroger coûte si peu : nous exécutions déjà la requête pour choisir une route en temps réel. Lookup est cette requête exposée comme un endpoint à part entière, pour que vous puissiez valider une inscription, qualifier un prospect ou router un message différemment sans rien envoyer au préalable. Même authentification, même enveloppe d'erreur, même contrat d'idempotence que le reste de la plateforme.
import { BirdClient } from "@messagebird/sdk";
const bird = new BirdClient({
apiKey: process.env.BIRD_API_KEY!,
});
const answer = await bird.lookup.phoneNumber({
phone_number: "+31612345678",
type: ["porting", "score"],
});
console.log(answer.country_code, answer.line_type);
// → "NL" "mobile"
console.log(answer.network_info?.carrier_name, answer.flags);
// → "KPN" ["ported"]
// Only a block whose status is ok carries a value,
// and only that one is billed.
if (answer.score?.status === "ok") console.log(answer.score.value);
// → 84
Deux opérations, une pour chaque type de destinataire.
Les deux se résument à une seule requête et une seule réponse. Rien à créer, rien à interroger, rien à nettoyer après coup.
Numéro de téléphone.
Pays, les deux réseaux, l'indicateur de portabilité et le type de ligne, plus toute propriété que vous spécifiez dans type.
Adresse e-mail.
Un verdict, un score de confiance, les indicateurs qui expliquent une adresse à risque, et une correction lorsqu'elle ressemble à une faute de frappe.
Découvrir Lookup
Chaque opération en détail. Une clé API, un format d'erreur unique.
Payez uniquement pour les réponses obtenues.
Tarification par requête : un coût par recherche, plus un pour chaque propriété renvoyée avec une réponse. Une propriété sans réponse ou une recherche échouée ne coûtent rien. Aucun frais par utilisateur.