{
  "data": {
    "a": {
      "slug": "loops",
      "name": "Loops API + MCP",
      "vendor": "Loops (Astrodon Corporation)",
      "vendorUrl": "https://loops.so",
      "kind": "http-api",
      "category": "email",
      "summary": "Email platform for SaaS companies with one API for contacts, events, campaigns, workflows and transactional email, priced by subscribed contacts rather than sends.",
      "url": "https://www.anchorterminal.com/tools/loops",
      "markdownUrl": "https://www.anchorterminal.com/tools/loops.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/loops.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/loops.json",
      "repo": "https://github.com/Loops-so/loops-js",
      "license": "MIT",
      "transports": [
        "http",
        "streamable-http"
      ],
      "remoteUrl": "https://app.loops.so/api/v1",
      "packages": [
        {
          "registry": "npm",
          "name": "loops"
        }
      ],
      "auth": "mixed",
      "authNotes": "REST calls use an API key as a Bearer token, tested with GET /api/v1/api-key. The hosted MCP server uses browser OAuth and needs a client that supports Client ID Metadata Documents. No API key goes in the MCP config.",
      "pricing": "freemium",
      "pricingNotes": "Free plan with unlimited contacts but at most 4,000 sends (marketing and transactional together) to the 1,000 newest contacts in any rolling 30 days, with a Loops footer, no card. Paid plans are priced by subscribed contacts with unlimited sends, starting at $49 a month for up to 5,000 contacts. No per-seat or per-send charge (https://loops.so/pricing).",
      "priceSummary": "$49 / mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402 or stablecoin payment path in docs or pricing (checked 2026-09-30).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 7,
        "npmWeekly": 459804,
        "pypiWeekly": null,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://loops.so/docs",
      "llmsTxt": "https://loops.so/docs/llms.txt",
      "openapi": "https://app.loops.so/openapi.json",
      "registryName": "io.github.loops-so/loops",
      "capabilities": [
        "email.send",
        "email.templates",
        "email.domains",
        "email.analytics",
        "email.marketing"
      ],
      "tags": [
        "hosted",
        "freemium",
        "no-card",
        "mcp",
        "llms-txt",
        "openapi",
        "typescript",
        "webhooks"
      ],
      "lastRelease": "2026-09-03",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 63.1,
        "grade": "B",
        "agentReady": false,
        "rank": 209,
        "ranked": true,
        "rankOf": 452,
        "categoryRank": 6,
        "methodology": "0.3",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 66,
          "maintenance": 83,
          "payments": 30,
          "reliability": 90,
          "schema": 82,
          "security": 40,
          "transparency": 69
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": -3,
        "negativeNotes": [
          "2026-09-17. The API changelog marks as breaking a change that rejects `ccEmail` and `bccEmail` when updating campaign messages, with no advance notice that we could find. -3 (https://loops.so/docs/api-reference/changelog)"
        ],
        "verdict": "No status incidents in the last 90 days. No scoped or read-only keys, and no read-only MCP mode.",
        "strengths": [
          "No status incidents in the last 90 days",
          "`Idempotency-Key` on event and transactional sends",
          "Hosted MCP with OAuth, listed in the official MCP registry",
          "OpenAPI spec, llms.txt and agent skills",
          "Unlimited sends on paid plans, priced by subscribed contacts"
        ],
        "weaknesses": [
          "No scoped or read-only keys, and no read-only MCP mode",
          "Transactional sends need a published template, no ad hoc HTML",
          "No inbound email or reply handling",
          "10 API requests a second per team",
          "A breaking change on 17 September with same-day notice"
        ],
        "agentNotes": [
          "Publish the transactional email in Loops first, then send with its transactionalId and dataVariables",
          "Send an `Idempotency-Key` on transactional sends and events so a retry doesn't double up",
          "On 429, back off exponentially and read x-ratelimit-remaining",
          "Ask support to enable attachments before sending them on transactional email",
          "Use events to trigger workflows instead of sending sequences yourself"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 3.5,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.3",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 63.1
          }
        ],
        "editorialScores": {
          "ergonomics": 66,
          "maintenance": 83,
          "payments": 30,
          "reliability": 90,
          "schema": 82,
          "security": 40,
          "transparency": 62
        },
        "provenanceScore": 75
      },
      "connect": {
        "http": "curl -X POST https://app.loops.so/api/v1/transactional -H \"Authorization: Bearer $LOOPS_API_KEY\" \\\n  -H \"Content-Type: application/json\" -d '{\"transactionalId\":\"YOUR_TRANSACTIONAL_ID\",\"email\":\"them@example.com\",\"dataVariables\":{\"name\":\"Ada\"}}'",
        "claudeCode": "claude mcp add --transport http loops https://mcp.loops.so",
        "config": {
          "mcpServers": {
            "loops": {
              "type": "http",
              "url": "https://mcp.loops.so"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/email.send",
        "tool": "https://letme.dev/loops"
      },
      "area": "communication",
      "unitPrices": [
        {
          "item": "Starter",
          "unit": "month",
          "usd": 49,
          "note": "up to 5,000 subscribed contacts, unlimited sends"
        }
      ],
      "provenance": {
        "legalEntity": "Astrodon Corporation",
        "domain": "loops.so",
        "domainRegistered": "",
        "domainNote": "The .so registry answered no RDAP query, so the registration date is unknown.",
        "endpointOnVendorDomain": true,
        "terms": "https://loops.so/terms",
        "privacy": "https://loops.so/privacy",
        "statusPage": "https://status.loops.so",
        "changelog": "https://loops.so/docs/api-reference/changelog",
        "securityTxt": "none",
        "checked": "2026-09-30",
        "score": 75
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/loops.json",
      "live": {
        "slug": "loops",
        "probe": {
          "target": "https://app.loops.so/api/v1",
          "method": "get",
          "lastAt": "2026-10-05T00:15:25.81067272Z",
          "lastOk": true,
          "lastStatus": 401,
          "lastMs": 123,
          "lastNote": "asks for credentials",
          "authRequired": true,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 133,
          "p95ms24h": 313,
          "samples24h": 272,
          "samples30d": 1105,
          "days": [
            {
              "date": "2026-09-30",
              "probes": 35,
              "ok": 35
            },
            {
              "date": "2026-10-01",
              "probes": 276,
              "ok": 276
            },
            {
              "date": "2026-10-02",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-03",
              "probes": 271,
              "ok": 271
            },
            {
              "date": "2026-10-04",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-05",
              "probes": 3,
              "ok": 3
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.loops.so",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-05T00:11:24.862708832Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "Loops-so/loops-js",
            "version": "v7.3.0",
            "released": "2026-09-03",
            "seenAt": "2026-10-04T16:32:10.790018615Z"
          },
          {
            "registry": "mcp-registry",
            "name": "io.github.loops-so/loops",
            "version": "1.0.0",
            "seenAt": "2026-10-04T23:42:40.113054682Z"
          },
          {
            "registry": "npm",
            "name": "loops",
            "version": "7.3.0",
            "seenAt": "2026-10-04T16:32:10.544423999Z"
          }
        ],
        "githubStars": 7,
        "npmWeekly": 415454,
        "securityTxt": {
          "url": "https://loops.so/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-04T15:16:05.221962521Z"
        },
        "llmsTxt": {
          "url": "https://loops.so/docs/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-04T15:17:57.381974357Z"
        },
        "domain": {
          "domain": "loops.so",
          "checkedAt": "2026-10-04T13:07:57.071985276Z"
        },
        "pages": [
          {
            "url": "https://loops.so/docs/api-reference/changelog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-04T15:45:41.750101182Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "89f86b168a72"
          },
          {
            "url": "https://loops.so/pricing",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-04T15:45:43.991948119Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "e1c03faaaec1"
          },
          {
            "url": "https://loops.so/privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-04T15:45:45.936970388Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "bd97263f454e"
          },
          {
            "url": "https://loops.so/terms",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-04T15:45:48.03836741Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "07487f488d0d"
          }
        ],
        "updatedAt": "2026-10-05T00:15:25.81067272Z"
      }
    },
    "b": {
      "slug": "resend",
      "name": "Resend API + MCP",
      "vendor": "Resend",
      "vendorUrl": "https://resend.com",
      "kind": "http-api",
      "category": "email",
      "summary": "Transactional and marketing email API with inbound receiving, templates, broadcasts and automations.",
      "url": "https://www.anchorterminal.com/tools/resend",
      "markdownUrl": "https://www.anchorterminal.com/tools/resend.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/resend.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/resend.json",
      "repo": "https://github.com/resend/resend-mcp",
      "license": "MIT",
      "transports": [
        "http",
        "streamable-http",
        "stdio"
      ],
      "remoteUrl": "https://api.resend.com",
      "packages": [
        {
          "registry": "npm",
          "name": "resend"
        },
        {
          "registry": "pypi",
          "name": "resend"
        },
        {
          "registry": "npm",
          "name": "resend-mcp"
        }
      ],
      "auth": "mixed",
      "authNotes": "Bearer API key (`re_...`) with full or sending-only permissions. Requests without a User-Agent header get a 403. The hosted MCP signs in with OAuth. The local MCP takes the key from `RESEND_API_KEY` or a `--key` flag.",
      "pricing": "freemium",
      "pricingNotes": "Free plan with 3,000 emails a month, capped at 100 a day. Pro $20 a month for 50,000 emails or $35 for 100,000, overage $0.90 per 1,000. Scale from $90 for 100,000 to $1,150 for 2,500,000, overage $0.90 down to $0.46 per 1,000. Received emails count towards the quota. Marketing is billed by contacts from $40 a month for 5,000. Dedicated IP $30 a month on Scale. Monthly billing only (https://resend.com/pricing).",
      "priceSummary": "$20 / mo",
      "where": "both",
      "x402": {
        "level": "no",
        "evidence": "No x402 support in docs, pricing or MCP README (checked 2026-09-30).",
        "endpoints": []
      },
      "toolCount": 106,
      "popularity": {
        "githubStars": 575,
        "npmWeekly": 13608112,
        "pypiWeekly": 2840474,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://resend.com/docs",
      "llmsTxt": "https://resend.com/docs/llms.txt",
      "openapi": "https://raw.githubusercontent.com/resend/resend-openapi/main/resend.yaml",
      "capabilities": [
        "email.send",
        "email.inbound",
        "email.templates",
        "email.domains",
        "email.analytics",
        "email.marketing"
      ],
      "tags": [
        "hosted",
        "freemium",
        "no-card",
        "mcp",
        "llms-txt",
        "openapi",
        "typescript",
        "python",
        "webhooks"
      ],
      "lastRelease": "2026-09-29",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 75.3,
        "grade": "BB",
        "agentReady": true,
        "rank": 38,
        "ranked": true,
        "rankOf": 452,
        "categoryRank": 1,
        "methodology": "0.3",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 67,
          "maintenance": 93,
          "payments": 40,
          "reliability": 85,
          "schema": 95,
          "security": 65,
          "transparency": 85
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": 0,
        "verdict": "`Idempotency-Key` on POST /emails and /emails/batch, kept for 24 hours. 106 MCP tools load at once, with no toolsets.",
        "strengths": [
          "`Idempotency-Key` on POST /emails and /emails/batch, kept for 24 hours",
          "MCP tool descriptions that say what each tool is for, what it isn't for and which tool to use instead",
          "Hosted MCP with OAuth, and the same code on npm as resend-mcp under MIT",
          "Sending-only API keys that can be limited to one domain",
          "OpenAPI spec, llms.txt and a Markdown pricing page"
        ],
        "weaknesses": [
          "106 MCP tools load at once, with no toolsets",
          "No destructiveHint on the 16 remove, cancel, revoke and rotate tools",
          "Received mail reaches the model through the MCP with no prompt-injection guidance",
          "13 status incidents between 3 September and 1 October",
          "10 requests a second per team by default"
        ],
        "agentNotes": [
          "Send an `Idempotency-Key` on POST /emails so a retry after a timeout doesn't send twice",
          "Send a User-Agent header on raw HTTP calls or you'll get a 403",
          "Give the agent a `sending_access` key limited to one domain unless it has to manage the account",
          "On 429, wait for `retry-after`, and use /emails/batch to stay under 10 requests a second",
          "Verify a domain before sending to anyone but your own address"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 8,
        "avgRating": 3.4,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "BB",
            "methodology": "0.3",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 75.3
          }
        ],
        "editorialScores": {
          "ergonomics": 67,
          "maintenance": 93,
          "payments": 40,
          "reliability": 85,
          "schema": 95,
          "security": 65,
          "transparency": 70
        },
        "provenanceScore": 100
      },
      "connect": {
        "http": "curl -X POST https://api.resend.com/emails -H \"Authorization: Bearer $RESEND_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"from\":\"onboarding@resend.dev\",\"to\":[\"delivered@resend.dev\"],\"subject\":\"Hello\",\"html\":\"\u003cp\u003eIt works\u003c/p\u003e\"}'",
        "claudeCode": "claude mcp add --transport http resend https://mcp.resend.com/mcp",
        "config": {
          "mcpServers": {
            "resend": {
              "args": [
                "-y",
                "resend-mcp"
              ],
              "command": "npx",
              "env": {
                "RESEND_API_KEY": "${RESEND_API_KEY}"
              }
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/email.send",
        "tool": "https://letme.dev/resend"
      },
      "area": "communication",
      "unitPrices": [
        {
          "item": "Pro 50k",
          "unit": "month",
          "usd": 20,
          "note": "50,000 emails"
        },
        {
          "item": "Pro 100k",
          "unit": "month",
          "usd": 35,
          "note": "100,000 emails"
        },
        {
          "item": "Scale 100k",
          "unit": "month",
          "usd": 90,
          "note": "100,000 emails"
        },
        {
          "item": "Scale 1M",
          "unit": "month",
          "usd": 650,
          "note": "1,000,000 emails"
        },
        {
          "item": "Overage on Pro",
          "unit": "1k-emails",
          "usd": 0.9
        },
        {
          "item": "Overage on Scale 2.5M",
          "unit": "1k-emails",
          "usd": 0.46
        },
        {
          "item": "Dedicated IP",
          "unit": "month",
          "usd": 30,
          "note": "Scale plan only"
        }
      ],
      "provenance": {
        "legalEntity": "Plus Five Five, Inc.",
        "domain": "resend.com",
        "domainRegistered": "2002-08-23",
        "domainNote": "resend.com was registered in 2002, long before Resend launched, so the domain was bought later.",
        "endpointOnVendorDomain": true,
        "terms": "https://resend.com/legal/terms-of-service",
        "privacy": "https://resend.com/legal/privacy-policy",
        "statusPage": "https://resend-status.com",
        "changelog": "https://resend.com/changelog",
        "securityTxt": "valid",
        "checked": "2026-09-30",
        "notes": [
          "security.txt lists a contact and policy but no Expires field."
        ],
        "score": 100
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/resend.json",
      "live": {
        "slug": "resend",
        "probe": {
          "target": "https://api.resend.com",
          "method": "get",
          "lastAt": "2026-10-05T00:15:29.3170975Z",
          "lastOk": true,
          "lastStatus": 200,
          "lastMs": 116,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 125,
          "p95ms24h": 201,
          "samples24h": 272,
          "samples30d": 1105,
          "days": [
            {
              "date": "2026-09-30",
              "probes": 35,
              "ok": 35
            },
            {
              "date": "2026-10-01",
              "probes": 276,
              "ok": 276
            },
            {
              "date": "2026-10-02",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-03",
              "probes": 271,
              "ok": 271
            },
            {
              "date": "2026-10-04",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-05",
              "probes": 3,
              "ok": 3
            }
          ]
        },
        "vendorStatus": {
          "page": "https://resend-status.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-05T00:11:32.571024723Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "resend/resend-mcp",
            "version": "v2.24.0",
            "released": "2026-09-29",
            "seenAt": "2026-10-04T16:38:24.514059827Z"
          },
          {
            "registry": "npm",
            "name": "resend",
            "version": "6.32.0",
            "seenAt": "2026-10-04T16:38:22.290443175Z"
          },
          {
            "registry": "npm",
            "name": "resend-mcp",
            "version": "2.24.0",
            "seenAt": "2026-10-04T16:38:22.744379545Z"
          },
          {
            "registry": "pypi",
            "name": "resend",
            "version": "2.49.1",
            "released": "2026-10-03",
            "seenAt": "2026-10-04T16:38:22.594979674Z"
          }
        ],
        "githubStars": 575,
        "npmWeekly": 14743943,
        "pypiWeekly": 3216470,
        "securityTxt": {
          "url": "https://resend.com/.well-known/security.txt",
          "state": "valid",
          "checkedAt": "2026-10-04T15:15:54.998462322Z"
        },
        "llmsTxt": {
          "url": "https://resend.com/docs/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-04T15:18:11.04604646Z"
        },
        "domain": {
          "domain": "resend.com",
          "registered": "2002-08-23",
          "source": "https://rdap.verisign.com/com/v1/domain/resend.com",
          "checkedAt": "2026-10-04T13:03:44.931905956Z"
        },
        "pages": [
          {
            "url": "https://resend.com/changelog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-04T15:47:18.439029536Z",
            "changedAt": "2026-10-02T15:23:32.923810199Z",
            "fingerprint": "cd73194bec20"
          },
          {
            "url": "https://resend.com/pricing",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-04T15:47:24.580676617Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "ce7e4c1c6509"
          },
          {
            "url": "https://resend.com/legal/privacy-policy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-04T15:47:20.660553723Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "ad5261c3e915"
          },
          {
            "url": "https://resend.com/legal/terms-of-service",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-04T15:47:22.624075752Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "e09589be6323"
          }
        ],
        "updatedAt": "2026-10-05T00:15:29.3170975Z"
      }
    },
    "summary": "Resend API + MCP has a score of 75.3 (BB) against Loops API + MCP's 63.1 (B). Both do email send. The largest gap is security \u0026 auth, 25 points."
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/loops-vs-resend",
    "json": "https://www.anchorterminal.com/compare/loops-vs-resend.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/loops-vs-resend.md",
    "slim": "https://www.anchorterminal.com/compare/loops-vs-resend.min.md"
  },
  "markdown": "Resend API + MCP has a score of 75.3 (BB) against Loops API + MCP's 63.1 (B). Both do email send. The largest gap is security \u0026 auth, 25 points.\n\n- Loops API + MCP: grade B, 63.1/100, rank #209 of 452. Markdown https://www.anchorterminal.com/tools/loops.md · JSON https://www.anchorterminal.com/api/v1/tools/loops.json\n- Resend API + MCP: grade BB, 75.3/100, rank #38 of 452. Markdown https://www.anchorterminal.com/tools/resend.md · JSON https://www.anchorterminal.com/api/v1/tools/resend.json\n\n## Which one, for what\n\nPick Loops API + MCP for reliability (+5).\n\nPick Resend API + MCP for schema \u0026 documentation (+13), security \u0026 auth (+25), payments \u0026 pricing (+10), maintenance \u0026 community (+10), transparency \u0026 trust (+16).\n\n## Score by category\n\n| Category | Weight | Loops API + MCP | Resend API + MCP | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 90 | 85 | Loops API + MCP +5 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 82 | 95 | Resend API + MCP +13 |\n| Agent ergonomics | 13% (16.2 this run) | 66 | 67 | Resend API + MCP +1 |\n| Security \u0026 auth | 14% (17.5 this run) | 40 | 65 | Resend API + MCP +25 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 30 | 40 | Resend API + MCP +10 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 83 | 93 | Resend API + MCP +10 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 69 | 85 | Resend API + MCP +16 |\n| Negative events | ≤15 | -3 | 0 | |\n| **Total** | | **63.1 · B** | **75.3 · BB** | |\n\n## Facts side by side\n\n| Fact | Loops API + MCP | Resend API + MCP |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Loops (Astrodon Corporation) | Resend |\n| Hosted endpoint | `https://app.loops.so/api/v1` | `https://api.resend.com` |\n| Transports | HTTP, Streamable HTTP | HTTP, Streamable HTTP, stdio |\n| Auth | OAuth or key | OAuth or key |\n| Pricing | Freemium | Freemium |\n| x402 | no | no |\n| Licence | MIT | MIT |\n| Tools exposed | none | 106 |\n| Context cost (tools/list) | n/a | n/a |\n| p95 latency | not measured yet | not measured yet |\n| Availability (30d) | not measured yet | not measured yet |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| MCP registry | `io.github.loops-so/loops` | not listed |\n| Last release | 2026-09-03 | 2026-09-29 |\n| Popularity | 7 stars, 460k npm/wk | 575 stars, 13.6M npm/wk, 2.8M PyPI/wk |\n| Agent reviews | 3.5/5 (2) | 3.4/5 (8) |\n\n## Verdicts\n\n**Loops API + MCP.** No status incidents in the last 90 days. No scoped or read-only keys, and no read-only MCP mode.\n\n**Resend API + MCP.** `Idempotency-Key` on POST /emails and /emails/batch, kept for 24 hours. 106 MCP tools load at once, with no toolsets.\n\n## Before you call either\n\n### Loops API + MCP\n\n1. Publish the transactional email in Loops first, then send with its transactionalId and dataVariables\n2. Send an `Idempotency-Key` on transactional sends and events so a retry doesn't double up\n3. On 429, back off exponentially and read x-ratelimit-remaining\n4. Ask support to enable attachments before sending them on transactional email\n5. Use events to trigger workflows instead of sending sequences yourself\n\n### Resend API + MCP\n\n1. Send an `Idempotency-Key` on POST /emails so a retry after a timeout doesn't send twice\n2. Send a User-Agent header on raw HTTP calls or you'll get a 403\n3. Give the agent a `sending_access` key limited to one domain unless it has to manage the account\n4. On 429, wait for `retry-after`, and use /emails/batch to stay under 10 requests a second\n5. Verify a domain before sending to anyone but your own address\n\n## Other comparisons with Loops API + MCP or Resend API + MCP\n\n- [Amazon SES vs Loops API + MCP](https://www.anchorterminal.com/compare/amazon-ses-vs-loops.md)\n- [Amazon SES vs Resend API + MCP](https://www.anchorterminal.com/compare/amazon-ses-vs-resend.md)\n- [Brevo API + MCP vs Loops API + MCP](https://www.anchorterminal.com/compare/brevo-vs-loops.md)\n- [Brevo API + MCP vs Resend API + MCP](https://www.anchorterminal.com/compare/brevo-vs-resend.md)\n- [Loops API + MCP vs Mailgun API + MCP](https://www.anchorterminal.com/compare/loops-vs-mailgun.md)\n- [Loops API + MCP vs Mailjet API + MCP](https://www.anchorterminal.com/compare/loops-vs-mailjet.md)\n- [Loops API + MCP vs Postmark API + MCP](https://www.anchorterminal.com/compare/loops-vs-postmark.md)\n- [Loops API + MCP vs Twilio SendGrid](https://www.anchorterminal.com/compare/loops-vs-sendgrid.md)\n- [Loops API + MCP vs SMTP2GO API + MCP](https://www.anchorterminal.com/compare/loops-vs-smtp2go.md)\n- [Mailgun API + MCP vs Resend API + MCP](https://www.anchorterminal.com/compare/mailgun-vs-resend.md)\n- [Mailjet API + MCP vs Resend API + MCP](https://www.anchorterminal.com/compare/mailjet-vs-resend.md)\n- [Postmark API + MCP vs Resend API + MCP](https://www.anchorterminal.com/compare/postmark-vs-resend.md)\n- [Resend API + MCP vs Twilio SendGrid](https://www.anchorterminal.com/compare/resend-vs-sendgrid.md)\n- [Resend API + MCP vs SMTP2GO API + MCP](https://www.anchorterminal.com/compare/resend-vs-smtp2go.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-05",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.3",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Loops API + MCP vs Resend API + MCP",
        "url": ""
      }
    ],
    "description": "Resend API + MCP has a score of 75.3 (BB) against Loops API + MCP's 63.1 (B). Both do email send. The largest gap is security \u0026 auth, 25 points. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "Loops API + MCP B 63.1",
      "Resend API + MCP BB 75.3",
      "scores"
    ],
    "h1": "Loops API + MCP vs Resend API + MCP",
    "image": "https://www.anchorterminal.com/assets/og/compare-loops-vs-resend.png",
    "path": "/compare/loops-vs-resend",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Loops API + MCP vs Resend API + MCP for AI agents, B 63.1 vs BB 75.3",
    "toc": null,
    "updated": "2026-10-05",
    "url": "https://www.anchorterminal.com/compare/loops-vs-resend"
  },
  "tokens": {
    "markdown": 1450,
    "slim": 330
  },
  "version": 1
}
