Email analytics

Know exactly what your email did.

Set up in:
Cursor

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.

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();
// → { delivery: { delivered, bounce_rate, … }, engagement: { open_rate, … } }

// …or the same metrics, broken down by mailbox provider.
const byProvider = await bird.email.stats.byMailboxProvider({
  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. Clicks carry no such flag, and security systems follow links to check them, so treat a click as a recorded request too and judge a decision on what people complete in your own application.

Then see where it actually landed.

Delivered means the receiving server said yes. Whether the message reached the inbox or the spam folder is a separate question, and your own event stream cannot answer it. Two more views in the dashboard can, because they read from a panel of real mailboxes rather than from your sends.

Inbox Insights measures inbox and spam placement per mailbox provider for your verified sending domains, then lets you register seed tests: a batch of real addresses you include in a send, measured at the mailboxes themselves. Read the Inbox Insights guide.

Competitive Insights points the same panel at the brands you name: their send volume, cadence, inbox placement, read rates, and the campaigns themselves, in a watchlist beside your own measured figures. Read the Competitive Insights guide.

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.

Put it into practice.

Continue with the documentation, guides and examples for this topic. Resources are in English.

Get an implementation brief

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:

Cursor