Broadcasts

Marketing email, on one API.

Set up in:

Create a broadcast as a draft, point it at an audience, and send now or schedule it. Same keys, same deliverability, and the same webhooks as your transactional mail. No second vendor for campaigns.

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

Campaigns, with a transactional API's discipline.

Broadcasts are marketing email on the Bird Email API, the same network that carries your transactional mail. You target a single audience, schedule with an explicit timestamp, and cancel a send mid-flight if you have to. One targeting concept, no juggling lists and segments.

Five things a broadcast does.

Draft, target, schedule, cancel, measure.

  1. 01

    Draft-first lifecycle.

    Create a broadcast as a draft, refine the content, and send it when you're ready.

  2. 02

    Audience targeting.

    Point a broadcast at a single audience. One targeting field, no stacking lists and segments to reason about.

  3. 03

    Send now or schedule.

    Dispatch immediately, or schedule with an explicit timestamp from 30 seconds to 30 days out.

  4. 04

    Cancel mid-flight.

    Cancel a scheduled broadcast, or even one already fanning out. It moves to canceled from any non-terminal state.

  5. 05

    Per-broadcast analytics.

    Delivery and engagement metrics for each broadcast, alongside the rest of your email analytics.

Draft, target, and schedule in one call.

A broadcast is one content definition pointed at a stored audience. Pass an audience ID and a schedule and Bird resolves the recipients at send time, drops anyone suppressed, then fans the message out and tracks it through to sent.

broadcast.ts
scheduled
// Point a campaign at an audience and schedule it.
const { data } = await bird.email.broadcasts.create({
  from:        "Bird <news@bird.com>",
  audienceId:  "aud_2bX91Yk8h",
  subject:     "Spring product update",
  html:        await render(<SpringUpdate />),
  scheduledAt: "2026-07-01T15:00:00Z",
}).safe();

console.log(data.id, data.status);
// → "eb_01krdgeqcx..." "scheduled"

Targeting that respects consent.

A broadcast targets one audience, and Bird applies your marketing suppressions before it sends. Anyone who's unsubscribed or complained is dropped automatically, so you can't re-mail someone who opted out. Topic-level preferences, for finer per-content opt-in, are on the roadmap as a filter on top of the same audience.

Works with the rest of Email.

Build the list you target on the audiences page, send transactional mail through the same send API, and watch results in email analytics.

Broadcasts FAQ

How do I target a broadcast?+
Point it at a single audience. Audience is the one targeting concept; you don't stack lists and segments. Dynamic and warehouse-backed audiences are on the roadmap as audience types, not separate fields.
Can I schedule a broadcast?+
Yes. Send immediately, or schedule with an explicit timestamp from 30 seconds to 30 days in the future.
Can I cancel a send?+
Yes. Cancel a scheduled broadcast, or one that's already fanning out. A broadcast can move to canceled from any non-terminal state.
Is this the same as the transactional Email API?+
Same API, same keys, same deliverability and webhooks. Broadcasts add the campaign lifecycle on top of the sending infrastructure you already use.

About 40% of the world's commercial email already runs on Bird.

Transactional and marketing email on infrastructure we've run for a decade. Broadcasts are one capability of the Bird Email API: sending, audiences, deliverability, suppression, and analytics ship with it.

Start with one channel.
Add the others when you're ready.

A test API key is yours immediately. Production unlocks when you add a payment method and verify a sender.

Using Claude Code, Cursor, or Codex? Copy a setup prompt and your agent installs the Bird CLI and skills for you. Pick yours: