BIRD Email

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

Configuration en :
Cursor

E-mails transactionnels et marketing sur la même infrastructure que vos SMS, appels vocaux et WhatsApp. Environ 40 % des e-mails commerciaux dans le monde transitent par le réseau Bird. Nous faisons ça depuis dix ans. Lors du week-end du Black Friday 2025, nous avons traité 19,9 milliards d'e-mails.

welcome.tsx
200 · 1.2s
import { BirdClient } from "@messagebird/sdk";
import { render } from "@react-email/render";
import { WelcomeEmail } from "./emails/welcome";

const bird = new BirdClient({ apiKey: process.env.BIRD_API_KEY! });

const { data, error } = await bird.email.send({
  from:    "Bird <hello@bird.com>",
  to:      ["ada@example.com"],
  subject: "Your invite is ready",
  html:    await render(<WelcomeEmail name="Ada" />),
}).safe();

if (error) throw error;
console.log(data.id);
// → "em_2bX91Yk8h..."

5 minutes entre npm install et le premier envoi

Envoyez un e-mail dans le langage que vous utilisez déjà.

Des SDK dans tous les principaux runtimes. Le premier envoi peut être adressé à une adresse de test dédiée (delivered@messagebird.dev), ce qui vous permet de développer sur l'API live (envois, webhooks, tout le flux) avant même de vérifier un domaine.

1
2
3
4
5
6
7
const msg = await bird.email.send({
  from: { email: "onboarding@messagebird.dev", name: "Bird" },
  to: ["delivered@messagebird.dev"],
  subject: "Hello from Bird",
  html: "<p>My first Bird email.</p>",
});
console.log(msg.id, msg.status); // "em_…", "accepted"

Dix aspects de l'e-mail qui ne sont plus votre problème.

Primitives de délivrabilité et opérationnelles, nommées et auditables.

  1. 01

    Signé en périphérie.

    Trois enregistrements à publier : DKIM, un CNAME de return-path et une politique DMARC. Le CNAME couvre aussi SPF, donc rien n'a besoin d'être ajouté à l'apex de votre domaine.

  2. 02

    Un audit avant d'envoyer le moindre octet.

    Pointez l'outil d'audit vers n'importe quel domaine : il résout les enregistrements DMARC, SPF, DKIM, BIMI et MX en temps réel, évalue leur interaction et classe les corrections à apporter. Aucun compte nécessaire.

  3. 03

    IP dédiées managées.

    Provisionnées par compte et préchauffées automatiquement sur environ 30 jours, organisées en pools que vous contrôlez.

  4. 04

    Liste de suppression dynamique.

    Rebonds, plaintes et désinscriptions suppriment le destinataire automatiquement et de manière réversible.

  5. 05

    Pas de polling pour vérifier un domaine.

    Ajoutez un domaine, publiez les enregistrements, et Bird revérifie automatiquement jusqu'à leur résolution — généralement quelques minutes après la propagation DNS. Un appel de vérification est disponible si vous voulez une réponse immédiate.

  6. 06

    Templates enregistrés ou votre propre HTML.

    Nommez un template enregistré et Bird le rend avec Liquid, ou convertissez React Email en HTML dans votre application et transmettez le résultat.

  7. 07

    Journal d'e-mails consultable.

    Chaque message envoyé est journalisé avec ses événements de livraison et son statut. Interrogez n'importe quel e-mail par son ID.

  8. 08

    Des métriques de délivrabilité, détaillées.

    Codes de rejet, types de plaintes, et répartition par fournisseur de messagerie et par client, ventilés par domaine, FAI et IP, dans le dashboard et via l'API de statistiques.

  9. 09

    Parsing entrant.

    Utilisez une adresse de transfert générée par Bird, ou publiez des enregistrements MX sur un sous-domaine que vous possédez. Dans les deux cas, le message arrive sous forme de webhook signé que vous pouvez enchaîner.

  10. 10

    Envoi par lot jusqu'à 100.

    Jusqu'à 100 messages indépendants par appel, chacun avec son propre destinataire et ses variables. Une seule clé d'idempotence couvre le lot.

Pourquoi nous développons l'e-mail

Parce que vos codes de vérification ne devraient pas vivre chez un fournisseur différent de vos accusés de réception.

