Coming Soon

Intelligence sur les numéros de téléphone. Type de ligne, opérateur, portabilité, signaux de fraude.

Recherche d'opérateur compatible MNP sur les mêmes infrastructures que le trafic SMS et Voice de Bird. Un seul endpoint, même authentification, même format d'erreur que tous les autres canaux Bird — parce que la même équipe d'ingénieurs les a tous construits.

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 minutes entre npm install et votre première recherche

Interrogez un numéro depuis le langage que vous utilisez déjà.

SDK disponibles pour tous les principaux runtimes. Réponses Lookup en moins de 300 ms en médiane — assez rapide pour conditionner un envoi SMS.

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();

Dix champs que vous assembleriez autrement auprès de trois fournisseurs.

Des données concrètes, nommées et auditables. Chacune provient d'une source réelle, pas d'un modèle qui devine.

  1. 01

    Détection du type de ligne

    Mobile, fixe, VoIP, numéro gratuit, surtaxé, pager. Déterminez si le SMS est possible avant d'envoyer.

  2. 02

    Identification de l'opérateur

    Nom de l'opérateur actuel et indicatif pays par entrée E.164. Mis à jour en continu via les registres MNP.

  3. 03

    Historique de portabilité

    L'opérateur précédent depuis lequel le numéro a été porté. Utile pour la prévision des coûts de routage et les heuristiques de fraude.

  4. 04

    Format pays et région

    Retourne le format E.164, national et international ; les codes pays et région dont un routeur a besoin.

  5. 05

    Signaux de fraude

    Un fraud_score de 0 à 1 par numéro, combinant vélocité, heuristiques de type de ligne, indicateurs de portage récent et listes de numéros malveillants.

  6. 06

    Validité et joignabilité

    Un booléen valid et une fenêtre reachable — certains numéros sont syntaxiquement corrects mais l'opérateur ne les attribue plus.

  7. 07

    Recherche par lot

    Envoyez par POST une liste de jusqu'à 1 000 numéros en un seul appel. La même tarification par numéro s'applique ; vous économisez les allers-retours.

  8. 08

    Tarification avec cache intégré

    Un cache de 24 h sur les entrées identiques est gratuit. Vous ne payez que lorsque la réponse diffère réellement.

  9. 09

    Webhooks pour les traitements par lot

    Pour les gros lots, abonnez-vous à lookup.completed et lisez le fichier de résultats au lieu de maintenir une connexion HTTP.

  10. 10

    Même authentification, même format d'erreur

    Une seule clé API pour Lookup, SMS, Email, WhatsApp, Voice. Un seul registre de types d'erreur pour tous.

Why we build Lookup

Parce que vous ne devriez pas découvrir qu'un numéro est un fixe en regardant le SMS échouer.

Nous exécutions déjà des requêtes MNP dans le routage SMS de Bird — c'était indispensable pour choisir la route opérateur la moins chère en temps réel. Lookup est cette même requête, exposée en tant qu'endpoint de premier ordre, pour que vous puissiez filtrer les inscriptions, évaluer les risques et prévoir les coûts de routage sans envoyer un seul SMS. Même authentification, même format d'erreur, mêmes webhooks que le reste de la plateforme.

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

Chaque changement d'état est un webhook.

Payloads signés par HMAC, protégés contre le rejeu, idempotents. Les recherches unitaires sont synchrones ; les recherches par lot sont distribuées via des webhooks.

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

Calendrier de réessai : 5s, 30s, 5m, 30m, 2h, 6h, 12h. Mise en dead-letter après la dernière tentative ; chaque événement en dead-letter est rejouable depuis le tableau de bord ou l'API.

  • lookup.completedUne recherche (unitaire ou par lot) est terminée. Le payload inclut la réponse complète.
  • lookup.failedLa recherche n'a pas pu être effectuée ; le payload inclut le format d'erreur.

Interrogez le numéro, puis envoyez-lui un message.

Même authentification, même contrat d'idempotence, même format d'erreur. Lookup a la même structure que tout autre endpoint — la différence est qu'il retourne des données au lieu d'envoyer un message.

Lookup.

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

Opérateur, type de ligne, portabilité, signaux de fraude — retournés de manière synchrone en moins de 300 ms.

SMS.

sms
await bird.sms.send({
  from: "Bird",
  to:   "+14155550172",
  text: `Your code is ${code}.`,
});

Même authentification, même format d'erreur. Conditionnez l'envoi au résultat de la recherche — éliminez les lignes fixes avant qu'elles ne vous coûtent.

À partir de 0,005 $ par recherche.

Tarification par requête. Les entrées identiques dans une fenêtre de 24 h sont mises en cache gratuitement. Les remises sur volume s'appliquent automatiquement au-delà de 1 M/mois. Pas de frais de plateforme, pas de 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.

CommencerLire la docou

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

Cursor