Skip to main content
Logo
Overview

Best Transactional Email API in 2026: Resend vs SendGrid vs Postmark vs SES vs Mailgun

June 22, 2026
9 min read

Every app sends email. Signup confirmations, password resets, receipts, the “someone mentioned you” notification — none of it is glamorous, but if a password reset lands in spam, you’ve got a support ticket and a churned user. So picking the service that pushes those messages out is one of those infrastructure decisions that feels trivial until it isn’t.

The reason this question is hot again in 2026: SendGrid, the default answer for a decade, retired its permanent free plan. What used to be “100 emails a day forever, no card” is now a 60-day trial that flips to a paid plan starting at $19.95/month. A lot of side projects and early-stage SaaS that quietly relied on that free tier suddenly have to re-shop.

I’ve wired up transactional email on more projects than I can count, migrated two of them off SendGrid this year alone, and made every dumb mistake at least once. Here’s how the five real options actually compare — on price, deliverability, and what it’s like to live with them day to day.

The five contenders

There are dozens of providers, but the field narrows fast once you want something a developer would actually choose:

  • Resend — the newcomer that ate a lot of SendGrid’s developer mindshare. React Email, clean API, great docs.
  • SendGrid (Twilio) — the incumbent. Huge, capable, increasingly enterprise-flavored, no longer free.
  • Postmark — the deliverability snob. Pricier, narrower, and the one I trust most for “this email absolutely must arrive.”
  • Amazon SES — the raw utility. Dirt cheap, zero hand-holding, you assemble the rest yourself.
  • Mailgun (Sinch) — the API-first veteran that sits between SES and the managed crowd.

Brevo, Loops, SMTP2GO, and a handful of others are worth a look depending on your use case, but these five cover the decision for most teams.

Real cost at 1K, 10K, and 100K emails

Pricing pages are designed to be hard to compare, so I normalized everything to monthly transactional volume. Prices below are as of June 2026 — always confirm on the provider’s pricing page before you commit, because this category reprices constantly.

Provider1,000 / mo10,000 / mo100,000 / mo
Amazon SES~$0.10~$1~$10
ResendFree$20 (Pro)$35 (Pro)
MailgunFree$15 (Basic)$90 (Scale)
Postmark$15 (Basic)$15 (Basic)~$177
SendGrid$19.95 (Essentials)$19.95varies (Pro)

A few things jump out.

SES isn’t in the same universe as everyone else on price. It’s a flat $0.10 per 1,000 emails, pay-as-you-go, no plan, no minimum. At 100K/month you’re paying ten bucks. At a million, a hundred bucks. Nothing managed comes close, and nothing will, because SES is essentially AWS reselling its own outbound mail plumbing.

Resend’s free tier is the genuinely useful one now that SendGrid’s is gone: 3,000 emails a month. The catch is a 100-emails-per-day cap, which is what actually pushes most people to upgrade — you can blow through 100 in a day during a launch while sitting nowhere near the 3,000 monthly ceiling. Pro starts at $20 and slides up to $35 as you approach 100K.

Postmark looks expensive at the top of the table, and it is — its free tier is a near-useless 100 emails a month, and overages run $1.80 per 1,000 on the entry plan. But “expensive” here buys the best inbox placement in the group. More on that below.

SendGrid’s number is the asterisk. Essentials starts at $19.95, the Pro tier scales with dedicated IPs and higher volume, and the real cost depends heavily on which add-ons you turn on. The point is that the floor is no longer zero.

The SES break-even, and why most people get it wrong

The obvious takeaway from that table is “just use SES, it’s basically free.” And the math is real — but the math leaves out your time.

SES gives you an SMTP endpoint and an API. That’s it. There’s no template editor worth using, no built-in suppression dashboard you’d want to show a non-engineer, no friendly bounce/complaint UI. You wire up DKIM, SPF, and a custom MAIL FROM yourself. You handle bounce and complaint notifications via SNS, parse them, and maintain your own suppression list (or lean on the account-level one and hope). You request a sending-limit increase and get out of the sandbox before you can email arbitrary recipients. Warm-up, reputation monitoring, the lot — yours.

That’s a day or two of setup and a steady trickle of maintenance. For a solo dev who knows AWS, fine. For a three-person startup that wants to ship features, paying Resend $20/month to make all of that disappear is the obvious call.

My rough rule of thumb: below ~200,000 emails a month, the engineering overhead of SES rarely pays for itself versus a managed service. Above that, the savings get large enough that building the missing pieces — or putting a layer like a notification service on top of SES — starts to make sense. A managed provider at 1M emails/month can run several hundred dollars; SES runs ~$100 plus whatever a dedicated IP costs ($24.95/month standard, or $15/month for a managed dedicated IP). The gap widens from there.

