BIRD Email
L<highlight>API Email</highlight> pour les développeurs qui envoient aussi le reste du message.
Transactional and marketing email on the same infrastructure that carries your SMS, voice, and WhatsApp. About 40% of the world's commercial email transits the Bird network — we've been at this a decade. 99.99% SLA on Email specifically.
import { BirdClient } from "@bird/sdk";
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",
react: <WelcomeEmail name="Ada" />,
}).safe();
if (error) throw error;
console.log(data.id);
// → "email_2bX91Yk8h..."You can sign in any time at bird.com/login.
Your test API key is on your dashboard, ready to send.
5 minutes entre npm install et le premier envoi
Envoyez un e-mail dans le langage que vous utilisez déjà.
SDK pour chaque runtime majeur. Le premier envoi est adressé à un destinataire de test autorisé (delivered@bird.dev) afin que vous puissiez ajouter un check CI avant de vérifier un domaine.
import { BirdClient } from "@bird/sdk";
const bird = new BirdClient({ apiKey: process.env.BIRD_API_KEY! });
const { data, error } = await bird.email.send({
from: "you@yourdomain.com",
to: ["delivered@bird.dev"],
subject: "Hello from Node",
html: "<p>It works.</p>",
}).safe();Ten parts of email that
aren't your problem anymore.
Deliverability and operational primitives,
named and audit-able.
- 01
Signed at the edge.
DKIM, SPF, DMARC et BIMI signés pour tout domaine d'envoi vérifié.
- 02
Proactive blocklist tracking.
Surveillance en temps réel des principales DNSBL ; alertes avant que le taux d'ouverture ne baisse.
- 03
Managed dedicated IPs.
Provisionnées par compte, chauffées automatiquement sur 21 jours, remplacées à chaud si un expéditeur perd sa réputation.
- 04
Dynamic suppression list.
Rebonds, plaintes et désinscriptions suppriment le destinataire automatiquement et de manière réversible.
- 05
DNS verification in 60s.
Ajoutez un domaine, collez les enregistrements, lancez la vérification. La plupart des vérifications aboutissent en moins d'une minute.
- 06
React Email templates.
Rendu côté serveur dans le SDK. Passez un composant React en tant que corps ; nous générons le MIME au moment de l'envoi.
- 07
Public share link per email.
Chaque e-mail envoyé obtient une URL publique de 48 heures pour les captures d'écran, les tickets et les rapports de bugs.
- 08
Forty-two deliverability metrics.
Par domaine, par FAI, par IP — affichées dans le tableau de bord et via l'API de diagnostics.
- 09
Inbound parsing.
Webhooks signés HMAC par adresse de destinataire. Analysez les réponses ; créez des applications avec fils de discussion.
- 10
Batch send up to 500.
Destinataires distincts par appel, chacun avec ses propres variables. Une seule clé d'idempotence couvre le lot.
Why we build email
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 à part ; c'est un canal dans un flux. Les codes d'authentification commencent par e-mail et basculent sur SMS. Les reçus sont envoyés par WhatsApp quand le client le préfère. Bird Email est celui 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 les mêmes infrastructures que nous exploitons depuis dix ans.
import { BirdClient } from "@bird/sdk";
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",
react: <WelcomeEmail name="Ada" />,
}).safe();
if (error) throw error;
console.log(data.id);
// → "email_2bX91Yk8h..."You can sign in any time at bird.com/login.
Your test API key is on your dashboard, ready to send.
Chaque changement d'état est un webhook.
Payloads signés HMAC, protégés contre le rejeu, idempotents. La même enveloppe sur chaque canal Bird — apprenez-en un, vous les connaissez tous.
{
"type": "email.delivered",
"id": "evt_3nB91x...",
"created_at": "2026-05-19T15:42:01.221Z",
"data": {
"email_id": "email_2bX91Yk8h",
"from": "hello@bird.com",
"to": "ada@example.com",
"subject": "Your invite is ready",
"isp": "gmail",
"latency_ms": 1842
}
}Planning de réessais : 5s, 30s, 5m, 30m, 2h, 6h, 12h. Mise en dead-letter après la dernière tentative ; chaque événement dead-letter est rejouable depuis le tableau de bord ou l'API.
email.queuedAccepté par l'API et mis en file d'attente pour l'envoi.email.sentTransmis au MTA destinataire.email.deliveredLe MTA destinataire a accepté le message.email.openedPixel de suivi récupéré (si le suivi est activé).email.clickedUn lien suivi a été cliqué.email.bouncedRebond soft ou hard — code de rebond dans le payload.email.complainedLe destinataire a signalé le message comme spam.email.unsubscribedLe destinataire a utilisé l'en-tête list-unsubscribe.email.failedÉchec permanent avant l'envoi.
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 format de webhook. La différence, c'est ce que chacun fait — pas comment vous l'appelez.
Verified domain, signed at the edge, suppression-aware. Render React or pass raw HTML.
await bird.email.send({
from: "hello@bird.com",
to: ["ada@example.com"],
subject: "Your code",
html: `<p>Code: ${code}</p>`,
});SMS
Same envelope, same idempotency, same error type registry. The transport is the only difference.
await bird.sms.send({
from: "Bird",
to: "+14155550172",
text: `Your code is ${code}.`,
});Pricing
From $1.50 per 1,000 emails
Tarification à l'usage. Les remises volume s'appliquent automatiquement au-dessus de 100K/mois et à nouveau au-dessus de 10M/mois. Pas de frais de plateforme, pas de frais par utilisateur, pas de fonctionnalités verrouillées derrière un engagement annuel.