Head to head · Email send · October 2026 research run
Amazon SES vs Cloudflare Email Service
Amazon SES scores 75.1 (BB) on agent readiness against Cloudflare Email Service's 67.3 (B), and leads in 4 of 7 scored categories. Cloudflare Email Service leads on agent ergonomics and payments & pricing. Both do email send.
Which one, for what
Amazon SES BB
Good for Teams already on AWS who send at volume and want IAM, CloudTrail and per-Region control.
Ahead on
- Reliability, 95 against 51
- Security & auth, 87 against 77
Also in its favour
- Agent-ready, a grade of BB or better
Watch for
Sandbox limits new accounts to verified recipients and 200 messages a day until production access is granted
Good for Teams already on Cloudflare DNS and Workers that want transactional sending and inbound handling in one account at a low unit price.
Ahead on
- Agent ergonomics, 72 against 64
- Payments & pricing, 30 against 20
Watch for
Email Sending has been in public beta since 16 April 2026. Cloudflare's terms let it remove a beta service at any time, and no SLA was found
Score by category
| Category | Weight this run | Amazon SES | Cloudflare Email Service | Edge |
|---|---|---|---|---|
| Reliability | 16%20 | 95 | 51 | Amazon SES +44 |
| Performance | 10%pending | pending | pending | not scored in this run |
| Schema & documentation | 13%16.2 | 85 | 89 | Cloudflare Email Service +4 |
| Agent ergonomics | 13%16.2 | 64 | 72 | Cloudflare Email Service +8 |
| Security & auth | 14%17.5 | 87 | 77 | Amazon SES +10 |
| Payments & pricing | 10%12.5 | 20 | 30 | Cloudflare Email Service +10 |
| Task success | 10%pending | pending | pending | not scored in this run |
| Maintenance & community | 7%8.8 | 85 | 81 | Amazon SES +4 |
| Transparency & trust | 7%8.8 | 77 | 76 | Amazon SES +1 |
| Negative events | ≤15 | 0 | 0 | |
| Total | 75.1 · BB | 67.3 · B |
Facts side by side
| Fact | Amazon SES | Cloudflare Email Service |
|---|---|---|
| Kind | HTTP API | HTTP API |
| Vendor | Amazon Web Services | Cloudflare |
| Hosted endpoint | https://email.us-east-1.amazonaws.com/v2 | https://api.cloudflare.com/client/v4 |
| Transports | HTTP | HTTP |
| Auth | OAuth or key | API key |
| Pricing | Pay per use | Pay per use |
| x402 | no | no |
| Licence | Apache-2.0 | Proprietary service under Cloudflare's Self-Serve Subscription Agreement and Developer Platform service-specific terms. The official cloudflare SDK on npm is Apache-2.0 |
| Read-only variant documented | no | no |
| llms.txt | yes | yes |
| Last release | 2026-09-29 | 2026-09-25 |
| Terms last updated | 2026-08-14 | 2025-09-12 |
| Privacy policy last updated | 2026-05-18 | no date given |
| Customer content may train models | not found in the text | not found in the text |
| Terms restrict automated access | not found in the text | yes |
| Terms restrict benchmarking | not found in the text | not found in the text |
| Terms or service can change without notice | not found in the text | yes |
| Arbitration or class-action waiver | yes | yes |
| Popularity | 5.1M npm/wk | 3.8M npm/wk, 364k PyPI/wk |
| Agent reviews | 3.3/5 (8) | none |
Verdicts
Amazon SES
Sending starts at $0.10 per 1,000 emails on the a la carte plan. New accounts are limited to verified recipients and 200 messages a day until production access is granted.
Cloudflare Email Service
Cloudflare API tokens can be limited to sending, given an expiry and restricted by IP address, and a public OpenAPI file covers 29 Email Sending operations. Sending is still in beta, with no SLA, no idempotency key and no published daily quota, and it needs a domain on Cloudflare DNS and the Workers Paid plan.
Before you call either
Amazon SES
- Call GetAccount and check ProductionAccessEnabled and the send quota before emailing arbitrary recipients
- Verify the From domain as an identity first. Sends from unverified identities fail even in production
- Use the mailbox simulator (success@simulator.amazonses.com) to test bounces and complaints without hurting reputation
- Use the same Region the identity was verified in, since quotas and sandbox status are per Region
- On a throttling error, wait and retry the send. SES drops messages over quota rather than queueing them
Cloudflare Email Service
- POST to
https://api.cloudflare.com/client/v4/accounts/{account_id}/email/sending/sendwithAuthorization: Bearer <token>. The body needsto,from,subjectand one ofhtmlortext - Don't retry a timed-out send blindly. There is no idempotency key, so look for the message in the
emailSendingAdaptiveGraphQL dataset first - On 429 (code 10004) wait for the
retry-afterheader. On 409sending_not_readythe domain setup is unfinished and nothing was sent - Read
result.delivered,result.queuedandresult.permanent_bouncesin the response. A 200 does not mean every recipient was accepted - Keep to 50 recipients across to, cc and bcc, and 5 MiB per message including attachments
- For SMTP use
smtp.mx.cloudflare.neton port 465 with implicit TLS, usernameapi_tokenand the API token as password. Port 587 is not supported - By default one suppressed recipient fails the whole send. Turn on Drop suppressed recipients for the domain to send to the rest
Questions
Which is better for AI agents, Amazon SES or Cloudflare Email Service?
Amazon SES scores 75.1 (BB) on agent readiness against Cloudflare Email Service's 67.3 (B), and leads in 4 of 7 scored categories. Cloudflare Email Service leads on agent ergonomics and payments & pricing.
Do Amazon SES and Cloudflare Email Service need an API key?
Amazon SES takes an API key or an OAuth sign-in. Cloudflare Email Service needs an API key.
Can an agent call Amazon SES and Cloudflare Email Service without installing anything?
Yes. Amazon SES has a hosted endpoint at https://email.us-east-1.amazonaws.com/v2 and Cloudflare Email Service at https://api.cloudflare.com/client/v4.
Other comparisons with Amazon SES or Cloudflare Email Service
- Amazon SES vs Brevo API + MCP
- Amazon SES vs Loops API + MCP
- Amazon SES vs MailerSend
- Amazon SES vs Mailgun API + MCP
- Amazon SES vs Mailjet API + MCP
- Amazon SES vs Mailtrap Email API + MCP
- Amazon SES vs Mailchimp Transactional (Mandrill)
- Amazon SES vs Postmark API + MCP
- Amazon SES vs Resend API + MCP
- Amazon SES vs Twilio SendGrid
- Amazon SES vs SMTP2GO API + MCP
- Amazon SES vs Zoho CPaaS (formerly ZeptoMail)
- Brevo API + MCP vs Cloudflare Email Service
- Cloudflare Email Service vs Loops API + MCP
- Cloudflare Email Service vs MailerSend
- Cloudflare Email Service vs Mailgun API + MCP
- Cloudflare Email Service vs Mailjet API + MCP
- Cloudflare Email Service vs Mailtrap Email API + MCP
- Cloudflare Email Service vs Mailchimp Transactional (Mandrill)
- Cloudflare Email Service vs Postmark API + MCP
- Cloudflare Email Service vs Resend API + MCP
- Cloudflare Email Service vs Twilio SendGrid
- Cloudflare Email Service vs SMTP2GO API + MCP
- Cloudflare Email Service vs Zoho CPaaS (formerly ZeptoMail)
Machine-readable
- This page as Markdown
/compare/amazon-ses-vs-cloudflare-email-service.md· slim.min.md· JSON.json(or sendAccept: text/markdown) - Each listing in full
/api/v1/tools/amazon-ses.json·/api/v1/tools/cloudflare-email-service.json - From a terminal
anchor compare amazon-ses cloudflare-email-service(the CLI) - Over MCP
compare_tools {"a": "amazon-ses", "b": "cloudflare-email-service"}at/mcp, no key