{
  "data": {
    "a": {
      "slug": "cloudflare-email-service",
      "name": "Cloudflare Email Service",
      "vendor": "Cloudflare",
      "vendorUrl": "https://developers.cloudflare.com/email-service/",
      "kind": "http-api",
      "category": "email",
      "summary": "Cloudflare Email Service sends transactional email through a REST API, a Workers binding or SMTP, and routes inbound mail to Workers or verified addresses. Email Sending is in public beta and needs the Workers Paid plan for arbitrary recipients.",
      "url": "https://www.anchorterminal.com/tools/cloudflare-email-service",
      "markdownUrl": "https://www.anchorterminal.com/tools/cloudflare-email-service.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/cloudflare-email-service.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/cloudflare-email-service.json",
      "dns": "cloudflare-email-service.grade.anchorterminal.com",
      "license": "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",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://api.cloudflare.com/client/v4",
      "packages": [
        {
          "registry": "npm",
          "name": "cloudflare"
        },
        {
          "registry": "pypi",
          "name": "cloudflare"
        }
      ],
      "auth": "api-key",
      "authNotes": "A Cloudflare API token as a Bearer header, created by the account owner in the dashboard. The SMTP guide names the permission Email Sending: Edit, and the OpenAPI file lists `com.cloudflare.api.account.email.sending.create` for sends and `.read` for limits and reputation. Tokens can carry an expiry and an IP address filter. The same token is the SMTP password. The OpenAPI file also accepts the legacy global API key. Access is self-serve, but the sending domain must be on Cloudflare DNS and new accounts start with a daily quota that Cloudflare raises over time.",
      "pricing": "usage",
      "pricingNotes": "$0.35 per 1,000 outbound emails after 3,000 included a month, on the Workers Paid plan (minimum $5 a month). Sending to arbitrary recipients is not available on Workers Free. Sends to the account's own verified destination addresses are free on every plan, and inbound Email Routing is free and unmetered. Hard bounces count towards the quota. Sends rejected at the API boundary or by the suppression list don't (https://developers.cloudflare.com/email-service/platform/pricing/).",
      "priceSummary": "$5 / mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the Email Service docs, the pricing page or the Email Sending paths of the OpenAPI file (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": 3766696,
        "pypiWeekly": 363923,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://developers.cloudflare.com/email-service/",
      "llmsTxt": "https://developers.cloudflare.com/email-service/llms.txt",
      "openapi": "https://raw.githubusercontent.com/cloudflare/api-schemas/main/openapi.json",
      "capabilities": [
        "email.send",
        "email.inbound",
        "email.domains",
        "email.analytics"
      ],
      "tags": [
        "hosted",
        "usage",
        "beta",
        "openapi",
        "llms-txt",
        "smtp",
        "typescript",
        "python",
        "go",
        "graphql",
        "status-page",
        "bug-bounty"
      ],
      "lastRelease": "2026-09-25",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 65.2,
        "grade": "B",
        "agentReady": false,
        "rank": 427,
        "ranked": true,
        "rankOf": 1510,
        "categoryRank": 9,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 72,
          "maintenance": 81,
          "payments": 30,
          "reliability": 53,
          "schema": 89,
          "security": 79,
          "transparency": 77
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-01"
        },
        "negative": -3,
        "negativeNotes": [
          "25 September 2026, -3. The `cloudflare` SDKs in the listing's packages shipped changes they label breaking in minor releases with no advance notice found. TypeScript 7.2.0 and Python 5.8.0 changed `emailRouting.dns.delete()` to return Settings in place of a page of DNS records and removed the `body` parameter from `emailRouting.enable()` and `disable()`. The migration guide came with the release (https://github.com/cloudflare/cloudflare-python/blob/main/CHANGELOG.md)"
        ],
        "verdict": "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.",
        "bestFor": "Teams already on Cloudflare DNS and Workers that want transactional sending and inbound handling in one account at a low unit price.",
        "strengths": [
          "Public OpenAPI 3.0.3 file with 29 Email Sending and 46 Email Routing operations, plus llms.txt and a Markdown copy of every docs page",
          "$0.35 per 1,000 emails after 3,000 included a month on Workers Paid. Sends rejected at the API boundary or blocked by the suppression list don't count",
          "API tokens carry separate send and read permissions, an optional expiry and an IP address filter, and Workers bindings can be limited to named senders and recipients",
          "The Cloudflare API returns 429 with `retry-after` and `Ratelimit` headers, and the send endpoint has its own throttled error code 10004",
          "Email Sending and Email Routing are separate components on cloudflarestatus.com, and both components showed no incident in the status feed from 16 to 31 October 2026"
        ],
        "weaknesses": [
          "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",
          "No idempotency key on `/email/sending/send`, in the docs or the OpenAPI file",
          "The daily sending quota for new accounts is described as conservative with no number. It can be read per account from `/email/sending/limits`",
          "The sending domain must use Cloudflare DNS, and sending to arbitrary recipients needs the Workers Paid plan at $5 a month",
          "A token with the send permission can send from every onboarded domain on the account. No per-domain token scope was found",
          "No template storage, and the terms and FAQ allow transactional email only",
          "The `cloudflare` SDKs shipped labelled breaking changes to Email Routing methods in minor releases on 25 September 2026 with no advance notice"
        ],
        "agentNotes": [
          "POST to `https://api.cloudflare.com/client/v4/accounts/{account_id}/email/sending/send` with `Authorization: Bearer \u003ctoken\u003e`. The body needs `to`, `from`, `subject` and one of `html` or `text`",
          "Don't retry a timed-out send blindly. There is no idempotency key, so look for the message in the `emailSendingAdaptive` GraphQL dataset first",
          "On 429 (code 10004) wait for the `retry-after` header. On 409 `sending_not_ready` the domain setup is unfinished and nothing was sent",
          "Read `result.delivered`, `result.queued` and `result.permanent_bounces` in the response. A 200 does not mean every recipient was accepted",
          "Keep to 50 recipients across to, cc and bcc, and 25 MiB per message including attachments",
          "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",
          "By default one suppressed recipient fails the whole send. Turn on Drop suppressed recipients for the domain to send to the rest"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 4,
        "avgRating": 3.3,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 65.2
          }
        ],
        "editorialScores": {
          "ergonomics": 72,
          "maintenance": 81,
          "payments": 30,
          "reliability": 53,
          "schema": 89,
          "security": 79,
          "transparency": 57
        },
        "provenanceScore": 96,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-01",
            "maintenance": "2026-11-01",
            "payments": "2026-11-01",
            "reliability": "2026-11-01",
            "schema": "2026-11-01",
            "security": "2026-11-01",
            "transparency": "2026-11-01"
          },
          "last": "2026-11-01",
          "lastMoved": "2026-11-01",
          "oldest": "2026-11-01",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "http": "curl \"https://api.cloudflare.com/client/v4/accounts/{account_id}/email/sending/send\" \\\n  --header \"Authorization: Bearer \u003cAPI_TOKEN\u003e\" \\\n  --header \"Content-Type: application/json\" \\\n  --data '{\"to\":\"recipient@example.com\",\"from\":\"welcome@yourdomain.com\",\"subject\":\"Welcome to our service!\",\"html\":\"\u003ch1\u003eWelcome!\u003c/h1\u003e\u003cp\u003eThanks for signing up.\u003c/p\u003e\",\"text\":\"Welcome! Thanks for signing up.\"}'"
      },
      "letme": {
        "capability": "https://letme.dev/email.send",
        "tool": "https://letme.dev/cloudflare-email-service"
      },
      "sameCompany": [
        "cloudflare-ai-gateway",
        "cloudflare-workers-ai",
        "cloudflare-sandbox-sdk",
        "cloudflare-workers-oauth-provider",
        "cloudflare-web-search",
        "cloudflare-clairic",
        "cloudflare-ai-search",
        "cloudflare-cli",
        "cloudflare-mcp",
        "cloudflare-r2",
        "cloudflare-clef"
      ],
      "area": "communication",
      "unitPrices": [
        {
          "item": "Outbound email",
          "unit": "1k-emails",
          "usd": 0.35,
          "note": "After 3,000 included a month, Workers Paid plan only. Sends to verified destination addresses are free"
        },
        {
          "item": "Workers Paid plan",
          "unit": "month",
          "usd": 5,
          "note": "Minimum monthly charge for the plan that Email Sending to arbitrary recipients needs"
        }
      ],
      "provenance": {
        "legalEntity": "Cloudflare, Inc.",
        "domain": "cloudflare.com",
        "domainRegistered": "2009-02-17",
        "endpointOnVendorDomain": true,
        "terms": "https://www.cloudflare.com/terms/",
        "privacy": "https://www.cloudflare.com/privacypolicy/",
        "statusPage": "https://www.cloudflarestatus.com",
        "changelog": "https://developers.cloudflare.com/changelog/product/email-service/",
        "securityTxt": "valid",
        "checked": "2026-11-01",
        "notes": [
          "Terms are the Self-Serve Subscription Agreement, last updated 12 September 2025, which names Cloudflare, Inc. at 101 Townsend St, San Francisco. Its section 5 covers beta services.",
          "The Developer Platform service-specific terms (https://www.cloudflare.com/service-specific-terms-developer-platform/), last updated 28 September 2026, have their own sections for Cloudflare Email Service and Email Routing and supplement the agreement.",
          "The privacy policy is effective from 4 November 2025 and makes Cloudflare a data processor for customer content that crosses its network. A customer DPA is at https://www.cloudflare.com/cloudflare-customer-dpa/.",
          "www.cloudflare.com/.well-known/security.txt, re-read on 1 November 2026, names HackerOne and a disclosure policy and has no Expires field. It is recorded as valid to match the other Cloudflare listings.",
          "The REST endpoint is on api.cloudflare.com. The SMTP endpoint is on smtp.mx.cloudflare.net, a different registered domain.",
          "The status page lists Email Sending and Email Routing as separate components, both operational on 1 November 2026.",
          "RDAP for cloudflare.com gives a registration date of 2009-02-17."
        ],
        "score": 96
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/cloudflare-email-service.json",
      "live": {
        "slug": "cloudflare-email-service",
        "probe": {
          "target": "https://api.cloudflare.com/client/v4",
          "method": "get",
          "lastAt": "2026-11-07T19:22:00.09141122Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 85,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 37,
          "p95ms24h": 96,
          "samples24h": 238,
          "samples30d": 7430,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 50,
              "ok": 50
            },
            {
              "date": "2026-10-09",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-10-10",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-11",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-12",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-13",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-14",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-15",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-16",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-17",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-18",
              "probes": 256,
              "ok": 256
            },
            {
              "date": "2026-10-19",
              "probes": 255,
              "ok": 255
            },
            {
              "date": "2026-10-20",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-21",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-22",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-23",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-24",
              "probes": 251,
              "ok": 251
            },
            {
              "date": "2026-10-25",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-10-26",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-27",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-28",
              "probes": 251,
              "ok": 251
            },
            {
              "date": "2026-10-29",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-30",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-31",
              "probes": 251,
              "ok": 251
            },
            {
              "date": "2026-11-01",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-11-02",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-11-03",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-11-04",
              "probes": 246,
              "ok": 246
            },
            {
              "date": "2026-11-05",
              "probes": 185,
              "ok": 185
            },
            {
              "date": "2026-11-06",
              "probes": 241,
              "ok": 241
            },
            {
              "date": "2026-11-07",
              "probes": 197,
              "ok": 197
            }
          ]
        },
        "vendorStatus": {
          "page": "https://www.cloudflarestatus.com",
          "indicator": "major",
          "summary": "Partial System Outage",
          "checkedAt": "2026-11-07T19:21:18.51340697Z"
        },
        "versions": [
          {
            "registry": "npm",
            "name": "cloudflare",
            "version": "7.3.0",
            "seenAt": "2026-11-06T23:15:47.285388648Z"
          },
          {
            "registry": "pypi",
            "name": "cloudflare",
            "version": "5.10.0",
            "released": "2026-11-05",
            "seenAt": "2026-11-06T23:15:47.318174532Z"
          }
        ],
        "npmWeekly": 4306549,
        "pypiWeekly": 584250,
        "securityTxt": {
          "url": "https://cloudflare.com/.well-known/security.txt",
          "state": "valid",
          "checkedAt": "2026-11-07T16:00:23.467095484Z"
        },
        "llmsTxt": {
          "url": "https://developers.cloudflare.com/email-service/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-11-07T15:32:00.977057403Z"
        },
        "domain": {
          "domain": "cloudflare.com",
          "registered": "2009-02-17",
          "source": "https://rdap.verisign.com/com/v1/domain/cloudflare.com",
          "checkedAt": "2026-11-01T14:18:56.122446983Z"
        },
        "pages": [
          {
            "url": "https://developers.cloudflare.com/changelog/product/email-service/",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-11-07T14:04:00.748163747Z",
            "changedAt": "2026-11-07T14:04:00.748163747Z",
            "fingerprint": "db92509386da"
          },
          {
            "url": "https://developers.cloudflare.com/email-service/platform/pricing/",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-11-07T14:04:08.818558342Z",
            "changedAt": "2026-10-15T21:23:51.47765183Z",
            "fingerprint": "6b2b078d1df0"
          }
        ],
        "updatedAt": "2026-11-07T19:22:00.09141122Z"
      }
    },
    "answer": "Cloudflare Email Service scores 65.2 (B) on agent readiness against SendLayer's 47.7 (D), and leads in every scored category.",
    "b": {
      "slug": "sendlayer",
      "name": "SendLayer",
      "vendor": "SendLayer, LLC",
      "vendorUrl": "https://sendlayer.com",
      "kind": "http-api",
      "category": "email",
      "summary": "SendLayer is a transactional email service from SendLayer, LLC, with an SMTP relay, a REST API for sending and email events, webhooks, SDKs in five languages and a hosted MCP server. It is aimed largely at WordPress and small-business sites.",
      "url": "https://www.anchorterminal.com/tools/sendlayer",
      "markdownUrl": "https://www.anchorterminal.com/tools/sendlayer.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/sendlayer.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/sendlayer.json",
      "dns": "sendlayer.grade.anchorterminal.com",
      "transports": [
        "http",
        "streamable-http"
      ],
      "remoteUrl": "https://mcp.sendlayer.com",
      "packages": [
        {
          "registry": "npm",
          "name": "sendlayer"
        },
        {
          "registry": "pypi",
          "name": "sendlayer"
        }
      ],
      "auth": "api-key",
      "authNotes": "Bearer API key in the `Authorization` header, created per sending domain in the dashboard (one is made when a domain is authorised). Keys can be labelled and deleted; no scopes or read-only keys were found. The hosted MCP server takes the same key in an `x-sendlayer-api-key` or `Authorization` header.",
      "pricing": "paid",
      "pricingNotes": "Plans billed annually. Starter $5 a month for 1,000 emails, Business $15 for 5,000, Growth $25 for 10,000, Scale 20,000+ by quote. A free trial sends up to 200 emails. Accounts that reach their limit are upgraded automatically. 14-day money-back guarantee.",
      "priceSummary": "$5 / mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the developer docs, llms.txt, the OpenAPI file or the pricing page (checked 2026-11-06).",
        "endpoints": []
      },
      "toolCount": 5,
      "popularity": {
        "githubStars": null,
        "npmWeekly": 113,
        "pypiWeekly": 9,
        "asOf": "2026-11-06"
      },
      "docsUrl": "https://developers.sendlayer.com/",
      "llmsTxt": "https://developers.sendlayer.com/llms.txt",
      "openapi": "https://developers.sendlayer.com/api-reference/sendlayer.json",
      "capabilities": [
        "email.send",
        "email.analytics",
        "email.domains"
      ],
      "tags": [
        "hosted",
        "closed-source",
        "smtp",
        "webhooks",
        "openapi",
        "llms-txt",
        "mcp",
        "remote-mcp",
        "status-page",
        "typescript",
        "python",
        "php",
        "ruby",
        "go"
      ],
      "lastRelease": "2026-08-21",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 47.7,
        "grade": "D",
        "agentReady": false,
        "rank": 1148,
        "ranked": true,
        "rankOf": 1510,
        "categoryRank": 19,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 62,
          "maintenance": 40,
          "payments": 20,
          "reliability": 48,
          "schema": 68,
          "security": 38,
          "transparency": 49
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-06"
        },
        "negative": 0,
        "verdict": "A small API with an OpenAPI file, llms.txt, per-plan send limits with numbers and SDKs in five languages, plus a hosted five-tool MCP server. Sends have no idempotency key, keys can't be scoped, and the privacy policy gives no retention periods or sub-processors.",
        "bestFor": "Low-volume transactional mail for WordPress and small sites.",
        "strengths": [
          "Send limits per minute, hour and day are published for each plan",
          "OpenAPI file, llms.txt and Markdown copies of every developer page",
          "Official SDKs for Node, Python, PHP, Ruby and Go",
          "Hosted MCP server at mcp.sendlayer.com with five tools for sending, events and webhooks",
          "Numbered error codes with messages for each missing or invalid field"
        ],
        "weaknesses": [
          "No idempotency key on sends, so a retried request can send twice",
          "API keys can't be scoped or made read-only",
          "Status history shows 98 automated outage entries in 90 days with no durations or write-ups",
          "Privacy policy has no date, retention periods, DPA or sub-processor list",
          "No public changelog, SLA, security.txt or disclosure policy found"
        ],
        "agentNotes": [
          "Check the email log with `GET /api/v1/events` before retrying a failed send, since sends have no idempotency key",
          "Keep To and CC at 10 addresses or fewer and BCC at 5, or the API returns error code 20 or 27",
          "Pace sends to the plan's per-minute limit, 50 on Starter and 120 on Business, and back off on 429",
          "Pass the API key in a header to mcp.sendlayer.com; the server answers 405 to anything but POST"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "D",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 47.7
          }
        ],
        "editorialScores": {
          "ergonomics": 62,
          "maintenance": 40,
          "payments": 20,
          "reliability": 48,
          "schema": 68,
          "security": 38,
          "transparency": 23
        },
        "provenanceScore": 75,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-06",
            "maintenance": "2026-11-06",
            "payments": "2026-11-06",
            "reliability": "2026-11-06",
            "schema": "2026-11-06",
            "security": "2026-11-06",
            "transparency": "2026-11-06"
          },
          "last": "2026-11-06",
          "oldest": "2026-11-06",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "install": "npm install sendlayer",
        "http": "curl https://console.sendlayer.com/api/v1/email -X POST -H \"Authorization: Bearer $SENDLAYER_API_KEY\" -H \"Content-Type: application/json\" -d '{\"From\":{\"name\":\"You\",\"email\":\"you@yourdomain.com\"},\"To\":[{\"name\":\"Person\",\"email\":\"person@example.com\"}],\"Subject\":\"Hello\",\"ContentType\":\"Text\",\"PlainContent\":\"Hello\"}'",
        "claudeCode": "claude mcp add --scope user --transport http sendlayer-mcp https://mcp.sendlayer.com --header \"Authorization: Bearer YOUR_SENDLAYER_API_KEY\"",
        "config": {
          "mcpServers": {
            "sendlayer": {
              "headers": {
                "x-sendlayer-api-key": "YOUR_SENDLAYER_API_KEY"
              },
              "url": "https://mcp.sendlayer.com"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/email.send",
        "tool": "https://letme.dev/sendlayer"
      },
      "area": "communication",
      "unitPrices": [
        {
          "item": "Starter",
          "unit": "month",
          "usd": 5,
          "note": "1,000 emails a month, billed annually"
        },
        {
          "item": "Business",
          "unit": "month",
          "usd": 15,
          "note": "5,000 emails a month, billed annually"
        },
        {
          "item": "Growth",
          "unit": "month",
          "usd": 25,
          "note": "10,000 emails a month, billed annually"
        }
      ],
      "provenance": {
        "legalEntity": "SendLayer, LLC",
        "domain": "sendlayer.com",
        "domainRegistered": "2015-07-22",
        "endpointOnVendorDomain": true,
        "terms": "https://sendlayer.com/terms-of-service/",
        "privacy": "https://sendlayer.com/privacy-policy/",
        "statusPage": "https://status.sendlayer.com",
        "changelog": "",
        "securityTxt": "none",
        "checked": "2026-11-06",
        "notes": [
          "The terms name SendLayer, LLC under Florida law with courts in West Palm Beach. Neither the terms nor the privacy policy carries a date.",
          "The terms contain no clause on automated access to the website.",
          "sendlayer.com/robots.txt disallows only WordPress internals, cart and search paths. developers.sendlayer.com allows all but /_next/ and /cdn-cgi/.",
          "RDAP gives sendlayer.com a registration date of 22 July 2015; the about page says the team started SendLayer in 2022, and the footer copyright runs from 2021.",
          "/.well-known/security.txt returns 404."
        ],
        "score": 75
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/sendlayer.json",
      "live": {
        "slug": "sendlayer",
        "probe": {
          "target": "https://mcp.sendlayer.com",
          "method": "get",
          "lastAt": "2026-11-07T19:22:32.206680288Z",
          "lastOk": true,
          "lastStatus": 405,
          "lastMs": 341,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 333,
          "p95ms24h": 423,
          "samples24h": 210,
          "samples30d": 210,
          "days": [
            {
              "date": "2026-11-06",
              "probes": 13,
              "ok": 13
            },
            {
              "date": "2026-11-07",
              "probes": 197,
              "ok": 197
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.sendlayer.com",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-11-07T04:48:44.410046578Z"
        },
        "versions": [
          {
            "registry": "npm",
            "name": "sendlayer",
            "version": "1.1.0",
            "seenAt": "2026-11-07T00:04:36.013206716Z"
          },
          {
            "registry": "pypi",
            "name": "sendlayer",
            "version": "1.1.0",
            "released": "2026-08-21",
            "seenAt": "2026-11-07T00:04:36.403864413Z"
          }
        ],
        "npmWeekly": 113,
        "pypiWeekly": 9,
        "securityTxt": {
          "url": "https://sendlayer.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-11-07T16:00:08.464258052Z"
        },
        "llmsTxt": {
          "url": "https://developers.sendlayer.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-11-07T15:33:54.535300528Z"
        },
        "pages": [
          {
            "url": "https://sendlayer.com/privacy-policy/",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-11-07T14:19:27.507195007Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "1f5bea738989"
          },
          {
            "url": "https://sendlayer.com/terms-of-service/",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-11-07T14:19:31.497088663Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "1fbf9877b12a"
          }
        ],
        "mcpTools": {
          "url": "https://mcp.sendlayer.com",
          "checkedAt": "2026-11-07T01:47:41.040426143Z",
          "status": "auth",
          "note": "asks for credentials before listing its tools",
          "changedAt": "2026-11-07T01:47:41.040426143Z"
        },
        "updatedAt": "2026-11-07T19:22:32.206680288Z"
      }
    },
    "edges": [
      {
        "by": 41,
        "category": "security",
        "leads": "cloudflare-email-service",
        "name": "Security \u0026 auth",
        "reasons": {
          "a": "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.",
          "b": "Plain revocable API keys per domain, several allowed, sent in a header; no scopes, expiry or rotation feature beyond creating and deleting keys (20 of 30). No read-only key or approval step (0 of 20). The API returns event data, not received mail (10 of 15). Email logs kept 3, 15 or 30 days by plan, and no log of API calls was found (8 of 15). No security.txt (404), disclosure policy, bug bounty or certification found (0 of 20). Total 38."
        },
        "scores": {
          "a": 79,
          "b": 38
        }
      },
      {
        "by": 41,
        "category": "maintenance",
        "leads": "cloudflare-email-service",
        "name": "Maintenance \u0026 community",
        "reasons": {
          "a": "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.",
          "b": "The Node and Python SDKs were last released as 1.1.0 on 21 August 2026, 77 days before this check (20). One SDK release in the 90 days and no dated changelog (0 of 20). A closed service with a support form and docs updated through 2026, but no public changelog (5 of 15). Not in the official MCP registry (search for sendlayer returned nothing on 6 November). Official SDKs in five languages (10 of 15). The SDK repositories exist on GitHub under sendlayer; their CI wasn't read (5 of 10). Total 40."
        },
        "scores": {
          "a": 81,
          "b": 40
        }
      },
      {
        "by": 28,
        "category": "transparency",
        "leads": "cloudflare-email-service",
        "name": "Transparency \u0026 trust",
        "reasons": {
          "a": "Closed service under the Self-Serve Subscription Agreement and service-specific terms with an Email Service section updated on 28 September 2026, unchanged on 1 November. The SDKs are Apache-2.0 (18 of 30). The privacy policy of 4 November 2025 (re-read on 1 November) makes Cloudflare a processor of customer content and a DPA is published. The docs give about seven days for message previews, 31 days for send events and 18 months for audit logs. The terms say message content may be scanned by automated tools. No retention period for message content in transit or queued was found (20 of 30). No deprecation policy found. The agreement lets Cloudflare change or end a service without notice and remove a beta service at any time (4 of 20). The sub-processor list, last updated 1 October 2025, names Google and Oracle for the Developer Platform with locations. Where email is processed isn't stated (15 of 20).",
          "b": "Closed service with terms naming SendLayer, LLC under Florida law (15 of 30). The privacy policy is undated, says data is kept as long as the account is active or as needed, and names no retention periods, DPA or processors; only the pricing page gives log retention per plan (8 of 30). No deprecation policy or dated notices (0). No sub-processors or data locations disclosed (0). Total 23."
        },
        "scores": {
          "a": 77,
          "b": 49
        }
      },
      {
        "by": 21,
        "category": "schema",
        "leads": "cloudflare-email-service",
        "name": "Schema \u0026 documentation",
        "reasons": {
          "a": "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).",
          "b": "OpenAPI file at developers.sendlayer.com/api-reference/sendlayer.json (version 1.0.1) covering four paths, send, events and webhooks (25). llms.txt and Markdown copies of every developer page (10). Operation summaries say what each call does; nothing says when not to use one, and the hosted MCP server's tool definitions aren't public (10 of 20). Parameters are typed but without enums or limits, and the event filter is a free string (7 of 15). Code samples in five languages and a table of 35 error codes, but the spec documents only 200 responses (11 of 15). Version in the path and in the spec, with no public changelog (5 of 15). Total 68."
        },
        "scores": {
          "a": 89,
          "b": 68
        }
      },
      {
        "by": 10,
        "category": "ergonomics",
        "leads": "cloudflare-email-service",
        "name": "Agent ergonomics",
        "reasons": {
          "a": "A send returns a small object grouping recipients into `delivered`, `queued` and `permanent_bounces`. Send events are read through the GraphQL Analytics API, where the caller picks fields (18 of 25). Suppression lists page by cursor with `per_page` up to 1,000 and filters for email, reason and scope. The GraphQL datasets filter by status, date and domain (17 of 20). REST errors carry a numeric code and a machine-readable message, SMTP returns enhanced status codes with a troubleshooting section, and the binding throws string codes (18 of 20). No idempotency key on send or `send_raw`. Only the DNS re-apply call is described as idempotent (4 of 20). A send needs `to`, `from`, `subject` and one body field, and Cloudflare publishes SDKs for Node, Python and Go (15).",
          "b": "Small responses and five MCP tools (18 of 25). Events filter by start and end date, event type and message ID, with an offset and a count (15 of 20). Errors are JSON with a numbered code and message per field, and documented (14 of 20). No idempotency key on sends, and the MCP annotations can't be read (0 of 20). A send needs from, to, subject, content type and content; official SDKs for Node, Python, PHP, Ruby and Go (15). Total 62."
        },
        "scores": {
          "a": 72,
          "b": 62
        }
      },
      {
        "by": 10,
        "category": "payments",
        "leads": "cloudflare-email-service",
        "name": "Payments \u0026 pricing",
        "reasons": {
          "a": "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).",
          "b": "No x402, MPP or L402 (0). Plan prices are public but only as annual plans, with no per-email overage price; accounts are upgraded automatically at the limit (10 of 20). A free trial of 200 emails is offered through checkout; whether it needs a card couldn't be read, since robots.txt disallows the add-to-cart URLs (10 of 20). A person signs up and authorises a domain in a browser (0). Total 20."
        },
        "scores": {
          "a": 30,
          "b": 20
        }
      }
    ],
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Cloudflare",
        "b": "SendLayer, LLC",
        "name": "Vendor"
      },
      {
        "a": "https://api.cloudflare.com/client/v4",
        "b": "https://mcp.sendlayer.com",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP",
        "b": "HTTP, Streamable HTTP",
        "name": "Transports"
      },
      {
        "a": "API key",
        "b": "API key",
        "name": "Auth"
      },
      {
        "a": "Pay per use",
        "b": "Paid",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "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",
        "b": "none",
        "name": "Licence"
      },
      {
        "a": "none",
        "b": "5",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-09-25",
        "b": "2026-08-21",
        "name": "Last release"
      },
      {
        "a": "2025-09-12",
        "b": "no date given",
        "name": "Terms last updated"
      },
      {
        "a": "no date given",
        "b": "no date given",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Terms restrict automated access"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "3.8M npm/wk, 364k PyPI/wk",
        "b": "113 npm/wk, 9 PyPI/wk",
        "name": "Popularity"
      },
      {
        "a": "3.3/5 (4)",
        "b": "none",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Cloudflare Email Service scores 65.2 (B) on agent readiness against SendLayer's 47.7 (D), and leads in every scored category.",
        "question": "Which is better for AI agents, Cloudflare Email Service or SendLayer?"
      },
      {
        "answer": "Both need an API key.",
        "question": "Do Cloudflare Email Service and SendLayer need an API key?"
      },
      {
        "answer": "Yes. Cloudflare Email Service has a hosted endpoint at https://api.cloudflare.com/client/v4 and SendLayer at https://mcp.sendlayer.com.",
        "question": "Can an agent call Cloudflare Email Service and SendLayer without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 53 against 48",
          "Schema \u0026 documentation, 89 against 68",
          "Agent ergonomics, 72 against 62",
          "Security \u0026 auth, 79 against 38",
          "Payments \u0026 pricing, 30 against 20",
          "Maintenance \u0026 community, 81 against 40",
          "Transparency \u0026 trust, 77 against 49"
        ],
        "also": null,
        "goodFor": "Teams already on Cloudflare DNS and Workers that want transactional sending and inbound handling in one account at a low unit price.",
        "slug": "cloudflare-email-service",
        "watchFor": "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"
      },
      {
        "aheadOn": null,
        "also": [
          "No incidents deducted, where Cloudflare Email Service loses 3 points for them"
        ],
        "goodFor": "Low-volume transactional mail for WordPress and small sites.",
        "slug": "sendlayer",
        "watchFor": "No idempotency key on sends, so a retried request can send twice"
      }
    ],
    "history": {
      "cloudflare-email-service": [
        {
          "causes": [
            "evidence",
            "correction",
            "event"
          ],
          "date": "2026-11-01",
          "delta": -2.2,
          "from": 67.4,
          "fromGrade": "B",
          "to": 65.2,
          "toGrade": "B"
        },
        {
          "causes": [
            "method"
          ],
          "date": "2026-10-27",
          "delta": 0.1,
          "from": 67.3,
          "fromGrade": "B",
          "to": 67.4,
          "toGrade": "B"
        }
      ],
      "sendlayer": null
    },
    "job": {
      "capability": "email.send",
      "name": "Sending email"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/ahasend-vs-cloudflare-email-service.json",
        "title": "AhaSend API + MCP vs Cloudflare Email Service",
        "url": "https://www.anchorterminal.com/compare/ahasend-vs-cloudflare-email-service"
      },
      {
        "json": "https://www.anchorterminal.com/compare/ahasend-vs-sendlayer.json",
        "title": "AhaSend API + MCP vs SendLayer",
        "url": "https://www.anchorterminal.com/compare/ahasend-vs-sendlayer"
      },
      {
        "json": "https://www.anchorterminal.com/compare/amazon-ses-vs-cloudflare-email-service.json",
        "title": "Amazon SES vs Cloudflare Email Service",
        "url": "https://www.anchorterminal.com/compare/amazon-ses-vs-cloudflare-email-service"
      },
      {
        "json": "https://www.anchorterminal.com/compare/amazon-ses-vs-sendlayer.json",
        "title": "Amazon SES vs SendLayer",
        "url": "https://www.anchorterminal.com/compare/amazon-ses-vs-sendlayer"
      },
      {
        "json": "https://www.anchorterminal.com/compare/brevo-vs-cloudflare-email-service.json",
        "title": "Brevo API + MCP vs Cloudflare Email Service",
        "url": "https://www.anchorterminal.com/compare/brevo-vs-cloudflare-email-service"
      },
      {
        "json": "https://www.anchorterminal.com/compare/brevo-vs-sendlayer.json",
        "title": "Brevo API + MCP vs SendLayer",
        "url": "https://www.anchorterminal.com/compare/brevo-vs-sendlayer"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cloudflare-email-service-vs-groundmail.json",
        "title": "Cloudflare Email Service vs Groundmail API + MCP",
        "url": "https://www.anchorterminal.com/compare/cloudflare-email-service-vs-groundmail"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cloudflare-email-service-vs-loops.json",
        "title": "Cloudflare Email Service vs Loops API + MCP",
        "url": "https://www.anchorterminal.com/compare/cloudflare-email-service-vs-loops"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cloudflare-email-service-vs-mailersend.json",
        "title": "Cloudflare Email Service vs MailerSend",
        "url": "https://www.anchorterminal.com/compare/cloudflare-email-service-vs-mailersend"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cloudflare-email-service-vs-mailgun.json",
        "title": "Cloudflare Email Service vs Mailgun API + MCP",
        "url": "https://www.anchorterminal.com/compare/cloudflare-email-service-vs-mailgun"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cloudflare-email-service-vs-mailjet.json",
        "title": "Cloudflare Email Service vs Mailjet API + MCP",
        "url": "https://www.anchorterminal.com/compare/cloudflare-email-service-vs-mailjet"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cloudflare-email-service-vs-mailpace.json",
        "title": "Cloudflare Email Service vs MailPace",
        "url": "https://www.anchorterminal.com/compare/cloudflare-email-service-vs-mailpace"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cloudflare-email-service-vs-mailtrap.json",
        "title": "Cloudflare Email Service vs Mailtrap Email API + MCP",
        "url": "https://www.anchorterminal.com/compare/cloudflare-email-service-vs-mailtrap"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cloudflare-email-service-vs-mandrill.json",
        "title": "Cloudflare Email Service vs Mailchimp Transactional (Mandrill)",
        "url": "https://www.anchorterminal.com/compare/cloudflare-email-service-vs-mandrill"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cloudflare-email-service-vs-postmark.json",
        "title": "Cloudflare Email Service vs Postmark API + MCP",
        "url": "https://www.anchorterminal.com/compare/cloudflare-email-service-vs-postmark"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cloudflare-email-service-vs-resend.json",
        "title": "Cloudflare Email Service vs Resend API + MCP",
        "url": "https://www.anchorterminal.com/compare/cloudflare-email-service-vs-resend"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cloudflare-email-service-vs-sendgrid.json",
        "title": "Cloudflare Email Service vs Twilio SendGrid",
        "url": "https://www.anchorterminal.com/compare/cloudflare-email-service-vs-sendgrid"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cloudflare-email-service-vs-smtp2go.json",
        "title": "Cloudflare Email Service vs SMTP2GO API + MCP",
        "url": "https://www.anchorterminal.com/compare/cloudflare-email-service-vs-smtp2go"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cloudflare-email-service-vs-zoho-zeptomail.json",
        "title": "Cloudflare Email Service vs Zoho CPaaS (formerly ZeptoMail)",
        "url": "https://www.anchorterminal.com/compare/cloudflare-email-service-vs-zoho-zeptomail"
      },
      {
        "json": "https://www.anchorterminal.com/compare/groundmail-vs-sendlayer.json",
        "title": "Groundmail API + MCP vs SendLayer",
        "url": "https://www.anchorterminal.com/compare/groundmail-vs-sendlayer"
      },
      {
        "json": "https://www.anchorterminal.com/compare/loops-vs-sendlayer.json",
        "title": "Loops API + MCP vs SendLayer",
        "url": "https://www.anchorterminal.com/compare/loops-vs-sendlayer"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mailersend-vs-sendlayer.json",
        "title": "MailerSend vs SendLayer",
        "url": "https://www.anchorterminal.com/compare/mailersend-vs-sendlayer"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mailgun-vs-sendlayer.json",
        "title": "Mailgun API + MCP vs SendLayer",
        "url": "https://www.anchorterminal.com/compare/mailgun-vs-sendlayer"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mailjet-vs-sendlayer.json",
        "title": "Mailjet API + MCP vs SendLayer",
        "url": "https://www.anchorterminal.com/compare/mailjet-vs-sendlayer"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mailpace-vs-sendlayer.json",
        "title": "MailPace vs SendLayer",
        "url": "https://www.anchorterminal.com/compare/mailpace-vs-sendlayer"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mailtrap-vs-sendlayer.json",
        "title": "Mailtrap Email API + MCP vs SendLayer",
        "url": "https://www.anchorterminal.com/compare/mailtrap-vs-sendlayer"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mandrill-vs-sendlayer.json",
        "title": "Mailchimp Transactional (Mandrill) vs SendLayer",
        "url": "https://www.anchorterminal.com/compare/mandrill-vs-sendlayer"
      },
      {
        "json": "https://www.anchorterminal.com/compare/postmark-vs-sendlayer.json",
        "title": "Postmark API + MCP vs SendLayer",
        "url": "https://www.anchorterminal.com/compare/postmark-vs-sendlayer"
      },
      {
        "json": "https://www.anchorterminal.com/compare/resend-vs-sendlayer.json",
        "title": "Resend API + MCP vs SendLayer",
        "url": "https://www.anchorterminal.com/compare/resend-vs-sendlayer"
      },
      {
        "json": "https://www.anchorterminal.com/compare/sendgrid-vs-sendlayer.json",
        "title": "Twilio SendGrid vs SendLayer",
        "url": "https://www.anchorterminal.com/compare/sendgrid-vs-sendlayer"
      },
      {
        "json": "https://www.anchorterminal.com/compare/sendlayer-vs-smtp2go.json",
        "title": "SendLayer vs SMTP2GO API + MCP",
        "url": "https://www.anchorterminal.com/compare/sendlayer-vs-smtp2go"
      },
      {
        "json": "https://www.anchorterminal.com/compare/sendlayer-vs-zoho-zeptomail.json",
        "title": "SendLayer vs Zoho CPaaS (formerly ZeptoMail)",
        "url": "https://www.anchorterminal.com/compare/sendlayer-vs-zoho-zeptomail"
      }
    ],
    "panel": null,
    "scores": [
      {
        "by": 5,
        "cloudflare-email-service": 53,
        "edge": "cloudflare-email-service",
        "key": "reliability",
        "name": "Reliability",
        "sendlayer": 48,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 21,
        "cloudflare-email-service": 89,
        "edge": "cloudflare-email-service",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "sendlayer": 68,
        "weight": 13
      },
      {
        "by": 10,
        "cloudflare-email-service": 72,
        "edge": "cloudflare-email-service",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "sendlayer": 62,
        "weight": 13
      },
      {
        "by": 41,
        "cloudflare-email-service": 79,
        "edge": "cloudflare-email-service",
        "key": "security",
        "name": "Security \u0026 auth",
        "sendlayer": 38,
        "weight": 14
      },
      {
        "by": 10,
        "cloudflare-email-service": 30,
        "edge": "cloudflare-email-service",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "sendlayer": 20,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 41,
        "cloudflare-email-service": 81,
        "edge": "cloudflare-email-service",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "sendlayer": 40,
        "weight": 7
      },
      {
        "by": 28,
        "cloudflare-email-service": 77,
        "edge": "cloudflare-email-service",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "sendlayer": 49,
        "weight": 7
      }
    ],
    "summary": "Cloudflare Email Service scores 65.2 (B) on agent readiness against SendLayer's 47.7 (D), and leads in every scored category. Both do sending email.",
    "tasks": null,
    "tutorials": [],
    "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.",
      "sendlayer": "A small API with an OpenAPI file, llms.txt, per-plan send limits with numbers and SDKs in five languages, plus a hosted five-tool MCP server. Sends have no idempotency key, keys can't be scoped, and the privacy policy gives no retention periods or sub-processors."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/cloudflare-email-service-vs-sendlayer",
    "json": "https://www.anchorterminal.com/compare/cloudflare-email-service-vs-sendlayer.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/cloudflare-email-service-vs-sendlayer.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/cloudflare-email-service-vs-sendlayer.min.md"
  },
  "markdown": "Cloudflare Email Service scores 65.2 (B) on agent readiness against SendLayer's 47.7 (D), and leads in every scored category. Both do sending email.\n\n- Cloudflare Email Service: grade B, 65.2/100, rank #427 of 1510. Markdown https://www.anchorterminal.com/tools/cloudflare-email-service.md · JSON https://www.anchorterminal.com/api/v1/tools/cloudflare-email-service.json\n- SendLayer: grade D, 47.7/100, rank #1148 of 1510. Markdown https://www.anchorterminal.com/tools/sendlayer.md · JSON https://www.anchorterminal.com/api/v1/tools/sendlayer.json\n- Best email delivery APIs for AI agents: https://www.anchorterminal.com/best/email/index.md\n- All 174 email comparisons: https://www.anchorterminal.com/compare/email/index.md\n\n## Which one, for what\n\n### Cloudflare Email Service (B)\n\nGood for: Teams already on Cloudflare DNS and Workers that want transactional sending and inbound handling in one account at a low unit price.\n\nAhead on:\n- Reliability, 53 against 48\n- Schema \u0026 documentation, 89 against 68\n- Agent ergonomics, 72 against 62\n- Security \u0026 auth, 79 against 38\n- Payments \u0026 pricing, 30 against 20\n- Maintenance \u0026 community, 81 against 40\n- Transparency \u0026 trust, 77 against 49\n\nWatch 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\n\n### SendLayer (D)\n\nGood for: Low-volume transactional mail for WordPress and small sites.\n\nAlso in its favour:\n- No incidents deducted, where Cloudflare Email Service loses 3 points for them\n\nWatch for: No idempotency key on sends, so a retried request can send twice\n\n\n## Why the edge\n\n### Security \u0026 auth: Cloudflare Email Service +41\n\n- 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.\n- SendLayer (38): Plain revocable API keys per domain, several allowed, sent in a header; no scopes, expiry or rotation feature beyond creating and deleting keys (20 of 30). No read-only key or approval step (0 of 20). The API returns event data, not received mail (10 of 15). Email logs kept 3, 15 or 30 days by plan, and no log of API calls was found (8 of 15). No security.txt (404), disclosure policy, bug bounty or certification found (0 of 20). Total 38.\n\n### Maintenance \u0026 community: Cloudflare Email Service +41\n\n- 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.\n- SendLayer (40): The Node and Python SDKs were last released as 1.1.0 on 21 August 2026, 77 days before this check (20). One SDK release in the 90 days and no dated changelog (0 of 20). A closed service with a support form and docs updated through 2026, but no public changelog (5 of 15). Not in the official MCP registry (search for sendlayer returned nothing on 6 November). Official SDKs in five languages (10 of 15). The SDK repositories exist on GitHub under sendlayer; their CI wasn't read (5 of 10). Total 40.\n\n### Transparency \u0026 trust: Cloudflare Email Service +28\n\n- Cloudflare Email Service (77): Closed service under the Self-Serve Subscription Agreement and service-specific terms with an Email Service section updated on 28 September 2026, unchanged on 1 November. The SDKs are Apache-2.0 (18 of 30). The privacy policy of 4 November 2025 (re-read on 1 November) makes Cloudflare a processor of customer content and a DPA is published. The docs give about seven days for message previews, 31 days for send events and 18 months for audit logs. The terms say message content may be scanned by automated tools. No retention period for message content in transit or queued was found (20 of 30). No deprecation policy found. The agreement lets Cloudflare change or end a service without notice and remove a beta service at any time (4 of 20). The sub-processor list, last updated 1 October 2025, names Google and Oracle for the Developer Platform with locations. Where email is processed isn't stated (15 of 20).\n- SendLayer (49): Closed service with terms naming SendLayer, LLC under Florida law (15 of 30). The privacy policy is undated, says data is kept as long as the account is active or as needed, and names no retention periods, DPA or processors; only the pricing page gives log retention per plan (8 of 30). No deprecation policy or dated notices (0). No sub-processors or data locations disclosed (0). Total 23.\n\n### Schema \u0026 documentation: Cloudflare Email Service +21\n\n- 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).\n- SendLayer (68): OpenAPI file at developers.sendlayer.com/api-reference/sendlayer.json (version 1.0.1) covering four paths, send, events and webhooks (25). llms.txt and Markdown copies of every developer page (10). Operation summaries say what each call does; nothing says when not to use one, and the hosted MCP server's tool definitions aren't public (10 of 20). Parameters are typed but without enums or limits, and the event filter is a free string (7 of 15). Code samples in five languages and a table of 35 error codes, but the spec documents only 200 responses (11 of 15). Version in the path and in the spec, with no public changelog (5 of 15). Total 68.\n\n### Agent ergonomics: Cloudflare Email Service +10\n\n- Cloudflare Email Service (72): A send returns a small object grouping recipients into `delivered`, `queued` and `permanent_bounces`. Send events are read through the GraphQL Analytics API, where the caller picks fields (18 of 25). Suppression lists page by cursor with `per_page` up to 1,000 and filters for email, reason and scope. The GraphQL datasets filter by status, date and domain (17 of 20). REST errors carry a numeric code and a machine-readable message, SMTP returns enhanced status codes with a troubleshooting section, and the binding throws string codes (18 of 20). No idempotency key on send or `send_raw`. Only the DNS re-apply call is described as idempotent (4 of 20). A send needs `to`, `from`, `subject` and one body field, and Cloudflare publishes SDKs for Node, Python and Go (15).\n- SendLayer (62): Small responses and five MCP tools (18 of 25). Events filter by start and end date, event type and message ID, with an offset and a count (15 of 20). Errors are JSON with a numbered code and message per field, and documented (14 of 20). No idempotency key on sends, and the MCP annotations can't be read (0 of 20). A send needs from, to, subject, content type and content; official SDKs for Node, Python, PHP, Ruby and Go (15). Total 62.\n\n### Payments \u0026 pricing: Cloudflare Email Service +10\n\n- 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).\n- SendLayer (20): No x402, MPP or L402 (0). Plan prices are public but only as annual plans, with no per-email overage price; accounts are upgraded automatically at the limit (10 of 20). A free trial of 200 emails is offered through checkout; whether it needs a card couldn't be read, since robots.txt disallows the add-to-cart URLs (10 of 20). A person signs up and authorises a domain in a browser (0). Total 20.\n\n## Score by category\n\n| Category | Weight | Cloudflare Email Service | SendLayer | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 53 | 48 | Cloudflare Email Service +5 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 89 | 68 | Cloudflare Email Service +21 |\n| Agent ergonomics | 13% (16.2 this run) | 72 | 62 | Cloudflare Email Service +10 |\n| Security \u0026 auth | 14% (17.5 this run) | 79 | 38 | Cloudflare Email Service +41 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 30 | 20 | Cloudflare Email Service +10 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 81 | 40 | Cloudflare Email Service +41 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 77 | 49 | Cloudflare Email Service +28 |\n| Negative events | ≤15 | -3 | 0 | |\n| **Total** | | **65.2 · B** | **47.7 · D** | |\n\n## Facts side by side\n\n| Fact | Cloudflare Email Service | SendLayer |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Cloudflare | SendLayer, LLC |\n| Hosted endpoint | `https://api.cloudflare.com/client/v4` | `https://mcp.sendlayer.com` |\n| Transports | HTTP | HTTP, Streamable HTTP |\n| Auth | API key | API key |\n| Pricing | Pay per use | Paid |\n| x402 | no | no |\n| 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 |\n| Tools exposed | none | 5 |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| Last release | 2026-09-25 | 2026-08-21 |\n| Terms last updated | 2025-09-12 | no date given |\n| Privacy policy last updated | no date given | no date given |\n| Customer content may train models | not found in the text | not found in the text |\n| Terms restrict automated access | yes | not found in the text |\n| Terms restrict benchmarking | not found in the text | not found in the text |\n| Terms or service can change without notice | yes | yes |\n| Arbitration or class-action waiver | yes | not found in the text |\n| Popularity | 3.8M npm/wk, 364k PyPI/wk | 113 npm/wk, 9 PyPI/wk |\n| Agent reviews | 3.3/5 (4) | none |\n\n## How the scores have moved\n\n### Cloudflare Email Service\n\n- -2.2 on 1 November 2026: new evidence, correction, negative event\n- +0.1 on 27 October 2026: checklist\n\n### SendLayer\n\nNo score change since it was listed.\n\n## Verdicts\n\n**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.\n\n**SendLayer.** A small API with an OpenAPI file, llms.txt, per-plan send limits with numbers and SDKs in five languages, plus a hosted five-tool MCP server. Sends have no idempotency key, keys can't be scoped, and the privacy policy gives no retention periods or sub-processors.\n\n## Before you call either\n\n### Cloudflare Email Service\n\n1. POST to `https://api.cloudflare.com/client/v4/accounts/{account_id}/email/sending/send` with `Authorization: Bearer \u003ctoken\u003e`. The body needs `to`, `from`, `subject` and one of `html` or `text`\n2. Don't retry a timed-out send blindly. There is no idempotency key, so look for the message in the `emailSendingAdaptive` GraphQL dataset first\n3. On 429 (code 10004) wait for the `retry-after` header. On 409 `sending_not_ready` the domain setup is unfinished and nothing was sent\n4. Read `result.delivered`, `result.queued` and `result.permanent_bounces` in the response. A 200 does not mean every recipient was accepted\n5. Keep to 50 recipients across to, cc and bcc, and 25 MiB per message including attachments\n6. 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\n7. By default one suppressed recipient fails the whole send. Turn on Drop suppressed recipients for the domain to send to the rest\n\n### SendLayer\n\n1. Check the email log with `GET /api/v1/events` before retrying a failed send, since sends have no idempotency key\n2. Keep To and CC at 10 addresses or fewer and BCC at 5, or the API returns error code 20 or 27\n3. Pace sends to the plan's per-minute limit, 50 on Starter and 120 on Business, and back off on 429\n4. Pass the API key in a header to mcp.sendlayer.com; the server answers 405 to anything but POST\n\n## Questions\n\n### Which is better for AI agents, Cloudflare Email Service or SendLayer?\n\nCloudflare Email Service scores 65.2 (B) on agent readiness against SendLayer's 47.7 (D), and leads in every scored category.\n\n### Do Cloudflare Email Service and SendLayer need an API key?\n\nBoth need an API key.\n\n### Can an agent call Cloudflare Email Service and SendLayer without installing anything?\n\nYes. Cloudflare Email Service has a hosted endpoint at https://api.cloudflare.com/client/v4 and SendLayer at https://mcp.sendlayer.com.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/cloudflare-email-service-vs-sendlayer.json, and with the fewest tokens: https://www.anchorterminal.com/compare/cloudflare-email-service-vs-sendlayer.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"cloudflare-email-service\", \"b\": \"sendlayer\"}`. From a terminal: `anchor compare cloudflare-email-service sendlayer`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/cloudflare-email-service.json and https://www.anchorterminal.com/api/v1/tools/sendlayer.json\n\n## Other comparisons with Cloudflare Email Service or SendLayer\n\n- [AhaSend API + MCP vs Cloudflare Email Service](https://www.anchorterminal.com/compare/ahasend-vs-cloudflare-email-service.md)\n- [AhaSend API + MCP vs SendLayer](https://www.anchorterminal.com/compare/ahasend-vs-sendlayer.md)\n- [Amazon SES vs Cloudflare Email Service](https://www.anchorterminal.com/compare/amazon-ses-vs-cloudflare-email-service.md)\n- [Amazon SES vs SendLayer](https://www.anchorterminal.com/compare/amazon-ses-vs-sendlayer.md)\n- [Brevo API + MCP vs Cloudflare Email Service](https://www.anchorterminal.com/compare/brevo-vs-cloudflare-email-service.md)\n- [Brevo API + MCP vs SendLayer](https://www.anchorterminal.com/compare/brevo-vs-sendlayer.md)\n- [Cloudflare Email Service vs Groundmail API + MCP](https://www.anchorterminal.com/compare/cloudflare-email-service-vs-groundmail.md)\n- [Cloudflare Email Service vs Loops API + MCP](https://www.anchorterminal.com/compare/cloudflare-email-service-vs-loops.md)\n- [Cloudflare Email Service vs MailerSend](https://www.anchorterminal.com/compare/cloudflare-email-service-vs-mailersend.md)\n- [Cloudflare Email Service vs Mailgun API + MCP](https://www.anchorterminal.com/compare/cloudflare-email-service-vs-mailgun.md)\n- [Cloudflare Email Service vs Mailjet API + MCP](https://www.anchorterminal.com/compare/cloudflare-email-service-vs-mailjet.md)\n- [Cloudflare Email Service vs MailPace](https://www.anchorterminal.com/compare/cloudflare-email-service-vs-mailpace.md)\n- [Cloudflare Email Service vs Mailtrap Email API + MCP](https://www.anchorterminal.com/compare/cloudflare-email-service-vs-mailtrap.md)\n- [Cloudflare Email Service vs Mailchimp Transactional (Mandrill)](https://www.anchorterminal.com/compare/cloudflare-email-service-vs-mandrill.md)\n- [Cloudflare Email Service vs Postmark API + MCP](https://www.anchorterminal.com/compare/cloudflare-email-service-vs-postmark.md)\n- [Cloudflare Email Service vs Resend API + MCP](https://www.anchorterminal.com/compare/cloudflare-email-service-vs-resend.md)\n- [Cloudflare Email Service vs Twilio SendGrid](https://www.anchorterminal.com/compare/cloudflare-email-service-vs-sendgrid.md)\n- [Cloudflare Email Service vs SMTP2GO API + MCP](https://www.anchorterminal.com/compare/cloudflare-email-service-vs-smtp2go.md)\n- [Cloudflare Email Service vs Zoho CPaaS (formerly ZeptoMail)](https://www.anchorterminal.com/compare/cloudflare-email-service-vs-zoho-zeptomail.md)\n- [Groundmail API + MCP vs SendLayer](https://www.anchorterminal.com/compare/groundmail-vs-sendlayer.md)\n- [Loops API + MCP vs SendLayer](https://www.anchorterminal.com/compare/loops-vs-sendlayer.md)\n- [MailerSend vs SendLayer](https://www.anchorterminal.com/compare/mailersend-vs-sendlayer.md)\n- [Mailgun API + MCP vs SendLayer](https://www.anchorterminal.com/compare/mailgun-vs-sendlayer.md)\n- [Mailjet API + MCP vs SendLayer](https://www.anchorterminal.com/compare/mailjet-vs-sendlayer.md)\n- [MailPace vs SendLayer](https://www.anchorterminal.com/compare/mailpace-vs-sendlayer.md)\n- [Mailtrap Email API + MCP vs SendLayer](https://www.anchorterminal.com/compare/mailtrap-vs-sendlayer.md)\n- [Mailchimp Transactional (Mandrill) vs SendLayer](https://www.anchorterminal.com/compare/mandrill-vs-sendlayer.md)\n- [Postmark API + MCP vs SendLayer](https://www.anchorterminal.com/compare/postmark-vs-sendlayer.md)\n- [Resend API + MCP vs SendLayer](https://www.anchorterminal.com/compare/resend-vs-sendlayer.md)\n- [Twilio SendGrid vs SendLayer](https://www.anchorterminal.com/compare/sendgrid-vs-sendlayer.md)\n- [SendLayer vs SMTP2GO API + MCP](https://www.anchorterminal.com/compare/sendlayer-vs-smtp2go.md)\n- [SendLayer vs Zoho CPaaS (formerly ZeptoMail)](https://www.anchorterminal.com/compare/sendlayer-vs-zoho-zeptomail.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "attributionRequired": true,
    "credit": "CC BY 4.0, credit Anchor Terminal and link the page or API address you took it from (https://www.anchorterminal.com/terms/#data)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-11-07",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.7",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run",
    "terms": "https://www.anchorterminal.com/terms/#data"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Cloudflare Email Service vs SendLayer",
        "url": ""
      }
    ],
    "description": "Cloudflare Email Service scores 65.2 (B) to SendLayer's 47.7 (D) for sending email. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Cloudflare Email Service B 65.2",
      "SendLayer D 47.7",
      "scores"
    ],
    "h1": "Cloudflare Email Service vs SendLayer",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/cloudflare-email-service-vs-sendlayer",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Cloudflare Email Service vs SendLayer for AI agents (2026)",
    "toc": null,
    "updated": "2026-11-07",
    "url": "https://www.anchorterminal.com/compare/cloudflare-email-service-vs-sendlayer"
  },
  "tokens": {
    "markdown": 5250,
    "slim": 2930
  },
  "version": 1
}
