Bird Lookup

Vérifiez le destinataire avant de lui envoyer un message.

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.

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

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

  1. 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é.

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

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

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

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

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

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

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

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

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

phone-number

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.

email

Un verdict, un score de confiance, les indicateurs qui expliquent une adresse à risque, et une correction lorsqu'elle ressemble à une faute de frappe.

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.

Commencez avec un seul canal.
Ajoutez les autres quand vous êtes prêt.

Une clé API de test est disponible immédiatement. L'accès production se débloque dès que vous ajoutez un moyen de paiement et vérifiez un expéditeur.

Vous utilisez Claude Code, Cursor ou Codex ? Copiez un prompt de configuration et votre agent installe la CLI Bird et les compétences pour vous. Choisissez le vôtre :

Cursor