L'e-mail n'est pas un produit isolé ; c'est un canal parmi d'autres dans un flux. Les codes d'authentification partent par e-mail et basculent en SMS en cas d'échec. Les reçus sont envoyés par WhatsApp quand le client le préfère. Bird Email est le seul dont l'API, les webhooks et le contrat d'idempotence correspondent à tous les autres canaux, parce que la même équipe d'ingénierie les a tous construits sur le même réseau.

welcome.tsx
200 · 1.2s
import { BirdClient } from "@messagebird/sdk";
import { render } from "@react-email/render";
import { WelcomeEmail } from "./emails/welcome";

const bird = new BirdClient({ apiKey: process.env.BIRD_API_KEY! });

const { data, error } = await bird.email.send({
  from:    "Bird <hello@bird.com>",
  to:      ["ada@example.com"],
  subject: "Your invite is ready",
  html:    await render(<WelcomeEmail name="Ada" />),
}).safe();

if (error) throw error;
console.log(data.id);
// → "em_2bX91Yk8h..."

Chaque changement d'état est un webhook.

Charges utiles signées en HMAC, protégées contre le rejeu, idempotentes. La même enveloppe signée sur chaque canal Bird, si bien que le handler que vous écrivez pour l'e-mail parse déjà vos événements SMS et WhatsApp.

POST /webhooks/bird
signed
{
  "type": "email.delivered",
  "timestamp": "2026-05-19T15:42:01.221Z",
  "data": {
    "email_id":       "em_01krdgeqcxet5s7t44vh8rt9mg",
    "recipient_id":   "er_01krdgeqcxet5s7t44vh8rt9mg",
    "workspace_id":   "ws_01krdgeqcxet5s7t44vh8rt9mg",
    "recipient":      "ada@example.com",
    "recipient_role": "to",
    "tags":     [{ "name": "campaign", "value": "spring-2026" }],
    "metadata": { "order_id": "ord_5512" }
  }
}

Huit tentatives sur environ 27,5 heures, avec un backoff de 5 s, 5 min, 30 min, 2 h, 5 h, 10 h, 10 h et 20 % de jitter pour éviter la synchronisation des nouvelles tentatives. Chaque tentative réutilise le même webhook-id, ce qui fait fonctionner votre contrôle de déduplication. Après la dernière tentative, la livraison est définitivement en échec, et un appel de replay permet de la récupérer.

  • email.acceptedL'envoi a été accepté et est en cours de préparation pour la livraison.
  • email.processedEn file d'attente pour le serveur de messagerie du destinataire.
  • email.deliveredLe serveur de messagerie du destinataire a accepté le message.
  • email.openedLe destinataire a ouvert le message. Peut se déclencher plusieurs fois.
  • email.clickedLe destinataire a cliqué sur un lien suivi.
  • email.bouncedÉchec permanent : type de rebond et code SMTP dans le payload.
  • email.complainedLe destinataire a signalé le message comme spam.
  • email.unsubscribedLe destinataire s'est désinscrit via un lien de désinscription suivi.
  • email.list_unsubscribedLe destinataire a utilisé la désinscription en un clic de son client de messagerie.

Si vous avez intégré l'e-mail, vous avez intégré le SMS.

Même modèle d'authentification, même contrat d'idempotence, même enveloppe d'erreur, même forme de webhook. La différence tient à ce que chacun fait, pas à la façon dont vous l'appelez.

Email

Domaine vérifié, signature en périphérie, gestion des suppressions intégrée. Rendez du React ou transmettez du HTML brut.

order-shipped.tsx
await bird.email.send({
  from:    "hello@bird.com",
  to:      ["ada@example.com"],
  subject: "Your code",
  html:    `<p>Code: ${code}</p>`,
});

SMS

Même enveloppe, même idempotence, même registre de types d'erreurs. Le transport est la seule différence.

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

Tarifs

À partir de 0,30 $ par 1 000 e-mails

Démarrez gratuitement : 1 000 e-mails par mois, sans carte. Les forfaits payants commencent à $15 pour 50 K, et le tarif par message Growth continue de baisser à mesure que vous montez en charge jusqu'à 2,5 M. Pas de frais de plateforme, pas de frais par siège, aucune fonctionnalité de palier verrouillée derrière un engagement annuel.

Utilisé chaque jour par les équipes qui créent des logiciels de classe mondiale

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