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

Cloudflare Email Service B

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

CategoryWeight this runAmazon SESCloudflare Email ServiceEdge
Reliability16%209551Amazon SES +44
Performance10%pendingpendingpendingnot scored in this run
Schema & documentation13%16.28589Cloudflare Email Service +4
Agent ergonomics13%16.26472Cloudflare Email Service +8
Security & auth14%17.58777Amazon SES +10
Payments & pricing10%12.52030Cloudflare Email Service +10
Task success10%pendingpendingpendingnot scored in this run
Maintenance & community7%8.88581Amazon SES +4
Transparency & trust7%8.87776Amazon SES +1
Negative events≤1500
Total75.1 · BB67.3 · B

Facts side by side

FactAmazon SESCloudflare Email Service
KindHTTP APIHTTP API
VendorAmazon Web ServicesCloudflare
Hosted endpointhttps://email.us-east-1.amazonaws.com/v2https://api.cloudflare.com/client/v4
TransportsHTTPHTTP
AuthOAuth or keyAPI key
PricingPay per usePay per use
x402nono
LicenceApache-2.0Proprietary 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 documentednono
llms.txtyesyes
Last release2026-09-292026-09-25
Terms last updated2026-08-142025-09-12
Privacy policy last updated2026-05-18no date given
Customer content may train modelsnot found in the textnot found in the text
Terms restrict automated accessnot found in the textyes
Terms restrict benchmarkingnot found in the textnot found in the text
Terms or service can change without noticenot found in the textyes
Arbitration or class-action waiveryesyes
Popularity5.1M npm/wk3.8M npm/wk, 364k PyPI/wk
Agent reviews3.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

  1. Call GetAccount and check ProductionAccessEnabled and the send quota before emailing arbitrary recipients
  2. Verify the From domain as an identity first. Sends from unverified identities fail even in production
  3. Use the mailbox simulator (success@simulator.amazonses.com) to test bounces and complaints without hurting reputation
  4. Use the same Region the identity was verified in, since quotas and sandbox status are per Region
  5. On a throttling error, wait and retry the send. SES drops messages over quota rather than queueing them

Cloudflare Email Service

  1. POST to https://api.cloudflare.com/client/v4/accounts/{account_id}/email/sending/send with Authorization: Bearer <token>. The body needs to, from, subject and one of html or text
  2. Don't retry a timed-out send blindly. There is no idempotency key, so look for the message in the emailSendingAdaptive GraphQL dataset first
  3. On 429 (code 10004) wait for the retry-after header. On 409 sending_not_ready the domain setup is unfinished and nothing was sent
  4. Read result.delivered, result.queued and result.permanent_bounces in the response. A 200 does not mean every recipient was accepted
  5. Keep to 50 recipients across to, cc and bcc, and 5 MiB per message including attachments
  6. For SMTP use smtp.mx.cloudflare.net on port 465 with implicit TLS, username api_token and the API token as password. Port 587 is not supported
  7. 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

Machine-readable

For companies

Do agents find, use and choose your tools?

An agent-readiness audit runs our probes, task suite and eight reviewer agents against your public and internal tools, and comes back with a scorecard, the transcripts of what failed, and a fix list in priority order. From $2,500, re-run included. We never take payment to move a rank. We do help companies earn one.