BIRD Email

The Email API your product depends on.

Send receipts, password resets and product notifications with an SDK in your language. Build with React or HTML, then follow delivery through events and analytics. Add campaigns, SMTP or inbound email as your product grows.

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

Trusted every day by teams that build world-class software

Read more customer stories

5 minutes from npm install to first send

Send an email from the language you already use.

SDKs in every major runtime. The first send can go to a sanctioned test address (delivered@messagebird.dev), so you can build against the live API (sends, webhooks, the whole flow) before you verify a domain.

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"

Ten parts of email that aren't your problem anymore.

Deliverability and operational primitives, named and auditable.

  1. 01

    Signed at the edge.

    Three records to publish: DKIM, a return-path CNAME, and a DMARC policy. The CNAME covers SPF too, so nothing has to go on your domain apex.

  2. 02

    An audit before you send a byte.

    Point the audit tool at any domain and it resolves the live DMARC, SPF, DKIM, BIMI, and MX records, grades how they work together, and ranks what to fix. No account needed.

  3. 03

    Managed dedicated IPs.

    Provisioned per account and warmed automatically over roughly 30 days, organized into pools you control.

  4. 04

    Dynamic suppression list.

    Hard bounces and complaints create category-aware suppressions. Unsubscribes record a separate preference.

  5. 05

    No polling to verify a domain.

    Add a domain, publish the records, and Bird re-checks on its own until they resolve, usually within minutes of DNS propagating. There's a verify call if you want an answer right now.

  6. 06