Email analytics

Know exactly what your email did.

Set up in:

Delivery, opens, clicks, bounces, and complaints become numbers you can query, sliced by domain, ISP, IP, sending domain, and tag. In the dashboard and via the stats API, down to the hour.

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

The numbers in the API match the numbers in your dashboard.

Email analytics are part of the Bird Email API, not a separate add-on, so the same data the dashboard charts is available to query and export. Binance grew marketing email volume 2.5x while keeping engagement high by watching these numbers.

Five ways to see your email.

From a single KPI to a per-ISP breakdown.

  1. 01

    Delivery + engagement KPIs.

    Sent, delivered, opens, clicks, bounces, and complaints in a single summary you can pull on demand.

  2. 02

    Slice by anything.

    Per domain, per ISP, per IP, per sending domain, per recipient domain, per tag or category, per broadcast.

  3. 03

    Bounce + complaint analysis.

    Bounce codes and complaint types broken out, so you fix the cause rather than chase the symptom.

  4. 04

    Mailbox-provider + client breakdowns.

    See how Gmail, Yahoo, Outlook, and Apple Mail treat your mail, and which clients actually open it.

  5. 05

    Daily + hourly granularity.

    Query a day or a single hour. Backfill reports, or stream the numbers into your own dashboards.

Every chart is a query you can run yourself.

Pull a summary KPI, then break any metric down by a dimension (recipient domain, mailbox provider, sending IP, tag, or category) at daily or hourly grain. The same numbers the dashboard charts, in your own tooling.

stats.ts
200
// A single summary…
const { data } = await bird.email.stats.summary({
  from: "2026-06-01",
  to:   "2026-06-23",
  tag:  "campaign:spring-2026",
}).safe();
// → { delivered_count, open_rate, click_rate, bounce_rate, … }

// …or the same metrics, broken down by mailbox provider.
const byProvider = await bird.email.stats.mailboxProviders({
  from: "2026-06-01",
  to:   "2026-06-23",
});
// → gmail, yahoo, microsoft, apple … each with its own rates

Open rates you can actually trust.

Apple Mail Privacy Protection and Gmail's image proxy pre-fetch images on the recipient's behalf, registering opens no human triggered. Bird flags those prefetched opens and computes your open rate from the real, non-prefetched ones, so the number means something. When a decision really matters, lean on clicks: prefetchers load pixels, but they rarely follow links.

Go deeper in the docs.

See what's tracked in the tracking & metrics guide, and wire near-real-time data into your stack with email events and webhooks.

Email analytics FAQ

What email metrics does Bird track?+
Delivery, opens, clicks, bounces, complaints, and unsubscribes, summarized as KPIs and broken down by domain, ISP, IP, sending domain, recipient domain, tag, and broadcast, with bounce-code and complaint-type detail.
Can I get the data via API, not just the dashboard?+
Yes. Everything the dashboard charts is available through the stats API, at daily or hourly granularity, so you can backfill reports or stream metrics into your own tools.
How fresh are the numbers?+
Engagement and delivery events arrive in near real time via webhooks and roll up into the stats endpoints, so dashboards and queries reflect what just happened, not yesterday.
Can I see how specific mailbox providers treat my mail?+
Yes. Mailbox-provider and client breakdowns show how Gmail, Yahoo, Outlook, Apple Mail, and others deliver, open, and bounce your messages.

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

Transactional and marketing email on infrastructure we've run for a decade. Analytics is one capability of the Bird Email API: sending, deliverability, dedicated IPs, and suppression 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: