Bird vs Mailgun

The Mailgun alternative.

Mailgun is a capable developer email platform with a few features Bird does not match. Bird runs on SparkPost, the platform it acquired in 2021 that carries about 40% of the world’s commercial email, and adds idempotency, 30-day message history, lower cost at higher volumes, and SMS and voice on the same API. Here is where each one fits. See the Bird Email API for the full surface.

By the numbers

Bird

Deliverability scale

~40% of commercial email

Message retention

30 days

What Mailgun is great at.
Where Bird is different.

What Mailgun is great at

A customer-facing SMTP relay. Mailgun offers both a REST API and an SMTP relay (STARTTLS on port 587). Bird is HTTP-send only, so apps that send over SMTP migrate more easily to Mailgun.

Built-in email validation. A native bulk and real-time validation product, with volume included on the Scale plan. Bird does not offer address validation today.

Authentication automation. Automatic DKIM key rotation (2048-bit, dual selector), plus a 15-step automated dedicated-IP warm-up.

Deep deliverability tooling. Detailed analytics and optional Optimize and InboxReady services for teams that want hands-on deliverability features.

Where Bird is different

Built on SparkPost. Bird’s email runs on SparkPost, the deliverability platform Bird acquired in 2021. It carries about 40% of the world’s commercial email and brings more than a decade of IP-reputation engineering.

A modern API. Errors as values with .safe(), and an idempotency key reused across retries so a retried send is never a duplicate. Mailgun has no request-level idempotency key.

Longer history, lower cost at scale. Bird stores a sent message body for 30 days; Mailgun keeps bodies roughly one day on its entry plan, up to seven on Scale. And at higher volumes Bird’s price comes in well under Mailgun’s.

Channels beyond email. Send email, SMS, and voice from one API. Mailgun is email only; its other channels come from separate Sinch products on separate APIs.

The matrix

Capability by capability.

Mailgun wins on a customer SMTP relay and built-in email validation. Bird wins on idempotency, longer message retention, lower cost at higher volumes, and channels beyond email, and matches Mailgun on core deliverability via the SparkPost network. Both readings are accurate today.

CapabilityBirdMailgunWho wins?
Transactional send APIHTTP API (POST /v1/email/messages) with an error-as-value SDK.HTTP API (POST /v3/{domain}/messages), form-encoded, with SDKs in several languages.
SMTP relayNot offered to customers; HTTP API only.Customer-facing SMTP relay (STARTTLS, port 587) alongside the REST API.
Email address validationNot available today.Native bulk and real-time validation, with volume included on Scale.
Idempotency on sendIdempotency-Key header, reused across retries.No request-level idempotency key; recipient and webhook dedup only.
Stored message retentionStored message body available for 30 days.Stored bodies roughly 1 day (Foundation) to 7 days (Scale).
Cost at comparable volume$20/mo at 50K, $170/mo at 250K, $525/mo at 1M.$35/mo at 50K; higher at 250K and 1M, where senders move toward Enterprise quotes.
Dedicated IPs and poolsDedicated IPs and pools with roughly 30-day automated warm-up.Dedicated IPs with automatic 15-step warm-up; extra IPs $59/mo each.
SPF, DKIM, DMARC, BIMISPF, DKIM, and DMARC signed for verified domains, with optional BIMI.SPF, DKIM with automatic key rotation, DMARC and BIMI support.
Event webhooksTwelve event types with Standard Webhooks signing.Full event set, HMAC-signed, up to 3 URLs per event.
Channels beyond emailSMS and voice in the same API, plus a wider omnichannel platform.Email only; other channels are separate Sinch products and APIs.

The same send

The send call has a similar shape.

Sending one HTML email. Mailgun’s client is built from a form-data factory and sends per domain. Bird is a bearer-token call that returns a typed result. The fields map directly.

Mailgun

send.ts
import Mailgun from "mailgun.js";
import formData from "form-data";

const mg = new Mailgun(formData).client({
  username: "api",
  key: process.env.MAILGUN_API_KEY!,
});

await mg.messages.create("yourdomain.com", {
  from:    "onboarding@yourdomain.com",
  to:      ["customer@example.com"],
  subject: "Your March invoice",
  html:    "<p>Attached.</p>",
});

Bird

send.ts
import { BirdClient } from "@messagebird/sdk";

const bird = new BirdClient({ apiKey: process.env.BIRD_API_KEY! });

const { data, error } = await bird.email
  .send({
    from:    { email: "onboarding@yourdomain.com", name: "Acme" },
    to:      ["customer@example.com"],
    subject: "Your March invoice",
    html:    "<p>Attached.</p>",
  })
  .safe();

if (error) console.error(error.message);
else console.log(data.id);

Pricing at a glance

Mailgun’s 50K is its Foundation plan; the 250K and 1M figures are its Scale plan.

Emails / monthBirdMailgun
50,000$20/mo (Starter)$35/mo (Foundation)
250,000$170/mo (Premier)$215/mo (Scale)
1,000,000$525/mo (Premier)$700/mo (Scale)

Switching cost

Low.

The model lines up: domain authentication, a suppression list, and event webhooks per message state. The send fields map directly, and Mailgun’s delivered and failed events map to Bird’s email.delivered and email.bounced.

The work is re-pointing webhooks, importing the suppression list, and warming a dedicated IP if you have reputation to preserve. The migration guide covers each step.

Bird vs Mailgun: common questions

Is Bird a drop-in replacement for Mailgun?+
For the HTTP API, close to it: the send fields and event model map directly, so the code change is small. The exception is SMTP. Mailgun offers a customer SMTP relay and Bird does not, so apps that send over SMTP need to move to the HTTP API.
Is Bird cheaper than Mailgun?+
At every tier we compared, yes. Bird is $20/mo at 50K versus Mailgun’s $35 Foundation plan, and the gap widens at higher volumes where Mailgun adds per-message overage on top of its Scale base and steers large senders to Enterprise quotes.
Does Bird offer an SMTP relay like Mailgun?+
No. Bird exposes an HTTP send API and delivers over SMTP internally, but does not provide a customer-facing SMTP relay. If SMTP is a hard requirement, Mailgun covers it.
How does Bird’s deliverability compare to Mailgun’s?+
Both are strong. Bird’s email runs on SparkPost, the platform it acquired in 2021, which carries about 40% of the world’s commercial email, with dedicated IPs, automated warm-up, and SPF, DKIM, DMARC, and BIMI signing. Mailgun offers the same primitives with its own automation around DKIM and warm-up.
Does Bird have email validation like Mailgun?+
Not today. If bulk or real-time address validation is a requirement, Mailgun includes it directly.

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