head to head
Cloudflare Email Service vs Resend
Sending at $0.35 per 1,000 from the edge, still in beta, against a settled API at $20/mo for 50,000.
What matters for teams choosing a transactional API
Judged purely as an API. What the request contract guarantees on retry, how complete the webhook event coverage is, whether suppressions are readable and writable programmatically, and how much the message log retains when something needs debugging in production.
| Priority | Cloudflare Email Service | Resend |
|---|---|---|
| Idempotency keys | No | Yes |
| Webhooks | No | Yes |
| Event stream | Yes | Yes |
| Operating since | Not published | 2023 |
| Suppressions API | Yes | Yes |
| Best published rate per 1,000 | Tiers not published in comparable form | $0.35 |
| Batch sending | Yes | Yes |
| SDKs | node | node, python, go, ruby, php, rust, java, elixir, cli |
| 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. | Acceptable, but the deliverability track record is shorter than Postmark or SendGrid. Independent inbox-placement studies vary. Dedicated IPs are available on higher tiers. |
For a transactional workload running high-frequency programmatic sends where a missed delivery is a product failure, Resend takes every priority that separates them here (idempotency keys, webhook coverage, and SDK breadth), while Cloudflare Email Service matches it on the rest. That ordering reflects this audience. Weigh the same table differently and the answer changes.
Side by side
| Feature | Cloudflare Email Service | Resend |
|---|---|---|
| Webhooks | No | Yes |
| SDKs | node | node, python, go, ruby, php, rust, java, elixir, cli |
| 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. | Acceptable, but the deliverability track record is shorter than Postmark or SendGrid. Independent inbox-placement studies vary. Dedicated IPs are available on higher tiers. |
| Tagline | Free routing, programmable inbound via Workers, sending in beta. | Email API tightly coupled to React Email. |
| Free tier | Email Routing free; Email Workers on Workers Free plan | 3,000/mo permanent, capped at 100/day, one domain |
| Starts at | Sending: $0.35 per 1,000 messages (Workers Paid required, $5/mo) | $20/mo for 50,000 emails |
| Pricing model | pay-as-you-go | tiered |
| API | Yes | Yes |
| SMTP | No | Yes |
| Templates | none | react-email |
| React Email | No | Yes |
| Inbound | Yes | Yes |
| Multi-tenant | Yes | No |
| Idempotency | No | Yes |
| Dedicated IP | No | Yes |
| DX score | 8/10 | 8/10 |
| Best for | Domains already on Cloudflare that want free routing, programmable inbound, and a cheap sending API in one place. | Early-stage React or Next.js product teams sending under 50k/mo. |
Cloudflare Email Service
pros
- ›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
cons
- ›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
Resend
pros
- ›Idiomatic SDKs across major languages
- ›React Email integration is the smoothest of any provider
- ›Idempotency keys supported
- ›Clean dashboard and event log
cons
- ›Volume pricing is significantly higher than AWS SES at large volumes
- ›Founded 2023, so deliverability track record and incident history are still building
- ›No drag-and-drop template editor; non-React stacks get a thinner experience
- ›Free tier is capped at 100 sends a day, so a 3,000/mo allowance cannot absorb a launch spike
- ›January 2024 breach exposed email metadata, contacts, and encrypted API tokens for all users; message bodies were not reached
- ›Status page logged roughly ten incidents in the three weeks to 2026-08-01, mostly outside the sending path: dashboard, webhooks, domain verification, and automations
- ›Single-region historically; multi-region setup is newer
- ›Smaller support footprint than Twilio SendGrid or Sinch Mailgun