Bird Products

Ten surfaces. One platform. Same shape.

Email, Mailbox, SMS, Voice, WhatsApp, Verify, Lookup, RCS, Push, and Realtime — each a first-class API. Same auth, same idempotency, same webhooks, same error envelope. Learn one, you've learned them all.

Configuration en :
Cursor

Tous les produits. Ten surfaces, one 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/email/mailboxes

Mailbox. The Mailbox API for agents that answer their own email.

claim-mailbox.sh
curl -X POST https://us1.platform.bird.com/v1/email/mailboxes \
  -H "Authorization: Bearer $BIRD_API_KEY" \
  -d '{"domain": "inbox.ai", "receive_policy": "open"}'

{
  "id": "mbx_01krdgeqcxet5s7t44vh8rt9mg",
  "address": "k7mq3vx2npr5wcj4tzh6@inbox.ai",
  "state": "active"
}
03POST /v1/sms/messages

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.",
  category: "authentication",
});
04POST /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
05POST /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
06POST /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
07GET /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
08POST /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
09POST /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
10POST /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