Cloudflare Email Service vs Amazon SES
Routing bundled with Workers at the edge against raw scale priced per thousand.
What matters for developers picking email infrastructure
The question here is which one a backend engineer would rather operate. That means SDK depth in the language already in use, whether a retry can safely be replayed, how much the event log tells you when a customer says the email never arrived, and whether the pricing curve stays sane as volume grows.
| Priority | Cloudflare Email Service | Amazon SES |
|---|---|---|
| DX score | 8/10 | 4/10 |
| SDKs | node | node, python, go, ruby, php, java, rust, dotnet |
| Idempotency keys | No | No |
| Operating since | Not published | 2011 |
| Event stream | Yes | Yes |
| Best published rate per 1,000 | Tiers not published in comparable form | $0.10 |
| Webhooks | No | No |
| Deliverability | Free Email Routing forwards reliably and inherits Cloudflare's operational maturity. The new Sending API has no track record; treat any deliverability claim as unverified until public history appears. | Inherits AWS IP reputation. Generally good once warmed and configured, but the sender does the warming and complaint handling. |
| Free tier | Email Routing free; Email Workers on Workers Free plan | Up to $200 in AWS Free Tier credits for new accounts |
For a developer-owned stack running password resets, receipts, and magic links shipped from application code, the split is even: Cloudflare Email Service takes developer experience, Amazon SES takes SDK breadth. Neither pulls ahead on this audience's priorities. On free tier, Cloudflare Email Service offers Email Routing free; Email Workers on Workers Free plan against Up to $200 in AWS Free Tier credits for new accounts from Amazon SES. That ordering reflects this audience. Weigh the same table differently and the answer changes.
Side by side
| Feature | Cloudflare Email Service | Amazon SES |
|---|---|---|
| DX score | 8/10 | 4/10 |
| SDKs | node | node, python, go, ruby, php, java, rust, dotnet |
| Webhooks | No | No |
| Deliverability | Free Email Routing forwards reliably and inherits Cloudflare's operational maturity. The new Sending API has no track record; treat any deliverability claim as unverified until public history appears. | Inherits AWS IP reputation. Generally good once warmed and configured, but the sender does the warming and complaint handling. |
| Free tier | Email Routing free; Email Workers on Workers Free plan | Up to $200 in AWS Free Tier credits for new accounts |
| Tagline | Free routing, programmable inbound via Workers, sending in beta. | Cheapest at scale, most setup work. |
| Starts at | Sending: $0.35 per 1,000 messages (Workers Paid required, $5/mo) | $0.10 per 1,000 emails |
| Pricing model | pay-as-you-go | pay-as-you-go |
| API | Yes | Yes |
| SMTP | No | Yes |
| Templates | none | basic |
| React Email | No | No |
| Inbound | Yes | Yes |
| Multi-tenant | Yes | No |
| Idempotency | No | No |
| Dedicated IP | No | Yes |
| Best for | Domains already on Cloudflare that want free routing, programmable inbound, and a cheap sending API in one place. | High-volume senders with AWS infrastructure, cost-optimized workloads, and teams comfortable wiring SNS/Lambda/EventBridge for events. |
Cloudflare Email Service
- ›Email Routing is free, including catch-all addresses and forwarding to any inbox
- ›Email Workers let you process inbound email in TypeScript with no extra infrastructure
- ›Sending priced at $0.35 per 1,000 (about a third of most managed providers)
- ›Native fit when DNS, Workers, and KV/D1 already live on Cloudflare
- ›No separate API keys; auth is via Cloudflare API tokens
- ›Email Sending is in public beta; no deliverability history yet
- ›No SMTP relay; everything routes through Workers or the REST API
- ›Templates and event-log debugging are minimal compared to Postmark or Mailgun
- ›Tightly coupled to the Cloudflare ecosystem; not portable
- ›Best-of-breed providers will outpace it on pure sending features for some time
Amazon SES
- ›Cheapest cost per email, by a large margin at scale
- ›Built for billions: handles the largest sender workloads in the world
- ›Multi-region (us-east-1, us-west-2, eu-west-1, ap-south-1, and more) with regional reputation pools
- ›Native integration with Lambda, SNS, SQS, EventBridge, and CloudWatch
- ›Dedicated IPs and managed dedicated IP pools
- ›VPC endpoints for sending from private networks
- ›Inbound receiving with S3 and Lambda for fully serverless email pipelines
- ›SDKs in every language AWS supports, from Rust to .NET
- ›IAM-based authentication; no separate API keys to manage
- ›Sandbox mode requires manual approval before sending to non-verified recipients
- ›No native webhooks; events route through SNS and you write your own glue
- ›No dashboard for message-level debugging
- ›Bounce and complaint handling is the sender's responsibility
- ›Templates are minimal
- ›Operational overhead is real if you are not already on AWS