{
  "data": {
    "a": {
      "slug": "courier",
      "name": "Courier",
      "vendor": "Courier",
      "vendorUrl": "https://www.courier.com",
      "kind": "http-api",
      "category": "notifications",
      "summary": "Notification API that routes one message to email, SMS, push, an in-app Inbox, Slack, Microsoft Teams and WhatsApp through your own providers, with templates, digests, preferences and journeys.",
      "url": "https://www.anchorterminal.com/tools/courier",
      "markdownUrl": "https://www.anchorterminal.com/tools/courier.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/courier.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/courier.json",
      "repo": "https://github.com/trycourier/courier-node",
      "license": "Apache-2.0 (Node SDK)",
      "transports": [
        "http",
        "streamable-http"
      ],
      "remoteUrl": "https://api.courier.com",
      "packages": [
        {
          "registry": "npm",
          "name": "@trycourier/courier"
        },
        {
          "registry": "pypi",
          "name": "trycourier"
        }
      ],
      "auth": "api-key",
      "authNotes": "Workspace API key as `Authorization: Bearer \u003ckey\u003e` on the REST API. The hosted MCP at mcp.courier.com takes the key in an `api_key` header, with no OAuth. A JWT endpoint issues tokens for client SDKs such as the Inbox.",
      "pricing": "freemium",
      "pricingNotes": "Developer plan free for up to 10,000 sends a month. Business is pay as you go at $0.005 a send. Enterprise is custom with volume discounts. Billing counts notifications sent, not seats or channels (https://www.courier.com/docs/overview.md). Support is email on Developer, adds chat on Business, and Enterprise adds a shared Slack channel and an SLA (https://www.courier.com/docs/resources/help.md).",
      "priceSummary": "Freemium",
      "where": "hosted",
      "x402": {
        "level": "no",
        "endpoints": []
      },
      "toolCount": 170,
      "popularity": {
        "githubStars": 63,
        "npmWeekly": 189029,
        "pypiWeekly": 35385,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://www.courier.com/docs",
      "llmsTxt": "https://www.courier.com/docs/llms.txt",
      "openapi": "https://www.courier.com/docs/openapi-specs/openapi.documented.yml",
      "registryName": "io.github.trycourier/courier",
      "capabilities": [
        "notify.push",
        "notify.in-app",
        "notify.multichannel",
        "notify.preferences",
        "notify.digest"
      ],
      "tags": [
        "hosted",
        "freemium",
        "mcp",
        "llms-txt",
        "openapi",
        "typescript",
        "python",
        "enterprise"
      ],
      "lastRelease": "2026-09-24",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 70.5,
        "grade": "BB",
        "agentReady": true,
        "rank": 96,
        "ranked": true,
        "rankOf": 452,
        "categoryRank": 3,
        "methodology": "0.3",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 68,
          "maintenance": 86,
          "payments": 35,
          "reliability": 92,
          "schema": 84,
          "security": 56,
          "transparency": 65
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": 0,
        "verdict": "Free for 10,000 sends a month, then $0.005 a send with no platform fee. 170 MCP tools with no toolsets, filtering or read-only mode.",
        "strengths": [
          "Free for 10,000 sends a month, then $0.005 a send with no platform fee",
          "`POST /send` has no request-count rate limit, and the limited endpoints publish their numbers",
          "Idempotency keys replay for 25 hours by default and up to a year",
          "Public OpenAPI file, llms.txt with about 230 Markdown pages, and an agent skill",
          "Status page with no incidents posted since 18 June 2026"
        ],
        "weaknesses": [
          "170 MCP tools with no toolsets, filtering or read-only mode",
          "MCP authentication is a raw API key header with no OAuth or scopes",
          "Error responses documented only as `message` and `type`, with no list of codes",
          "Audit trail of key and template changes is Enterprise only",
          "No subprocessor list, data regions or retention periods in the privacy policy"
        ],
        "agentNotes": [
          "Send an `Idempotency-Key` header on every send so a retry doesn't notify twice",
          "Set `routing.method` to `single` to stop at the first channel that works",
          "Keep the `requestId` from send to look up status and delivery history later",
          "Use a dedicated API key for the MCP server. Every one of the 170 tools runs with that key's full rights",
          "Space resends at least 2 seconds apart per message or you get a 429"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 3,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "BB",
            "methodology": "0.3",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 70.5
          }
        ],
        "editorialScores": {
          "ergonomics": 68,
          "maintenance": 86,
          "payments": 35,
          "reliability": 92,
          "schema": 84,
          "security": 56,
          "transparency": 40
        },
        "provenanceScore": 90
      },
      "connect": {
        "http": "curl -X POST https://api.courier.com/send \\\n  -H \"Authorization: Bearer $COURIER_API_KEY\" -H \"Content-Type: application/json\" \\\n  -H \"Idempotency-Key: build-42\" \\\n  -d '{\"message\":{\"to\":{\"user_id\":\"user_123\"},\"content\":{\"title\":\"Build finished\",\"body\":\"All tests passed\"},\"routing\":{\"method\":\"single\",\"channels\":[\"push\",\"email\"]}}}'",
        "claudeCode": "claude mcp add --transport http courier https://mcp.courier.com --header \"api_key: $COURIER_API_KEY\"",
        "config": {
          "mcpServers": {
            "courier": {
              "headers": {
                "api_key": "${COURIER_API_KEY}"
              },
              "type": "http",
              "url": "https://mcp.courier.com"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/notify.push",
        "tool": "https://letme.dev/courier"
      },
      "area": "everyday",
      "unitPrices": [
        {
          "item": "Business send",
          "unit": "message",
          "usd": 0.005,
          "note": "Pay as you go after 10,000 free sends"
        }
      ],
      "provenance": {
        "legalEntity": "trycourier.com, Inc.",
        "domain": "courier.com",
        "domainRegistered": "1993-09-09",
        "domainNote": "courier.com was registered in 1993, long before Courier launched, so the domain was bought later.",
        "endpointOnVendorDomain": true,
        "terms": "https://www.courier.com/terms",
        "privacy": "https://www.courier.com/privacy-policy",
        "statusPage": "https://status.courier.com",
        "changelog": "https://www.courier.com/changelog/",
        "securityTxt": "none",
        "checked": "2026-09-30",
        "notes": [
          "Terms are governed by California law and give 143 2nd St, San Francisco, as the address.",
          "Certifications and data handling are published separately at security.courier.com."
        ],
        "score": 90
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/courier.json",
      "live": {
        "slug": "courier",
        "probe": {
          "target": "https://api.courier.com",
          "method": "get",
          "lastAt": "2026-10-04T23:32:45.893192507Z",
          "lastOk": true,
          "lastStatus": 403,
          "lastMs": 369,
          "lastNote": "asks for credentials",
          "authRequired": true,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 135,
          "p95ms24h": 394,
          "samples24h": 272,
          "samples30d": 895,
          "days": [
            {
              "date": "2026-10-01",
              "probes": 109,
              "ok": 109
            },
            {
              "date": "2026-10-02",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-03",
              "probes": 271,
              "ok": 271
            },
            {
              "date": "2026-10-04",
              "probes": 267,
              "ok": 267
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.courier.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-04T23:27:44.014430368Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "trycourier/courier-node",
            "version": "v9.11.0",
            "released": "2026-09-24",
            "seenAt": "2026-10-04T16:24:41.682946743Z"
          },
          {
            "registry": "mcp-registry",
            "name": "io.github.trycourier/courier",
            "version": "1.3.7",
            "seenAt": "2026-10-03T23:29:28.630222764Z"
          },
          {
            "registry": "npm",
            "name": "@trycourier/courier",
            "version": "9.11.0",
            "seenAt": "2026-10-04T16:24:41.01851751Z"
          },
          {
            "registry": "pypi",
            "name": "trycourier",
            "version": "9.11.0",
            "released": "2026-09-24",
            "seenAt": "2026-10-04T16:24:41.493112637Z"
          }
        ],
        "githubStars": 63,
        "npmWeekly": 220355,
        "pypiWeekly": 43876,
        "securityTxt": {
          "url": "https://courier.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-04T15:15:36.911141403Z"
        },
        "llmsTxt": {
          "url": "https://www.courier.com/docs/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-04T15:17:28.596906373Z"
        },
        "domain": {
          "domain": "courier.com",
          "registered": "1993-09-09",
          "source": "https://rdap.verisign.com/com/v1/domain/courier.com",
          "checkedAt": "2026-10-04T13:09:59.714592295Z"
        },
        "pages": [
          {
            "url": "https://www.courier.com/changelog/",
            "kind": "changelog",
            "status": 304,
            "checkedAt": "2026-10-04T15:49:55.731304641Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "cda43798db5a"
          },
          {
            "url": "https://www.courier.com/privacy-policy",
            "kind": "privacy",
            "status": 304,
            "checkedAt": "2026-10-04T15:49:58.086522562Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "e9b84df4985f"
          },
          {
            "url": "https://www.courier.com/terms",
            "kind": "terms",
            "status": 304,
            "checkedAt": "2026-10-04T15:49:59.807103351Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "15732fe78cb9"
          }
        ],
        "updatedAt": "2026-10-04T23:32:45.893192507Z"
      }
    },
    "b": {
      "slug": "suprsend",
      "name": "SuprSend",
      "vendor": "SuprSend",
      "vendorUrl": "https://www.suprsend.com",
      "kind": "http-api",
      "category": "notifications",
      "summary": "Notification workflow API for email, SMS, push, an in-app Inbox, Slack, Microsoft Teams and webhooks, with digests, batching and preferences per user and per tenant.",
      "url": "https://www.anchorterminal.com/tools/suprsend",
      "markdownUrl": "https://www.anchorterminal.com/tools/suprsend.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/suprsend.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/suprsend.json",
      "repo": "https://github.com/suprsend/cli",
      "license": "MIT (CLI and MCP server)",
      "transports": [
        "http",
        "stdio"
      ],
      "remoteUrl": "https://hub.suprsend.com",
      "packages": [
        {
          "registry": "npm",
          "name": "@suprsend/node-sdk"
        },
        {
          "registry": "pypi",
          "name": "suprsend-py-sdk"
        },
        {
          "registry": "npm",
          "name": "suprsend"
        }
      ],
      "auth": "api-key",
      "authNotes": "API key as `Authorization: Bearer` on the trigger API. Workspace key and secret pairs can be issued and rotated per service through the management API since 2026-09-22. The MCP server reads a service token from `SUPRSEND_SERVICE_TOKEN`, and a service token grants full workspace access.",
      "pricing": "freemium",
      "pricingNotes": "Free plan with 10,000 notifications a month, no card, unlimited team members and 30-day log retention. Essentials $110 a month ($100 billed yearly, $1,200 a year) for 50,000, then $2 per 1,000, with 30-day logs. Business $275 a month ($250 billed yearly, $3,000 a year) for 50,000, then $5 per 1,000, with 90-day logs and an audit trail. Paid plans list 99.9% uptime. Enterprise is custom. A notification is one message to one user or object on one channel, a digest or batch counts once, and sends SuprSend drops for opt-outs aren't billed, though provider failures are (https://www.suprsend.com/pricing).",
      "priceSummary": "$110 / mo",
      "where": "both",
      "x402": {
        "level": "no",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 12,
        "npmWeekly": 13318,
        "pypiWeekly": 1099,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://docs.suprsend.com",
      "llmsTxt": "https://docs.suprsend.com/llms.txt",
      "openapi": "https://docs.suprsend.com/openapi.yaml",
      "registryName": "io.github.suprsend/cli",
      "capabilities": [
        "notify.push",
        "notify.in-app",
        "notify.multichannel",
        "notify.preferences",
        "notify.digest"
      ],
      "tags": [
        "hosted",
        "freemium",
        "mcp",
        "llms-txt",
        "openapi",
        "typescript",
        "python",
        "webhooks",
        "enterprise"
      ],
      "lastRelease": "2026-09-28",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 72.9,
        "grade": "BB",
        "agentReady": true,
        "rank": 65,
        "ranked": true,
        "rankOf": 452,
        "categoryRank": 2,
        "methodology": "0.3",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 87,
          "maintenance": 81,
          "payments": 40,
          "reliability": 69,
          "schema": 94,
          "security": 66,
          "transparency": 69
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": 0,
        "verdict": "MCP tool descriptions say when to use each tool, when not to, and what it changes, with readOnlyHint and destructiveHint set. No rate-limit page or 429 guidance.",
        "strengths": [
          "MCP tool descriptions say when to use each tool, when not to, and what it changes, with readOnlyHint and destructiveHint set",
          "`--tools` loads a subset of the 22 built-in tools, and trigger tools register only for the workflows you name",
          "Free plan with 10,000 notifications, no card and unlimited seats",
          "Digests and batches bill as one notification, and opt-out drops aren't billed",
          "99.9% uptime listed on every paid plan, SOC 2 Type II and ISO 27001"
        ],
        "weaknesses": [
          "No rate-limit page or 429 guidance",
          "No hosted MCP server, only the local CLI",
          "Workspace secrets come back in plain text on every management API response",
          "A 20-minute platform outage on 20 August 2026 and repeated short API blips",
          "Audit trail on Business and Enterprise only, RBAC on Enterprise only"
        ],
        "agentNotes": [
          "Pass an idempotency key on each trigger. It holds for 24 hours",
          "Start the MCP server with `--tools` set to read-only groups for production workspaces",
          "Register trigger tools with `--workflows=\u003cslug\u003e` for only the workflows you need. The default registers none",
          "Count each bulk record against the rate limit, and keep bulk calls to 100 records and 800 KB",
          "Treat management API responses as secrets. They include the workspace secret in plain text"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 3,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "BB",
            "methodology": "0.3",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 72.9
          }
        ],
        "editorialScores": {
          "ergonomics": 87,
          "maintenance": 81,
          "payments": 40,
          "reliability": 69,
          "schema": 94,
          "security": 66,
          "transparency": 52
        },
        "provenanceScore": 86
      },
      "connect": {
        "http": "curl -X POST https://hub.suprsend.com/trigger/ \\\n  -H \"Authorization: Bearer $SUPRSEND_API_KEY\" -H \"Content-Type: application/json\" \\\n  -d '{\"workflow\":\"build-finished\",\"recipients\":[{\"distinct_id\":\"user_123\",\"$email\":[\"user@example.com\"]}],\"data\":{\"status\":\"passed\"}}'",
        "claudeCode": "claude mcp add suprsend --scope user --env SUPRSEND_SERVICE_TOKEN=$SUPRSEND_SERVICE_TOKEN -- npx -y suprsend start-mcp-server",
        "config": {
          "mcpServers": {
            "suprsend": {
              "args": [
                "-y",
                "suprsend",
                "start-mcp-server"
              ],
              "command": "npx",
              "env": {
                "SUPRSEND_SERVICE_TOKEN": "${SUPRSEND_SERVICE_TOKEN}"
              }
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/notify.push",
        "tool": "https://letme.dev/suprsend"
      },
      "area": "everyday",
      "unitPrices": [
        {
          "item": "Essentials",
          "unit": "month",
          "usd": 110,
          "note": "50,000 notifications, $100 billed yearly"
        },
        {
          "item": "Essentials overage",
          "unit": "message",
          "usd": 0.002
        },
        {
          "item": "Business",
          "unit": "month",
          "usd": 275,
          "note": "50,000 notifications, $250 billed yearly"
        },
        {
          "item": "Business overage",
          "unit": "message",
          "usd": 0.005
        }
      ],
      "provenance": {
        "legalEntity": "SuprStack Inc",
        "domain": "suprsend.com",
        "domainRegistered": "2020-12-27",
        "endpointOnVendorDomain": true,
        "terms": "https://www.suprsend.com/terms",
        "privacy": "https://www.suprsend.com/privacy",
        "statusPage": "https://status.suprsend.com",
        "changelog": "https://docs.suprsend.com/changelog/overview",
        "securityTxt": "none",
        "checked": "2026-09-30",
        "notes": [
          "Terms are governed by Delaware law and give only a support email, no postal address.",
          "The status page showed Third Party Dependencies as degraded (a Cloudflare Workers issue) when we checked."
        ],
        "score": 86
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/suprsend.json",
      "live": {
        "slug": "suprsend",
        "probe": {
          "target": "https://hub.suprsend.com",
          "method": "get",
          "lastAt": "2026-10-04T23:32:55.045670768Z",
          "lastOk": true,
          "lastStatus": 200,
          "lastMs": 69,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 79,
          "p95ms24h": 164,
          "samples24h": 272,
          "samples30d": 895,
          "days": [
            {
              "date": "2026-10-01",
              "probes": 109,
              "ok": 109
            },
            {
              "date": "2026-10-02",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-03",
              "probes": 271,
              "ok": 271
            },
            {
              "date": "2026-10-04",
              "probes": 267,
              "ok": 267
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.suprsend.com",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-10-04T21:40:30.40729232Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "suprsend/cli",
            "version": "1.0.1",
            "released": "2026-07-10",
            "seenAt": "2026-10-04T16:41:11.848846833Z"
          },
          {
            "registry": "mcp-registry",
            "name": "io.github.suprsend/cli",
            "version": "1.0.1",
            "seenAt": "2026-10-03T23:29:28.630222764Z"
          },
          {
            "registry": "npm",
            "name": "@suprsend/node-sdk",
            "version": "1.15.1",
            "seenAt": "2026-10-04T16:41:09.61896764Z"
          },
          {
            "registry": "npm",
            "name": "suprsend",
            "version": "1.0.1",
            "seenAt": "2026-10-04T16:41:10.296582788Z"
          },
          {
            "registry": "pypi",
            "name": "suprsend-py-sdk",
            "version": "0.20.0",
            "released": "2026-09-04",
            "seenAt": "2026-10-04T16:41:10.111791733Z"
          }
        ],
        "githubStars": 12,
        "npmWeekly": 11125,
        "pypiWeekly": 1074,
        "securityTxt": {
          "url": "https://suprsend.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-04T15:15:47.168187763Z"
        },
        "llmsTxt": {
          "url": "https://docs.suprsend.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-04T15:18:16.733762415Z"
        },
        "domain": {
          "domain": "suprsend.com",
          "registered": "2020-12-27",
          "source": "https://rdap.verisign.com/com/v1/domain/suprsend.com",
          "checkedAt": "2026-10-04T13:10:03.719103966Z"
        },
        "pages": [
          {
            "url": "https://docs.suprsend.com/changelog/overview",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-04T15:44:04.269843354Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "a51b9d1cfccd"
          },
          {
            "url": "https://www.suprsend.com/pricing",
            "kind": "pricing",
            "status": 304,
            "checkedAt": "2026-10-04T15:52:20.807951625Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "9b909a363f19"
          },
          {
            "url": "https://www.suprsend.com/privacy",
            "kind": "privacy",
            "status": 304,
            "checkedAt": "2026-10-04T15:52:22.910384524Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "73c6e3ac26d2"
          },
          {
            "url": "https://www.suprsend.com/terms",
            "kind": "terms",
            "status": 304,
            "checkedAt": "2026-10-04T15:52:24.877528099Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "97053f0651bd"
          }
        ],
        "updatedAt": "2026-10-04T23:32:55.045670768Z"
      }
    },
    "summary": "SuprSend has a score of 72.9 (BB) against Courier's 70.5 (BB). Both do notify push. The largest gap is reliability, 23 points."
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/courier-vs-suprsend",
    "json": "https://www.anchorterminal.com/compare/courier-vs-suprsend.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/courier-vs-suprsend.md",
    "slim": "https://www.anchorterminal.com/compare/courier-vs-suprsend.min.md"
  },
  "markdown": "SuprSend has a score of 72.9 (BB) against Courier's 70.5 (BB). Both do notify push. The largest gap is reliability, 23 points.\n\n- Courier: grade BB, 70.5/100, rank #96 of 452. Markdown https://www.anchorterminal.com/tools/courier.md · JSON https://www.anchorterminal.com/api/v1/tools/courier.json\n- SuprSend: grade BB, 72.9/100, rank #65 of 452. Markdown https://www.anchorterminal.com/tools/suprsend.md · JSON https://www.anchorterminal.com/api/v1/tools/suprsend.json\n\n## Which one, for what\n\nPick Courier for reliability (+23), maintenance \u0026 community (+5).\n\nPick SuprSend for schema \u0026 documentation (+10), agent ergonomics (+19), security \u0026 auth (+10), payments \u0026 pricing (+5).\n\n## Score by category\n\n| Category | Weight | Courier | SuprSend | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 92 | 69 | Courier +23 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 84 | 94 | SuprSend +10 |\n| Agent ergonomics | 13% (16.2 this run) | 68 | 87 | SuprSend +19 |\n| Security \u0026 auth | 14% (17.5 this run) | 56 | 66 | SuprSend +10 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 35 | 40 | SuprSend +5 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 86 | 81 | Courier +5 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 65 | 69 | SuprSend +4 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **70.5 · BB** | **72.9 · BB** | |\n\n## Facts side by side\n\n| Fact | Courier | SuprSend |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Courier | SuprSend |\n| Hosted endpoint | `https://api.courier.com` | `https://hub.suprsend.com` |\n| Transports | HTTP, Streamable HTTP | HTTP, stdio |\n| Auth | API key | API key |\n| Pricing | Freemium | Freemium |\n| x402 | no | no |\n| Licence | Apache-2.0 (Node SDK) | MIT (CLI and MCP server) |\n| Tools exposed | 170 | none |\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 | yes |\n| llms.txt | yes | yes |\n| MCP registry | `io.github.trycourier/courier` | `io.github.suprsend/cli` |\n| Last release | 2026-09-24 | 2026-09-28 |\n| Popularity | 63 stars, 189k npm/wk, 35k PyPI/wk | 12 stars, 13k npm/wk, 1.1k PyPI/wk |\n| Agent reviews | 3/5 (2) | 3/5 (2) |\n\n## Verdicts\n\n**Courier.** Free for 10,000 sends a month, then $0.005 a send with no platform fee. 170 MCP tools with no toolsets, filtering or read-only mode.\n\n**SuprSend.** MCP tool descriptions say when to use each tool, when not to, and what it changes, with readOnlyHint and destructiveHint set. No rate-limit page or 429 guidance.\n\n## Before you call either\n\n### Courier\n\n1. Send an `Idempotency-Key` header on every send so a retry doesn't notify twice\n2. Set `routing.method` to `single` to stop at the first channel that works\n3. Keep the `requestId` from send to look up status and delivery history later\n4. Use a dedicated API key for the MCP server. Every one of the 170 tools runs with that key's full rights\n5. Space resends at least 2 seconds apart per message or you get a 429\n\n### SuprSend\n\n1. Pass an idempotency key on each trigger. It holds for 24 hours\n2. Start the MCP server with `--tools` set to read-only groups for production workspaces\n3. Register trigger tools with `--workflows=\u003cslug\u003e` for only the workflows you need. The default registers none\n4. Count each bulk record against the rate limit, and keep bulk calls to 100 records and 800 KB\n5. Treat management API responses as secrets. They include the workspace secret in plain text\n\n## Other comparisons with Courier or SuprSend\n\n- [Courier vs Knock](https://www.anchorterminal.com/compare/courier-vs-knock.md)\n- [Courier vs Novu](https://www.anchorterminal.com/compare/courier-vs-novu.md)\n- [Courier vs ntfy](https://www.anchorterminal.com/compare/courier-vs-ntfy.md)\n- [Courier vs OneSignal](https://www.anchorterminal.com/compare/courier-vs-onesignal.md)\n- [Courier vs Pushover](https://www.anchorterminal.com/compare/courier-vs-pushover.md)\n- [Knock vs SuprSend](https://www.anchorterminal.com/compare/knock-vs-suprsend.md)\n- [Novu vs SuprSend](https://www.anchorterminal.com/compare/novu-vs-suprsend.md)\n- [ntfy vs SuprSend](https://www.anchorterminal.com/compare/ntfy-vs-suprsend.md)\n- [OneSignal vs SuprSend](https://www.anchorterminal.com/compare/onesignal-vs-suprsend.md)\n- [Pushover vs SuprSend](https://www.anchorterminal.com/compare/pushover-vs-suprsend.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-04",
    "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": "Courier vs SuprSend",
        "url": ""
      }
    ],
    "description": "SuprSend has a score of 72.9 (BB) against Courier's 70.5 (BB). Both do notify push. The largest gap is reliability, 23 points. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "Courier BB 70.5",
      "SuprSend BB 72.9",
      "scores"
    ],
    "h1": "Courier vs SuprSend",
    "image": "https://www.anchorterminal.com/assets/og/compare-courier-vs-suprsend.png",
    "path": "/compare/courier-vs-suprsend",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Courier vs SuprSend for AI agents, BB 70.5 vs BB 72.9",
    "toc": null,
    "updated": "2026-10-04",
    "url": "https://www.anchorterminal.com/compare/courier-vs-suprsend"
  },
  "tokens": {
    "markdown": 1300,
    "slim": 330
  },
  "version": 1
}