If you’re already deep in AWS and comfortable wiring up SNS and CloudWatch, that break-even shifts lower. If email infrastructure is a distraction from your actual product, it shifts higher. Be honest with yourself about which one you are.

Deliverability is the thing nobody benchmarks until it’s too late

Cost is easy to compare. Deliverability is the part that actually matters and the part you can’t see from the pricing page.

The mechanism that wrecks most newcomers is the shared IP pool. On entry-level plans, you’re sending from IPs shared with hundreds of other customers. When one of them runs a sloppy campaign and gets flagged, your transactional mail inherits some of that reputation damage. You did nothing wrong and your reset emails start landing in spam.

This is where Postmark earns its premium. It deliberately separates transactional and bulk/marketing streams onto different infrastructure, runs a tightly policed pool, and is aggressive about kicking off senders who tank reputation. The result is consistently excellent inbox placement for transactional mail. If your business genuinely breaks when an email doesn’t arrive — think 2FA codes, payment receipts, anything legal — Postmark is what I reach for, and I’ll pay the premium without flinching.

Resend has been solid in my experience, and SendGrid and Mailgun are perfectly capable once you’re on a plan with a dedicated IP and you’ve warmed it up properly. SES’s deliverability is genuinely good — Amazon’s IP reputation is strong — but the warm-up and reputation work fall on you, and a dedicated IP that you neglect is worse than a well-managed shared pool.

One rule that applies to all of them: separate your transactional and marketing sends. Different subdomains, ideally different providers. The moment your “20% off” blast shares a sending reputation with your password resets, you’re one bad campaign away from a deliverability incident on the emails you can’t afford to lose.

What it’s like to actually build on each

Pricing and deliverability decide the shortlist. Developer experience decides which one you’ll still be happy with in six months.

Resend sets the bar here, and it’s not close. The API is clean, the dashboard is genuinely pleasant, and React Email — its companion library — lets you build templates as React components instead of fighting MJML or hand-written HTML tables. If your stack is JavaScript or TypeScript, this is the most enjoyable email integration on the market right now. The SDKs for other languages exist but the React story is the headline.

Postmark’s API is older but rock-solid, with excellent message-stream separation, fast webhooks, and the best message-activity log in the group for debugging “did this email actually send” questions. Less flashy than Resend, more dependable feeling.

SendGrid does everything and shows it. The API surface is enormous, the template editor is powerful, and the marketing-campaign side is fully featured. The flip side is that it feels heavy — more concepts, more dashboard, more enterprise. You feel the Twilio acquisition in the surface area.

Mailgun is API-first and developer-respectable, with good logging, validation, and routing features. It sits in a slightly awkward middle: pricier than SES, less loved than Resend. It shines if you need inbound email parsing or email validation as first-class features.

SES has no DX to speak of beyond a competent SDK, because DX isn’t what it sells. You’re buying transport. Everything pleasant about the others is something you’d build yourself on top of SES.

Pick by use case

Enough hedging — here’s what I’d actually do.

Solo project or early startup, JS/TS stack: Resend. The free tier covers you while you’re small, React Email is a joy, and Pro at $20 is painless when you outgrow it. This is the new default answer that SendGrid used to be.

Deliverability is mission-critical: Postmark. 2FA codes, receipts, anything where a missed email is a real incident. Pay the premium, separate your streams, sleep well.

High volume and cost-sensitive, with AWS skills on the team: SES, especially above ~200K/month. Budget the engineering time honestly, or put a thin service layer on top to recover the missing template and suppression features. Pairs naturally with the rest of your AWS bill — same logic as choosing infrastructure in the storage and auth layers, where the cheap-but-bring-your-own option wins once you have the in-house competence.

You need transactional and marketing in one place: SendGrid or Mailgun. Both do bulk campaigns alongside transactional, which Resend and Postmark intentionally don’t lean into. Just keep the sending reputations separated even within one provider.

Migrating off SendGrid right now because the free tier died: Resend if you want the easiest landing, SES if you want the cheapest. Don’t reflexively re-up on a paid SendGrid plan just because switching feels like work — the migration is usually an afternoon, mostly DNS records and swapping an SDK call.

One thing to try this week

Whatever you land on, set up a second sending domain for marketing before you send a single campaign — even if you’re nowhere near needing it yet. It’s a few DNS records now and an avoided deliverability crisis later. The teams that get burned are always the ones who bolted marketing onto their transactional domain “just for this one launch” and never untangled it.

And if you’re choosing fresh today: try Resend’s free tier for a weekend, send yourself a few test emails, and check where they land across Gmail, Outlook, and a corporate inbox if you have access to one. The inbox-placement reality you observe in ten minutes will tell you more than any pricing table — this one included.