Bird Products

Neuf surfaces. Une plateforme. Même structure.

Email, SMS, Voice, WhatsApp, Verify, Lookup, RCS, Push et Realtime — chacun une API de premier ordre. Même authentification, même idempotence, mêmes webhooks, même enveloppe d'erreur. Apprenez-en un, vous les maîtrisez tous.

Configuration en :
Cursor

Tous les produits. Neuf surfaces, un SDK.

01POST /v1/emails

Email. L'API email pour les développeurs qui envoient aussi le reste du message.

welcome.tsx
await bird.email.send({
  to: ["alex@example.com"],
  subject: "Welcome to Bird",
  html: "<p>You're in. Let's ship.</p>",
});
02POST /v1/sms

SMS. L'API SMS pour les développeurs qui doivent vraiment livrer.

notify.ts
await bird.sms.send({
  to: "+15005550006",
  text: "Your code is 847291. Expires in 10 min.",
});
SMS est en cours de mise à niveau
03POST /v1/voice/calls

Voice. Voix programmable en JSON. Appels, IVR, enregistrement, TTS.

dial.ts
await bird.voice.calls.create({
  to: "+15005550010",
  from: "+14155550199",
  flow: [
    { say: "Your order is confirmed." },
  ],
});
Voice est en cours de mise à niveau
04POST /v1/whatsapp/messages

WhatsApp. L'API WhatsApp Business, sans le parcours du combattant BSP.

message.ts
await bird.whatsapp.send({
  to: "+15005550006",
  type: "text",
  text: { body: "Order confirmed! 🎉" },
});
WhatsApp est en cours de mise à niveau
05POST /v1/verify/verifications

Verify. L'API OTP pour les développeurs qui ont besoin que les codes arrivent.

verify.ts
await bird.verify.verifications.create({
  to: { phone_number: "+15005550006" },
});
// check by target — no id to store
await bird.verify.verifications.check({
  to: { phone_number: "+15005550006" }, code: userCode,
});
En avant-première
06GET /v1/lookup

Lookup. Intelligence des numéros de téléphone : type de ligne, opérateur, signaux de fraude.

lookup.ts
const { lineType, carrier, fraud } =
  await bird.lookup.get("+15005550006");
Lookup est en cours de mise à niveau
07POST /v1/rcs

RCS. RCS Business Messaging — le grand frère du SMS, en mieux.

rich.ts
await bird.rcs.send({
  to: "+15005550006",
  text: "Your order shipped! 📦",
  suggestions: [
    { type: "openUrl", text: "Track it", url },
  ],
});
RCS est en cours de mise à niveau
08POST /v1/push

Push. Notifications push pour iOS, Android et le web.

push.ts
await bird.push.send({
  to: { deviceToken },
  notification: {
    title: "Order shipped!",
    body: "Your package is on its way.",
  },
});
Push est en cours de mise à niveau
09POST /v1/realtime/publish

Realtime. Pub/sub hébergé via WebSocket. Abonnez-vous, publiez, passez à l'échelle.

realtime.ts
await bird.realtime.publish({
  channel: "orders",
  event: "order.shipped",
  data: { orderId, status: "shipped" },
});
Realtime est en cours de mise à niveau

Chaque produit ci-dessus partage un même modèle d'authentification, un même contrat d'idempotence, une même enveloppe d'erreur, un même contrat de webhooks, un même schéma de pagination par curseur. Apprenez-en un, vous les connaissez tous.

/ Auth

/ Idempotency

/ Errors

/ Webhooks

/ Pagination

/ Typed IDs

Voir les endpoints API

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