BIRD Email

De Email API voor developers die ook de rest van het bericht versturen.

Instellen in:
Cursor

Transactionele en marketing e-mail op dezelfde infrastructuur als uw SMS, voice en WhatsApp. Ongeveer 40% van alle commerciële e-mail wereldwijd passeert het Bird-netwerk. We doen dit al tien jaar. Tijdens Black Friday-weekend 2025 verwerkten we 19,9 miljard 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 minuten van npm install tot eerste verzending

Verstuur een e-mail vanuit de taal die u al gebruikt.

SDK's voor elke belangrijke runtime. De eerste verzending kan naar een goedgekeurd testadres (delivered@messagebird.dev), zodat je tegen de live API kunt bouwen (verzendingen, webhooks, de volledige flow) voordat je een domein verifieert.

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"

Tien onderdelen van e-mail die niet meer uw probleem zijn.

Afleverbaarheid en operationele bouwstenen, benoemd en auditeerbaar.

  1. 01

    Ondertekend aan de edge.

    Drie records om te publiceren: DKIM, een return-path CNAME en een DMARC-beleid. De CNAME dekt ook SPF af, dus er hoeft niets op uw domeinapex te staan.

  2. 02

    Een audit voordat u ook maar één byte verstuurt.

    Richt de audittool op een willekeurig domein en het resolvet de live DMARC-, SPF-, DKIM-, BIMI- en MX-records, beoordeelt hoe ze samenwerken en rangschikt wat er moet worden opgelost. Geen account nodig.

  3. 03

    Beheerde dedicated IP's.

    Per account ingericht en automatisch opgewarmd over ongeveer 30 dagen, georganiseerd in pools die je zelf beheert.

  4. 04

    Dynamische suppressielijst.

    Bounces, klachten en afmeldingen onderdrukken de ontvanger automatisch en omkeerbaar.

  5. 05

    Geen polling om een domein te verifiëren.

    Voeg een domein toe, publiceer de records en Bird controleert automatisch opnieuw totdat ze resolven — meestal binnen enkele minuten na DNS-propagatie. Er is een verify-call als u direct antwoord wilt.

  6. 06

    Opgeslagen templates, of uw eigen HTML.

    Geef een opgeslagen template op en Bird rendert het met Liquid, of render React Email naar HTML in uw app en geef het resultaat door.

  7. 07

    Doorzoekbaar e-maillog.

    Elk bericht dat je verstuurt wordt gelogd met de bijbehorende delivery-events en status. Bevraag elke e-mail op ID.

  8. 08

    Deliverability-statistieken, uitgesplitst.

    Bounce-codes, klachttypen en uitsplitsingen per mailboxprovider en client, opgesplitst per domein, ISP en IP, in het dashboard en via de stats-API.

  9. 09

    Inbound parsing.

    Gebruik een door Bird gegenereerd doorstuuradres, of publiceer MX-records op een subdomein dat u bezit. In beide gevallen komt de e-mail binnen als een ondertekende webhook die u kunt threaden.

  10. 10

    Verstuur in batch tot 100.

    Tot 100 onafhankelijke berichten per call, elk met een eigen ontvanger en variabelen. Eén idempotency key dekt de hele batch.

Waarom wij e-mail bouwen

Omdat uw verificatiecodes niet bij een andere leverancier thuishoren dan uw afleverbevestigingen.

E-mail is geen losstaand product; het is één kanaal in een flow. Auth-codes starten als e-mail en vallen terug op SMS. Bonnen worden via WhatsApp verstuurd als de klant dat verkiest. Bird Email is degene waarvan de API, webhooks en idempotentiecontract met elk ander kanaal overeenkomen, omdat hetzelfde engineeringteam ze allemaal op hetzelfde netwerk heeft gebouwd.

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..."

Elke statuswijziging is een webhook.

HMAC-ondertekende payloads, replay-beveiligd, idempotent. Dezelfde ondertekende envelope op elk Bird-kanaal, dus de handler die je voor e-mail schrijft parseert al je SMS- en WhatsApp-events.

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

Acht pogingen over ongeveer 27,5 uur, met oplopende intervallen van 5s, 5m, 30m, 2u, 5u, 10u, 10u met 20% jitter zodat retries niet synchroniseren. Elke poging hergebruikt dezelfde webhook-id, en dat is wat uw deduplicatiecontrole laat werken. Na de laatste poging is de aflevering permanent mislukt, en een replay-call herstelt deze.

  • email.acceptedDe verzending is geaccepteerd en wordt voorbereid voor aflevering.
  • email.processedIn de wachtrij voor de mailserver van de ontvanger.
  • email.deliveredDe mailserver van de ontvanger heeft het bericht geaccepteerd.
  • email.openedDe ontvanger heeft het bericht geopend. Kan meer dan eens worden geactiveerd.
  • email.clickedDe ontvanger heeft op een getrackte link geklikt.
  • email.bouncedPermanent mislukt: bouncetype en SMTP-code in de payload.
  • email.complainedDe ontvanger heeft het bericht als spam gemeld.
  • email.unsubscribedDe ontvanger heeft zich afgemeld via een getrackte uitschrijflink.
  • email.list_unsubscribedDe ontvanger heeft de one-click-uitschrijfoptie van de e-mailclient gebruikt.

Als u e-mail hebt geïntegreerd, hebt u SMS geïntegreerd.

Hetzelfde authenticatiemodel, hetzelfde idempotentiecontract, dezelfde error-envelope, dezelfde webhook-vorm. Het verschil zit in wat elk kanaal doet, niet in hoe je het aanroept.

Email

Geverifieerd domein, ondertekend aan de edge, suppressie-bewust. Render React of stuur ruwe HTML.

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

SMS

Dezelfde envelope, dezelfde idempotentie, hetzelfde fouttype-register. Het transport is het enige verschil.

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

Prijzen

Vanaf $0,30 per 1.000 e-mails

Begin gratis: 1.000 e-mails per maand, geen kaart nodig. Betaalde plannen starten bij $15 voor 50K, en de Growth-tarief per bericht blijft dalen naarmate je opschaalt naar 2,5M. Geen platformkosten, geen seat-kosten, geen tier-functies achter jaarlijkse verplichtingen verborgen.

Dagelijks vertrouwd door teams die wereldklasse software bouwen

Begin met één kanaal.
Voeg de rest toe wanneer je er klaar voor bent.

Een test-API-key is direct beschikbaar. Productietoegang wordt ontgrendeld zodra je een betaalmethode toevoegt en een afzender verifieert.

Gebruik je Claude Code, Cursor of Codex? Kopieer een setup-prompt en je agent installeert de Bird CLI en skills voor je. Kies de jouwe:

Cursor