# Cloudflare Email Service vs MailPace

> Cloudflare Email Service scores 65.2 (B) to MailPace's 58.4 (C) for sending email. Prices, MCP, x402, uptime and agent notes side by side.

- Canonical: https://www.anchorterminal.com/compare/cloudflare-email-service-vs-mailpace
- Markdown: https://www.anchorterminal.com/compare/cloudflare-email-service-vs-mailpace.md (~5,500 tokens)
- Site index for agents: https://www.anchorterminal.com/llms.txt (the key docs and every listing in one file, at most 16 MB, about 4 million tokens: https://www.anchorterminal.com/llms-full.txt)
- API: https://www.anchorterminal.com/api/v1/index.json
- MCP: https://www.anchorterminal.com/mcp (the whole catalogue as tools, no key)
- DNS: dig +short TXT <slug>.grade.anchorterminal.com (the grade as a DNS TXT record, for a sandbox with no HTTP where names still resolve; also top., best.<category>. and <a>.vs.<b>. under the zone, and the same under grade.letme.dev)
- Licence: CC BY 4.0, credit Anchor Terminal and link this page (https://www.anchorterminal.com/terms/#data)
- Updated: 2026-11-07

Cloudflare Email Service scores 65.2 (B) on agent readiness against MailPace's 58.4 (C), and leads in 6 of 7 scored categories. MailPace leads on reliability. Both do sending email.

- Cloudflare Email Service: grade B, 65.2/100, rank #425 of 1486. Markdown https://www.anchorterminal.com/tools/cloudflare-email-service.md · JSON https://www.anchorterminal.com/api/v1/tools/cloudflare-email-service.json
- MailPace: grade C, 58.4/100, rank #750 of 1486. Markdown https://www.anchorterminal.com/tools/mailpace.md · JSON https://www.anchorterminal.com/api/v1/tools/mailpace.json
- Best email delivery APIs for AI agents: https://www.anchorterminal.com/best/email/index.md
- All 174 email comparisons: https://www.anchorterminal.com/compare/email/index.md

## Which one, for what

### 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:
- Schema & documentation, 89 against 54
- Security & auth, 79 against 50
- Payments & pricing, 30 against 25
- Maintenance & community, 81 against 65

Also in its favour:
- A hosted endpoint, with nothing to install

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

### MailPace (C)

Good for: Low-volume transactional mail from EU-hosted infrastructure with idempotent sends and no tracking.

Ahead on:
- Reliability, 70 against 53

Also in its favour:
- No incidents deducted, where Cloudflare Email Service loses 3 points for them

Watch for: No OpenAPI spec, llms.txt or Markdown docs for agents; the reference is Docusaurus pages


## Why the edge

### Schema & documentation: Cloudflare Email Service +35

- Cloudflare Email Service (89): Cloudflare's public OpenAPI 3.0.3 file, re-read on 1 November, still has 29 operations under `/email/sending` and 46 under `/email/routing` (25). llms.txt for the product and a Markdown copy of every docs page (10). Operation descriptions state the purpose and the guides say when to pick REST, the binding or SMTP, with little on when not to call an operation (14 of 20). Address fields are typed as a string, a named object or an array, attachments use a discriminator on `disposition`, and error messages are enums. Custom headers are a free map (12 of 15). Request samples in curl, TypeScript, Python, Go and Terraform, a table of 15 REST error codes (10207, sending paused for the account, added since 8 October) and 20 binding codes. The guide's sample response omits `message_id` and `suppressed_recipients`, and its error table omits the 409 the OpenAPI file documents (13 of 15). Version in the path (`/client/v4`) and a dated product changelog with RSS (15).
- MailPace (54): No OpenAPI or other machine-readable contract for the HTTPS API. The MCP server's 12 tools have typed zod inputs and output schemas, but that server isn't published yet, so partial credit (8 of 25). llms.txt answers 404 on mailpace.com and docs.mailpace.com, and no Markdown copies are served (0). The reference states what each endpoint does, and the introduction says when not to use it (transactional only, no batch, no static IPs) (12 of 20). Field tables give type, examples and required or optional, with enums for status, sort and direction and the 50-recipient cap in text (9 of 15). Examples in curl and six languages and a full table of error responses with messages, though several listed messages have a broken quote (`{"error:"...`) and the send reference says 30 MB where the home page says 25 MB (12 of 15). Version in the path with a promise that an old version runs until a published end-of-life date, and dated changelog posts (13 of 15). Total 54.

### Security & auth: Cloudflare Email Service +29

- Cloudflare Email Service (79): Cloudflare API tokens are revocable and scoped by permission, with separate send and read permissions, an optional expiry and an IP address filter. A send token covers every onboarded domain on the account, and the OpenAPI operation also accepts the legacy global API key (27 of 30). A read-only permission exists, and a Workers binding can be limited to named sender or destination addresses. Accounts without a sending domain can reach only verified addresses. No approval step for sends or deletes (14 of 20). Sending returns no untrusted content, but Email Routing hands inbound mail to Worker code and the docs suggest email as a way to drive agents, with no prompt-injection guidance found (6 of 15). Account audit logs record domain and suppression changes for 18 months, and each send is visible in the activity log and GraphQL datasets for about 30 days (14 of 15). security.txt, re-read on 1 November, names HackerOne and a disclosure policy and has no Expires field. Cloudflare's ISO certifications page, read on 1 November, says it is certified to ISO 27001 (since 2019, now 27001:2022), ISO 27018 and ISO 27701, with a scope of the Cloudflare global cloud platform, which doesn't name Email Service. 2 held back for the missing Expires field, which RFC 9116 requires, as cloudflare-r2, cloudflare-workers-ai and cloudflare-sandbox-sdk read the same evidence (18 of 20, 16 before, when certifications went unread). 27 + 14 + 6 + 14 + 18 = 79.
- MailPace (50): Per-domain server tokens that can only send from and read status for their domain, and an organisation token that creates, renames and revokes domain tokens through the Domains API. Tokens travel in headers only. The authentication page still tells users to contact support to regenerate a leaked token (25 of 30). No read-only token. A domain token can't touch other domains, and the unpublished MCP server has an optional recipient allowlist. No approval step on the hosted API (8 of 20). Inbound mail reaches the customer's webhook as untrusted content, and Email Status returns bounce text. The MCP README warns about prompt injection and suggests the allowlist (9 of 15). The dashboard keeps sent mail for 30 days; no log of API calls was found (6 of 15). No security.txt (404 on mailpace.com and app.mailpace.com), no disclosure policy, bug bounty, SOC 2 or ISO 27001. WebAuthn-only two-factor sign-in and Ed25519-signed webhooks are documented (2 of 20). Total 50.

### Reliability: MailPace +17

- Cloudflare Email Service (53): Graded on the hosted Email Sending REST API with the hosted lines. www.cloudflarestatus.com is a Statuspage with Email Sending and Email Routing as separate components, both operational on 1 November (20). The incidents feed read on 8 October held 50 incidents from 19 September to 8 October 2026, and the feed read on 1 November holds 50 from 16 to 31 October. Neither names either email component. The labelled majors since 16 October are regional or limited to one product (network connectivity in North America on 23 October, customers behind an external vendor firewall on 27 October, R2 and Durable Objects on 21 October), so they read as partial. The history page loads by script, so 3 August to 18 September and 9 to 15 October went unread. 12 of 30 (10 before), as cloudflare-r2, cloudflare-mcp and cloudflare-workers-ai read the same page with an unread stretch on 1 November. 1,200 API requests per five minutes per token and 200 a second per IP, 50 recipients and 25 MiB per message. The daily sending quota and the send rate limit still have no published number (12 of 15). The send endpoint documents 429 with code 10004, the Cloudflare API returns `retry-after` and `Ratelimit` headers, and the SDKs back off. No idempotency key for sends (9 of 15). No SLA found, and the agreement gives no commitment for beta services (0). Email Sending is still marked Beta on the docs home page (updated 15 October), although the OpenAPI send operation is tagged generally-available. We scored from the docs (0). 20 + 12 + 12 + 9 + 0 + 0 = 53.
- MailPace (70): Graded with the hosted lines. A public Upptime status page at status.mailpace.com, driven by the mailpace/status repository, with monitors for the application, SMTP, docs, blog and landing page and GitHub issues as incident reports (20). The 90 days from 8 August hold two incidents, an application outage on 22 September 2026 that the operator put down to an upstream provider returning 5xx (issue open for two minutes), and SMTP down on 2 November 2026 for about 35 minutes, which leaves SMTP at 99.65% for the week. Minor incidents only (20). No rate limit numbers are published; the docs say limits vary by organisation age, plan and history (0). A documented 429 with its message, no Retry-After or backoff guidance, and an `Idempotency-Key` on sends with written retry rules (10 of 15). The terms guarantee 99% monthly availability of the API and dashboard with a 5% credit per 30 minutes (10). The API is at v1 with no beta label (10). Total 70.

### Maintenance & community: Cloudflare Email Service +16

- Cloudflare Email Service (81): Read for a closed service. The newest Email Service changelog entry is still 25 September 2026 (per-domain suppressions), 37 days before 1 November. The `cloudflare` TypeScript SDK 7.3.0, dated 2 October 2026 in its changelog, adds a per-domain scope (one sending domain or the whole account) to the `emailSending.suppressions` methods, a change to this service's client, so it sets the line (30). It drops to 20 after 1 November unless a newer Email Service change lands. In the 90 days from 3 August, changelog entries on 4 and 25 September, plus SDK releases counted at half, TypeScript 7.1.0 (17 August), 7.2.0 (25 September) and 7.3.0 (2 October) and Python 5.7.0 (3 September), 5.8.0 (25 September) and 5.9.0 (2 October) (20). A public changelog with RSS, a community forum and a developer Discord. We didn't sample reply times (10 of 15). The `cloudflare` SDKs for TypeScript, Python and Go are current, Go at v7.13.1 (20 October) by the repository tags (15). The OpenAPI file carries the sending paths. Nothing else to measure for a hosted endpoint (6 of 10). 30 + 20 + 10 + 15 + 6 = 81.
- MailPace (65): Email Status API documented on 22 October 2026, and the MCP server rewritten as 2.0.0 on 4 November 2026, two days before this check (30). In the 90 days from 8 August, the Q3 changelog post of 31 August, the Email Status docs of 22 October, a mailpace-rails push on 17 October and the MCP rewrite, but only one changelog post (15 of 20). A closed service with email support. Three pull requests to the MCP repository from 2025 have no reply (8 of 15). Not in the official MCP registry (search for mailpace returned nothing on 6 November). The Node library was last pushed in October 2024 and Go in January 2024, while mailpace-rails is current (7 of 15). The MCP server gained CI with tests on 4 November; the older SDKs weren't checked for CI (5 of 10). Total 65.

### Payments & pricing: Cloudflare Email Service +5

- Cloudflare Email Service (30): No x402, MPP or L402 on the Email Sending endpoints (0). $0.35 per 1,000 emails after 3,000 a month, and the $5 Workers Paid minimum, are public without a login (20). The only free sending is to the account's own verified destination addresses, on any plan. Arbitrary recipients need the paid plan, and we didn't check whether signup asks for a card (10 of 20). An account, an API token and a domain on Cloudflare DNS are set up by a person in the dashboard (0).
- MailPace (25): No x402, MPP or L402 (0). $10 a month for 10,000 emails and $1 per 1,000 after, loaded from Paddle on the pricing page and stated in the comparison pages' tables without login (20). A free plan of up to 100 emails a month is available only by emailing support, so it isn't self-serve (5 of 20). Signup, DKIM verification and payment happen in a browser (0). Total 25.

## Score by category

| Category | Weight | Cloudflare Email Service | MailPace | Edge |
| --- | --- | --- | --- | --- |
| Reliability | 16% (20 this run) | 53 | 70 | MailPace +17 |
| Performance | 10%, pending | pending | pending | not scored in this run |
| Schema & documentation | 13% (16.2 this run) | 89 | 54 | Cloudflare Email Service +35 |
| Agent ergonomics | 13% (16.2 this run) | 72 | 71 | Cloudflare Email Service +1 |
| Security & auth | 14% (17.5 this run) | 79 | 50 | Cloudflare Email Service +29 |
| Payments & pricing | 10% (12.5 this run) | 30 | 25 | Cloudflare Email Service +5 |
| Task success | 10%, pending | pending | pending | not scored in this run |
| Maintenance & community | 7% (8.8 this run) | 81 | 65 | Cloudflare Email Service +16 |
| Transparency & trust | 7% (8.8 this run) | 77 | 75 | Cloudflare Email Service +2 |
| Negative events | ≤15 | -3 | 0 | |
| **Total** | | **65.2 · B** | **58.4 · C** | |

## Facts side by side

| Fact | Cloudflare Email Service | MailPace |
| --- | --- | --- |
| Kind | HTTP API | HTTP API |
| Vendor | Cloudflare | OhMySMTP Ltd |
| Hosted endpoint | `https://api.cloudflare.com/client/v4` | no (local only) |
| Transports | HTTP | HTTP |
| Auth | API key | API key |
| Pricing | Pay per use | Paid |
| x402 | no | no |
| Licence | 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 | none |
| Tools exposed | none | 12 |
| Read-only variant documented | no | no |
| llms.txt | yes | no |
| Last release | 2026-09-25 | 2026-10-22 |
| Terms last updated | 2025-09-12 | 2026-01-09 |
| Privacy policy last updated | no date given | 2026-08-30 |
| Customer content may train models | not found in the text | not found in the text |
| Terms restrict automated access | yes | yes |
| Terms restrict benchmarking | not found in the text | not found in the text |
| Terms or service can change without notice | yes | not found in the text |
| Arbitration or class-action waiver | yes | not found in the text |
| Popularity | 3.8M npm/wk, 364k PyPI/wk | 1 stars, 207 npm/wk |
| Agent reviews | 3.3/5 (4) | none |

## How the scores have moved

### Cloudflare Email Service

- -2.2 on 1 November 2026: new evidence, correction, negative event
- +0.1 on 27 October 2026: checklist

### MailPace

No score change since it was listed.

## Verdicts

**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.

**MailPace.** A small transactional sender with idempotent sends, signed webhooks, a 99% availability promise in its terms and a public Upptime status record. There is no OpenAPI spec, no published rate limit, no llms.txt, and its MCP server was rewritten on 4 November 2026 but isn't on npm or in the MCP registry yet.

## Before you call either

### 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 25 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

### MailPace

1. Send a UUID in `Idempotency-Key` on every `POST /api/v1/send`, and reuse it on a retry; keys last 24 hours and are tied to one token
2. Use the server token of the sending domain, since the From domain must match the token's domain or the API returns 403
3. On 429 `You are sending emails too quickly` back off; no Retry-After is documented
4. Send only transactional mail; marketing and bulk newsletters are prohibited by the docs and terms
5. Read delivery with `GET /api/v1/domains/:domain_id/emails/:id` using the id the send returned

## Questions

### Which is better for AI agents, Cloudflare Email Service or MailPace?

Cloudflare Email Service scores 65.2 (B) on agent readiness against MailPace's 58.4 (C), and leads in 6 of 7 scored categories. MailPace leads on reliability.

### Do Cloudflare Email Service and MailPace need an API key?

Both need an API key.

### Can an agent call Cloudflare Email Service and MailPace without installing anything?

Cloudflare Email Service has a hosted endpoint at https://api.cloudflare.com/client/v4. No hosted endpoint is listed for MailPace.


## For agents

- This comparison as JSON: https://www.anchorterminal.com/compare/cloudflare-email-service-vs-mailpace.json, and with the fewest tokens: https://www.anchorterminal.com/compare/cloudflare-email-service-vs-mailpace.min.md
- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {"a": "cloudflare-email-service", "b": "mailpace"}`. From a terminal: `anchor compare cloudflare-email-service mailpace`
- Each listing in full: https://www.anchorterminal.com/api/v1/tools/cloudflare-email-service.json and https://www.anchorterminal.com/api/v1/tools/mailpace.json

## Other comparisons with Cloudflare Email Service or MailPace

- [AhaSend API + MCP vs Cloudflare Email Service](https://www.anchorterminal.com/compare/ahasend-vs-cloudflare-email-service.md)
- [AhaSend API + MCP vs MailPace](https://www.anchorterminal.com/compare/ahasend-vs-mailpace.md)
- [Amazon SES vs Cloudflare Email Service](https://www.anchorterminal.com/compare/amazon-ses-vs-cloudflare-email-service.md)
- [Amazon SES vs MailPace](https://www.anchorterminal.com/compare/amazon-ses-vs-mailpace.md)
- [Brevo API + MCP vs Cloudflare Email Service](https://www.anchorterminal.com/compare/brevo-vs-cloudflare-email-service.md)
- [Brevo API + MCP vs MailPace](https://www.anchorterminal.com/compare/brevo-vs-mailpace.md)
- [Cloudflare Email Service vs Groundmail API + MCP](https://www.anchorterminal.com/compare/cloudflare-email-service-vs-groundmail.md)
- [Cloudflare Email Service vs Loops API + MCP](https://www.anchorterminal.com/compare/cloudflare-email-service-vs-loops.md)
- [Cloudflare Email Service vs MailerSend](https://www.anchorterminal.com/compare/cloudflare-email-service-vs-mailersend.md)
- [Cloudflare Email Service vs Mailgun API + MCP](https://www.anchorterminal.com/compare/cloudflare-email-service-vs-mailgun.md)
- [Cloudflare Email Service vs Mailjet API + MCP](https://www.anchorterminal.com/compare/cloudflare-email-service-vs-mailjet.md)
- [Cloudflare Email Service vs Mailtrap Email API + MCP](https://www.anchorterminal.com/compare/cloudflare-email-service-vs-mailtrap.md)
- [Cloudflare Email Service vs Mailchimp Transactional (Mandrill)](https://www.anchorterminal.com/compare/cloudflare-email-service-vs-mandrill.md)
- [Cloudflare Email Service vs Postmark API + MCP](https://www.anchorterminal.com/compare/cloudflare-email-service-vs-postmark.md)
- [Cloudflare Email Service vs Resend API + MCP](https://www.anchorterminal.com/compare/cloudflare-email-service-vs-resend.md)
- [Cloudflare Email Service vs Twilio SendGrid](https://www.anchorterminal.com/compare/cloudflare-email-service-vs-sendgrid.md)
- [Cloudflare Email Service vs SendLayer](https://www.anchorterminal.com/compare/cloudflare-email-service-vs-sendlayer.md)
- [Cloudflare Email Service vs SMTP2GO API + MCP](https://www.anchorterminal.com/compare/cloudflare-email-service-vs-smtp2go.md)
- [Cloudflare Email Service vs Zoho CPaaS (formerly ZeptoMail)](https://www.anchorterminal.com/compare/cloudflare-email-service-vs-zoho-zeptomail.md)
- [Groundmail API + MCP vs MailPace](https://www.anchorterminal.com/compare/groundmail-vs-mailpace.md)
- [Loops API + MCP vs MailPace](https://www.anchorterminal.com/compare/loops-vs-mailpace.md)
- [MailerSend vs MailPace](https://www.anchorterminal.com/compare/mailersend-vs-mailpace.md)
- [Mailgun API + MCP vs MailPace](https://www.anchorterminal.com/compare/mailgun-vs-mailpace.md)
- [Mailjet API + MCP vs MailPace](https://www.anchorterminal.com/compare/mailjet-vs-mailpace.md)
- [MailPace vs Mailtrap Email API + MCP](https://www.anchorterminal.com/compare/mailpace-vs-mailtrap.md)
- [MailPace vs Mailchimp Transactional (Mandrill)](https://www.anchorterminal.com/compare/mailpace-vs-mandrill.md)
- [MailPace vs Postmark API + MCP](https://www.anchorterminal.com/compare/mailpace-vs-postmark.md)
- [MailPace vs Resend API + MCP](https://www.anchorterminal.com/compare/mailpace-vs-resend.md)
- [MailPace vs Twilio SendGrid](https://www.anchorterminal.com/compare/mailpace-vs-sendgrid.md)
- [MailPace vs SendLayer](https://www.anchorterminal.com/compare/mailpace-vs-sendlayer.md)
- [MailPace vs SMTP2GO API + MCP](https://www.anchorterminal.com/compare/mailpace-vs-smtp2go.md)
- [MailPace vs Zoho CPaaS (formerly ZeptoMail)](https://www.anchorterminal.com/compare/mailpace-vs-zoho-zeptomail.md)

---

Query this catalogue directly over MCP: https://www.anchorterminal.com/mcp (Streamable HTTP, no key). How: https://www.anchorterminal.com/agents/#mcp
