{
  "data": {
    "a": {
      "slug": "amazon-sns",
      "name": "Amazon SNS",
      "vendor": "Amazon Web Services",
      "vendorUrl": "https://aws.amazon.com/sns/",
      "kind": "http-api",
      "category": "notifications",
      "summary": "Amazon SNS is AWS's publish and subscribe messaging service. A message published to a topic, or directly to a device or phone number, goes out as mobile push, SMS, plain-text email, HTTPS calls or to SQS queues and Lambda functions.",
      "url": "https://www.anchorterminal.com/tools/amazon-sns",
      "markdownUrl": "https://www.anchorterminal.com/tools/amazon-sns.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/amazon-sns.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/amazon-sns.json",
      "repo": "https://github.com/aws/api-models-aws",
      "license": "Proprietary service under the AWS Customer Agreement. The AWS SDKs and the AWS Labs MCP server are Apache-2.0",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://sns.us-east-1.amazonaws.com",
      "packages": [
        {
          "registry": "npm",
          "name": "@aws-sdk/client-sns"
        },
        {
          "registry": "pypi",
          "name": "boto3"
        },
        {
          "registry": "pypi",
          "name": "awslabs.amazon-sns-sqs-mcp-server"
        }
      ],
      "auth": "mixed",
      "authNotes": "Requests are signed with AWS Signature Version 4 using IAM credentials, long-lived access keys or temporary credentials from AWS STS. IAM identity policies and topic resource policies use the `sns` action prefix with topic ARNs and condition keys. Access is self-serve with an AWS account. SMS starts in a sandbox per account, and leaving it or raising the $1 monthly spend quota needs an AWS Support case. Mobile push needs a platform application holding credentials from Apple, Google or another push service.",
      "pricing": "usage",
      "pricingNotes": "Pay per request and per notification with no minimum. On standard topics in US East (N. Virginia), API requests cost $0.50 per million after 1,000,000 free each month, mobile push $0.50 per million after 1,000,000 free, email $2.00 per 100,000 after 1,000 free, and HTTP deliveries $0.60 per million after 100,000 free. Deliveries to SQS and Lambda are free. SMS is billed by AWS End User Messaging. New AWS customers get up to $200 in Free Tier credits, and AWS says most can sign up without a payment method (https://aws.amazon.com/sns/pricing/, https://aws.amazon.com/free/free-tier-faqs/).",
      "priceSummary": "$0.0005 / 1k req",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the developer guide index, the API model or the pricing page (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": 6505984,
        "pypiWeekly": null,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://docs.aws.amazon.com/sns/latest/dg/welcome.html",
      "llmsTxt": "https://docs.aws.amazon.com/sns/latest/dg/llms.txt",
      "capabilities": [
        "notify.push",
        "notify.multichannel",
        "messaging.sms"
      ],
      "tags": [
        "hosted",
        "llms-txt",
        "typescript",
        "python",
        "push",
        "sms",
        "mcp",
        "enterprise"
      ],
      "lastRelease": "2026-10-06",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 72.8,
        "grade": "BB",
        "agentReady": true,
        "rank": 96,
        "ranked": true,
        "rankOf": 842,
        "categoryRank": 1,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 65,
          "maintenance": 75,
          "payments": 35,
          "reliability": 75,
          "schema": 83,
          "security": 89,
          "transparency": 83
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": 0,
        "verdict": "IAM and topic policies limit a credential to single actions and topics, a read-only managed policy exists, and CloudTrail can log each publish. Standard topics take no idempotency token, so a retried `Publish` can send twice. SNS has no user preferences, digests or in-app channel, email is plain text to confirmed subscribers, and SMS starts in a sandbox.",
        "bestFor": "Teams already on AWS that want cheap push, SMS and plain-text email alerts or fan-out to queues and functions under IAM and CloudTrail.",
        "strengths": [
          "IAM identity policies and topic resource policies per action and topic, temporary credentials, and an `AmazonSNSReadOnlyAccess` managed policy",
          "Published quotas of 30,000 published messages a second per account in US East (N. Virginia) and 300 in the smallest Regions",
          "First 1,000,000 API requests, 1,000,000 mobile push notifications and 1,000 emails each month are free on standard topics",
          "Smithy model published for all 42 operations, with llms.txt indexes and a Markdown twin of every guide and reference page",
          "99.9 per cent monthly uptime commitment per Region under the Amazon Messaging SLA, last updated 4 May 2022"
        ],
        "weaknesses": [
          "No idempotency token on `Publish` to a standard topic. Only FIFO topics deduplicate, over a five-minute window",
          "No user preferences, digests, templates or in-app channel. Email is plain text and each address has to confirm its subscription",
          "SMS starts in a sandbox with ten verified numbers and a $1 monthly spend quota, raised through an AWS Support case",
          "Topic, subscription and endpoint settings travel as string maps and JSON inside strings, and the model has only four enumerated types",
          "The AWS Health Dashboard lists the service in the UAE and Bahrain Region disruptions open since March 2026"
        ],
        "agentNotes": [
          "Sign requests with SigV4 for service `sns` at `sns.\u003cregion\u003e.amazonaws.com`, or call `aws sns publish --topic-arn \u003carn\u003e --message \u003ctext\u003e` from the AWS CLI",
          "Track `MessageId` yourself on standard topics, because a retried `Publish` sends again. Use a FIFO topic with `MessageDeduplicationId` when duplicates matter",
          "Send per-channel text by setting `MessageStructure` to `json` and passing a JSON string with a `default` key plus keys such as `APNS`, `GCM`, `email` and `sms`",
          "Check `GetSMSSandboxAccountStatus` and the monthly spend quota before texting. Sandbox sends reach only verified numbers",
          "Expect an email subscription to stay in `PendingConfirmation` until the recipient clicks the link, and keep each email subscription under 10 messages a second"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "BB",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 72.8
          }
        ],
        "editorialScores": {
          "ergonomics": 65,
          "maintenance": 75,
          "payments": 35,
          "reliability": 75,
          "schema": 83,
          "security": 89,
          "transparency": 71
        },
        "provenanceScore": 95
      },
      "connect": {
        "config": {
          "mcpServers": {
            "awslabs.amazon-sns-sqs-mcp-server": {
              "args": [
                "awslabs.amazon-sns-sqs-mcp-server@latest"
              ],
              "command": "uvx",
              "env": {
                "AWS_PROFILE": "your-aws-profile",
                "AWS_REGION": "us-east-1"
              }
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/notify.push",
        "tool": "https://letme.dev/amazon-sns"
      },
      "sameCompany": [
        "amazon-bedrock-customization",
        "agentcore-code-interpreter",
        "amazon-textract",
        "aws-end-user-messaging",
        "amazon-s3"
      ],
      "area": "everyday",
      "unitPrices": [
        {
          "item": "API requests, standard topics",
          "unit": "1k-requests",
          "usd": 0.0005,
          "note": "US East (N. Virginia), after 1,000,000 free a month. Each 64 KB of payload counts as one request"
        },
        {
          "item": "Publishes, FIFO topics",
          "unit": "1k-requests",
          "usd": 0.0003,
          "note": "US East (N. Virginia), plus $0.017 per GB of payload and $0.01 per million subscription messages"
        },
        {
          "item": "Mobile push notification",
          "unit": "message",
          "usd": 5e-7,
          "note": "$0.50 per million after 1,000,000 free a month"
        },
        {
          "item": "Email notification",
          "unit": "1k-emails",
          "usd": 0.02,
          "note": "$2.00 per 100,000 after 1,000 free a month"
        },
        {
          "item": "HTTP or HTTPS notification",
          "unit": "message",
          "usd": 6e-7,
          "note": "$0.60 per million after 100,000 free a month"
        }
      ],
      "provenance": {
        "legalEntity": "Amazon Web Services, Inc.",
        "domain": "amazonaws.com",
        "domainRegistered": "2005-08-18",
        "endpointOnVendorDomain": true,
        "terms": "https://aws.amazon.com/agreement/",
        "privacy": "https://aws.amazon.com/privacy/",
        "statusPage": "https://health.aws.amazon.com/health/status",
        "changelog": "https://docs.aws.amazon.com/sns/latest/dg/sns-release-notes.html",
        "securityTxt": "expired",
        "checked": "2026-10-08",
        "notes": [
          "The AWS Customer Agreement (last updated 14 August 2026) governs use of the service, with other AWS entities as contracting party by account country.",
          "Section 11 of the AWS Service Terms (last updated 1 October 2026) adds terms for Amazon SNS. It says AMCS LLC sells parts of the service in Japan and AMCS SG Private Limited in Singapore, and that fees apply even when delivery is blocked for reasons outside AWS's control (https://aws.amazon.com/service-terms/).",
          "The AWS Privacy Notice (last updated 18 May 2026) says it does not apply to content customers process with AWS services, which the agreement governs.",
          "https://aws.amazon.com/.well-known/security.txt carries Expires 2026-09-24T16:25:03Z, so it had expired on 8 October 2026.",
          "RDAP for amazonaws.com gives a registration date of 2005-08-18. The API answers at sns.\u003cregion\u003e.amazonaws.com, while product and legal pages sit on aws.amazon.com."
        ],
        "score": 95
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/amazon-sns.json",
      "live": {
        "slug": "amazon-sns",
        "probe": {
          "target": "https://sns.us-east-1.amazonaws.com",
          "method": "get",
          "lastAt": "2026-10-09T11:46:21.479563646Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 252,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 251,
          "p95ms24h": 281,
          "samples24h": 175,
          "samples30d": 175,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 50,
              "ok": 50
            },
            {
              "date": "2026-10-09",
              "probes": 125,
              "ok": 125
            }
          ]
        },
        "updatedAt": "2026-10-09T11:46:21.479563646Z"
      }
    },
    "answer": "Amazon SNS scores 72.8 (BB) on agent readiness against MagicBell's 58.8 (C), and leads in 5 of 7 scored categories.",
    "b": {
      "slug": "magicbell",
      "name": "MagicBell",
      "vendor": "MagicBell, Inc.",
      "vendorUrl": "https://www.magicbell.com",
      "kind": "http-api",
      "category": "notifications",
      "summary": "MagicBell is a hosted notification service that sends one broadcast to users across an in-app inbox, mobile and web push, email, SMS, Slack and Teams. Agents reach it through a REST API, a CLI and typed clients.",
      "url": "https://www.anchorterminal.com/tools/magicbell",
      "markdownUrl": "https://www.anchorterminal.com/tools/magicbell.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/magicbell.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/magicbell.json",
      "repo": "https://github.com/magicbell/magicbell-js",
      "license": "Proprietary service under MagicBell's terms. The Go client and the CLI are MIT. The JavaScript client carries MagicBell's own Licence Agreement",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://api.magicbell.com/v2",
      "packages": [
        {
          "registry": "npm",
          "name": "magicbell-js"
        },
        {
          "registry": "npm",
          "name": "magicbell-cli"
        },
        {
          "registry": "go",
          "name": "github.com/magicbell/magicbell-go"
        }
      ],
      "auth": "api-key",
      "authNotes": "Self-serve. Every call takes a JWT as a Bearer token. A Project JWT is created in the dashboard under Project Auth with a name and an expiry, is shown once and can be discarded. It covers the whole project (broadcasts, users, integrations, workflows, events). A User JWT is signed by the customer's backend with HS256 from the project's API key and secret key, and covers one user's inbox, channel tokens and preferences. No scopes on either.",
      "pricing": "freemium",
      "pricingNotes": "Builder is $0 a month with 1,000 deliveries and one project, so an agent's owner can start without a contract. Startup is $249 a month with 50,000 deliveries and five projects, then $0.0025 a delivery and $99 a month per extra project. Enterprise is custom. A delivery is one notification on one channel for one user. Whether sign-up asks for a card was not checked (https://www.magicbell.com/pricing, checked 2026-10-09).",
      "priceSummary": "$249 / mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the docs, the OpenAPI file or the pricing page (checked 2026-10-09).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 31,
        "npmWeekly": 48674,
        "pypiWeekly": null,
        "asOf": "2026-10-09"
      },
      "docsUrl": "https://www.magicbell.com/docs",
      "openapi": "https://www.magicbell.com/docs/api/openapi.json",
      "capabilities": [
        "notify.push",
        "notify.in-app",
        "notify.multichannel",
        "notify.preferences"
      ],
      "tags": [
        "hosted",
        "freemium",
        "openapi",
        "typescript",
        "go",
        "swift",
        "java",
        "cli",
        "webhooks",
        "status-page"
      ],
      "lastRelease": "2026-07-29",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 58.8,
        "grade": "C",
        "agentReady": false,
        "rank": 515,
        "ranked": true,
        "rankOf": 842,
        "categoryRank": 9,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 63,
          "maintenance": 49,
          "payments": 35,
          "reliability": 75,
          "schema": 68,
          "security": 50,
          "transparency": 58
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-09"
        },
        "negative": 0,
        "verdict": "A public OpenAPI 3.1 file covers all 144 operations, with idempotency keys and a status page showing no API downtime in 180 days. No batching or digest step, llms.txt, error code list, SLA or sub-processor list was found, and project tokens carry no scopes.",
        "bestFor": "A product team that wants an embeddable in-app inbox with push, email, SMS, Slack and Teams behind one broadcast call, and an agent that sends notifications with a project token it was given.",
        "strengths": [
          "OpenAPI 3.1 file with 144 operations, published at `/docs/api/openapi.json` without a login",
          "`Idempotency-Key` header caches the first response for 24 hours on some endpoints",
          "Status page shows 100 per cent for the API and dashboard over 180 days to 7 October 2026",
          "Project tokens are named, take an expiry and can be discarded in the dashboard",
          "Builder plan at $0 with 1,000 deliveries a month, and overage on Startup at $0.0025 a delivery"
        ],
        "weaknesses": [
          "No batching or digest step found. Workflows have four commands (broadcast, wait, pause, abort)",
          "No llms.txt or Markdown docs, and the OpenAPI file documents no error responses",
          "Project tokens are project-wide with no scopes or read-only mode",
          "No SLA, SOC 2 or ISO 27001 statement, security.txt or sub-processor list found",
          "The Trust Centre says data is never sold or shared, while the privacy policy of 2 July 2024 marks account data as sold or shared"
        ],
        "agentNotes": [
          "Ask the owner for a Project JWT from the dashboard's Project Auth page. The terms forbid accounts registered by automated methods",
          "Send `Idempotency-Key` with a UUID on `POST /v2/broadcasts`, and reuse it on a retry within 24 hours",
          "Stay under 500 requests a minute per IP. A 429 blocks the address for 60 seconds, so put many recipients in one broadcast",
          "Use a Project JWT for broadcasts, users, integrations and workflows, and a User JWT for one user's inbox, tokens and preferences",
          "Read delivery failures from `GET /v2/events` and the broadcast's `status`, since email, SMS and push go through providers the owner connects"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 58.8
          }
        ],
        "editorialScores": {
          "ergonomics": 63,
          "maintenance": 49,
          "payments": 35,
          "reliability": 75,
          "schema": 68,
          "security": 50,
          "transparency": 30
        },
        "provenanceScore": 86
      },
      "connect": {
        "install": "npm install magicbell-js",
        "http": "curl --request POST \\\n  --url 'https://api.magicbell.com/v2/broadcasts' \\\n  --header 'content-type: application/json' \\\n  --header \"authorization: Bearer $TOKEN\" \\\n  --data '{\"title\":\"Build finished\",\"recipients\":[{\"email\":\"test@example.com\"}]}'"
      },
      "letme": {
        "capability": "https://letme.dev/notify.push",
        "tool": "https://letme.dev/magicbell"
      },
      "area": "everyday",
      "unitPrices": [
        {
          "item": "Startup",
          "unit": "month",
          "usd": 249,
          "note": "50,000 deliveries and five projects included"
        },
        {
          "item": "Startup overage, per delivery",
          "unit": "message",
          "usd": 0.0025
        },
        {
          "item": "Additional project",
          "unit": "month",
          "usd": 99
        }
      ],
      "provenance": {
        "legalEntity": "MagicBell, Inc.",
        "domain": "magicbell.com",
        "domainRegistered": "2004-04-17",
        "endpointOnVendorDomain": true,
        "terms": "https://www.magicbell.com/terms-and-conditions",
        "privacy": "https://www.magicbell.com/privacy-policy",
        "statusPage": "https://status.magicbell.com",
        "changelog": "https://github.com/orgs/magicbell/discussions/categories/changelog",
        "securityTxt": "none",
        "checked": "2026-10-09",
        "notes": [
          "The terms and the privacy policy name MagicBell, Inc., 2261 Market Street #4311, San Francisco, California 94114. Both are dated 2 July 2024.",
          "The terms cover the website, the service and the API in one document, with a short section of API usage terms. They are governed by the law of the place where the owner is based.",
          "www.magicbell.com/.well-known/security.txt returns 404. The footer's vulnerability disclosure link is a contact form.",
          "RDAP for magicbell.com gives a registration date of 2004-04-17.",
          "The changelog is a category of GitHub Discussions, reached from magicbell.to/changelog."
        ],
        "score": 86
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/magicbell.json",
      "live": {
        "slug": "magicbell",
        "probe": {
          "target": "https://api.magicbell.com/v2",
          "method": "get",
          "lastAt": "2026-10-09T11:46:33.057386741Z",
          "lastOk": true,
          "lastStatus": 405,
          "lastMs": 66,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 73,
          "p95ms24h": 114,
          "samples24h": 44,
          "samples30d": 44,
          "days": [
            {
              "date": "2026-10-09",
              "probes": 44,
              "ok": 44
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.magicbell.com",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-10-09T07:58:08.412277068Z"
        },
        "updatedAt": "2026-10-09T11:46:33.057386741Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Amazon Web Services",
        "b": "MagicBell, Inc.",
        "name": "Vendor"
      },
      {
        "a": "https://sns.us-east-1.amazonaws.com",
        "b": "https://api.magicbell.com/v2",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "OAuth or key",
        "b": "API key",
        "name": "Auth"
      },
      {
        "a": "Pay per use",
        "b": "Freemium",
        "name": "Pricing"
      },
      {
        "a": "$0. per message",
        "b": "not published",
        "name": "Price for notify push"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Proprietary service under the AWS Customer Agreement. The AWS SDKs and the AWS Labs MCP server are Apache-2.0",
        "b": "Proprietary service under MagicBell's terms. The Go client and the CLI are MIT. The JavaScript client carries MagicBell's own Licence Agreement",
        "name": "Licence"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "no",
        "name": "llms.txt"
      },
      {
        "a": "2026-10-06",
        "b": "2026-07-29",
        "name": "Last release"
      },
      {
        "a": "2026-08-14",
        "b": "no date given",
        "name": "Terms last updated"
      },
      {
        "a": "2026-05-18",
        "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": "not found in the text",
        "b": "yes",
        "name": "Terms restrict automated access"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "6.5M npm/wk",
        "b": "31 stars, 49k npm/wk",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "Amazon SNS scores 72.8 (BB) on agent readiness against MagicBell's 58.8 (C), and leads in 5 of 7 scored categories.",
        "question": "Which is better for AI agents, Amazon SNS or MagicBell?"
      },
      {
        "answer": "Amazon SNS takes an API key or an OAuth sign-in. MagicBell needs an API key.",
        "question": "Do Amazon SNS and MagicBell need an API key?"
      },
      {
        "answer": "Yes. Amazon SNS has a hosted endpoint at https://sns.us-east-1.amazonaws.com and MagicBell at https://api.magicbell.com/v2.",
        "question": "Can an agent call Amazon SNS and MagicBell without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Schema \u0026 documentation, 83 against 68",
          "Security \u0026 auth, 89 against 50",
          "Maintenance \u0026 community, 75 against 49",
          "Transparency \u0026 trust, 83 against 58"
        ],
        "also": [
          "Agent-ready, a grade of BB or better"
        ],
        "goodFor": "Teams already on AWS that want cheap push, SMS and plain-text email alerts or fan-out to queues and functions under IAM and CloudTrail.",
        "slug": "amazon-sns",
        "watchFor": "No idempotency token on `Publish` to a standard topic. Only FIFO topics deduplicate, over a five-minute window"
      },
      {
        "aheadOn": null,
        "also": null,
        "goodFor": "A product team that wants an embeddable in-app inbox with push, email, SMS, Slack and Teams behind one broadcast call, and an agent that sends notifications with a project token it was given.",
        "slug": "magicbell",
        "watchFor": "No batching or digest step found. Workflows have four commands (broadcast, wait, pause, abort)"
      }
    ],
    "job": {
      "capability": "notify.push",
      "name": "Notify push"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/amazon-sns-vs-courier.json",
        "title": "Amazon SNS vs Courier",
        "url": "https://www.anchorterminal.com/compare/amazon-sns-vs-courier"
      },
      {
        "json": "https://www.anchorterminal.com/compare/amazon-sns-vs-firebase-cloud-messaging.json",
        "title": "Amazon SNS vs Firebase Cloud Messaging",
        "url": "https://www.anchorterminal.com/compare/amazon-sns-vs-firebase-cloud-messaging"
      },
      {
        "json": "https://www.anchorterminal.com/compare/amazon-sns-vs-knock.json",
        "title": "Amazon SNS vs Knock",
        "url": "https://www.anchorterminal.com/compare/amazon-sns-vs-knock"
      },
      {
        "json": "https://www.anchorterminal.com/compare/amazon-sns-vs-novu.json",
        "title": "Amazon SNS vs Novu",
        "url": "https://www.anchorterminal.com/compare/amazon-sns-vs-novu"
      },
      {
        "json": "https://www.anchorterminal.com/compare/amazon-sns-vs-ntfy.json",
        "title": "Amazon SNS vs ntfy",
        "url": "https://www.anchorterminal.com/compare/amazon-sns-vs-ntfy"
      },
      {
        "json": "https://www.anchorterminal.com/compare/amazon-sns-vs-onesignal.json",
        "title": "Amazon SNS vs OneSignal",
        "url": "https://www.anchorterminal.com/compare/amazon-sns-vs-onesignal"
      },
      {
        "json": "https://www.anchorterminal.com/compare/amazon-sns-vs-pushover.json",
        "title": "Amazon SNS vs Pushover",
        "url": "https://www.anchorterminal.com/compare/amazon-sns-vs-pushover"
      },
      {
        "json": "https://www.anchorterminal.com/compare/amazon-sns-vs-suprsend.json",
        "title": "Amazon SNS vs SuprSend",
        "url": "https://www.anchorterminal.com/compare/amazon-sns-vs-suprsend"
      },
      {
        "json": "https://www.anchorterminal.com/compare/courier-vs-magicbell.json",
        "title": "Courier vs MagicBell",
        "url": "https://www.anchorterminal.com/compare/courier-vs-magicbell"
      },
      {
        "json": "https://www.anchorterminal.com/compare/firebase-cloud-messaging-vs-magicbell.json",
        "title": "Firebase Cloud Messaging vs MagicBell",
        "url": "https://www.anchorterminal.com/compare/firebase-cloud-messaging-vs-magicbell"
      },
      {
        "json": "https://www.anchorterminal.com/compare/knock-vs-magicbell.json",
        "title": "Knock vs MagicBell",
        "url": "https://www.anchorterminal.com/compare/knock-vs-magicbell"
      },
      {
        "json": "https://www.anchorterminal.com/compare/magicbell-vs-novu.json",
        "title": "MagicBell vs Novu",
        "url": "https://www.anchorterminal.com/compare/magicbell-vs-novu"
      },
      {
        "json": "https://www.anchorterminal.com/compare/magicbell-vs-ntfy.json",
        "title": "MagicBell vs ntfy",
        "url": "https://www.anchorterminal.com/compare/magicbell-vs-ntfy"
      },
      {
        "json": "https://www.anchorterminal.com/compare/magicbell-vs-onesignal.json",
        "title": "MagicBell vs OneSignal",
        "url": "https://www.anchorterminal.com/compare/magicbell-vs-onesignal"
      },
      {
        "json": "https://www.anchorterminal.com/compare/magicbell-vs-pushover.json",
        "title": "MagicBell vs Pushover",
        "url": "https://www.anchorterminal.com/compare/magicbell-vs-pushover"
      },
      {
        "json": "https://www.anchorterminal.com/compare/magicbell-vs-suprsend.json",
        "title": "MagicBell vs SuprSend",
        "url": "https://www.anchorterminal.com/compare/magicbell-vs-suprsend"
      }
    ],
    "scores": [
      {
        "amazon-sns": 75,
        "by": 0,
        "edge": "",
        "key": "reliability",
        "magicbell": 75,
        "name": "Reliability",
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "amazon-sns": 83,
        "by": 15,
        "edge": "amazon-sns",
        "key": "schema",
        "magicbell": 68,
        "name": "Schema \u0026 documentation",
        "weight": 13
      },
      {
        "amazon-sns": 65,
        "by": 2,
        "edge": "amazon-sns",
        "key": "ergonomics",
        "magicbell": 63,
        "name": "Agent ergonomics",
        "weight": 13
      },
      {
        "amazon-sns": 89,
        "by": 39,
        "edge": "amazon-sns",
        "key": "security",
        "magicbell": 50,
        "name": "Security \u0026 auth",
        "weight": 14
      },
      {
        "amazon-sns": 35,
        "by": 0,
        "edge": "",
        "key": "payments",
        "magicbell": 35,
        "name": "Payments \u0026 pricing",
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "amazon-sns": 75,
        "by": 26,
        "edge": "amazon-sns",
        "key": "maintenance",
        "magicbell": 49,
        "name": "Maintenance \u0026 community",
        "weight": 7
      },
      {
        "amazon-sns": 83,
        "by": 25,
        "edge": "amazon-sns",
        "key": "transparency",
        "magicbell": 58,
        "name": "Transparency \u0026 trust",
        "weight": 7
      }
    ],
    "summary": "Amazon SNS scores 72.8 (BB) on agent readiness against MagicBell's 58.8 (C), and leads in 5 of 7 scored categories. Both do notify push.",
    "verdicts": {
      "amazon-sns": "IAM and topic policies limit a credential to single actions and topics, a read-only managed policy exists, and CloudTrail can log each publish. Standard topics take no idempotency token, so a retried `Publish` can send twice. SNS has no user preferences, digests or in-app channel, email is plain text to confirmed subscribers, and SMS starts in a sandbox.",
      "magicbell": "A public OpenAPI 3.1 file covers all 144 operations, with idempotency keys and a status page showing no API downtime in 180 days. No batching or digest step, llms.txt, error code list, SLA or sub-processor list was found, and project tokens carry no scopes."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/amazon-sns-vs-magicbell",
    "json": "https://www.anchorterminal.com/compare/amazon-sns-vs-magicbell.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/amazon-sns-vs-magicbell.md",
    "slim": "https://www.anchorterminal.com/compare/amazon-sns-vs-magicbell.min.md"
  },
  "markdown": "Amazon SNS scores 72.8 (BB) on agent readiness against MagicBell's 58.8 (C), and leads in 5 of 7 scored categories. Both do notify push.\n\n- Amazon SNS: grade BB, 72.8/100, rank #96 of 842. Markdown https://www.anchorterminal.com/tools/amazon-sns.md · JSON https://www.anchorterminal.com/api/v1/tools/amazon-sns.json\n- MagicBell: grade C, 58.8/100, rank #515 of 842. Markdown https://www.anchorterminal.com/tools/magicbell.md · JSON https://www.anchorterminal.com/api/v1/tools/magicbell.json\n\n## Which one, for what\n\n### Amazon SNS (BB)\n\nGood for: Teams already on AWS that want cheap push, SMS and plain-text email alerts or fan-out to queues and functions under IAM and CloudTrail.\n\nAhead on:\n- Schema \u0026 documentation, 83 against 68\n- Security \u0026 auth, 89 against 50\n- Maintenance \u0026 community, 75 against 49\n- Transparency \u0026 trust, 83 against 58\n\nAlso in its favour:\n- Agent-ready, a grade of BB or better\n\nWatch for: No idempotency token on `Publish` to a standard topic. Only FIFO topics deduplicate, over a five-minute window\n\n### MagicBell (C)\n\nGood for: A product team that wants an embeddable in-app inbox with push, email, SMS, Slack and Teams behind one broadcast call, and an agent that sends notifications with a project token it was given.\n\nWatch for: No batching or digest step found. Workflows have four commands (broadcast, wait, pause, abort)\n\n\n## Score by category\n\n| Category | Weight | Amazon SNS | MagicBell | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 75 | 75 | even |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 83 | 68 | Amazon SNS +15 |\n| Agent ergonomics | 13% (16.2 this run) | 65 | 63 | Amazon SNS +2 |\n| Security \u0026 auth | 14% (17.5 this run) | 89 | 50 | Amazon SNS +39 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 35 | 35 | even |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 75 | 49 | Amazon SNS +26 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 83 | 58 | Amazon SNS +25 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **72.8 · BB** | **58.8 · C** | |\n\n## Facts side by side\n\n| Fact | Amazon SNS | MagicBell |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Amazon Web Services | MagicBell, Inc. |\n| Hosted endpoint | `https://sns.us-east-1.amazonaws.com` | `https://api.magicbell.com/v2` |\n| Transports | HTTP | HTTP |\n| Auth | OAuth or key | API key |\n| Pricing | Pay per use | Freemium |\n| Price for notify push | $0. per message | not published |\n| x402 | no | no |\n| Licence | Proprietary service under the AWS Customer Agreement. The AWS SDKs and the AWS Labs MCP server are Apache-2.0 | Proprietary service under MagicBell's terms. The Go client and the CLI are MIT. The JavaScript client carries MagicBell's own Licence Agreement |\n| Read-only variant documented | no | no |\n| llms.txt | yes | no |\n| Last release | 2026-10-06 | 2026-07-29 |\n| Terms last updated | 2026-08-14 | no date given |\n| Privacy policy last updated | 2026-05-18 | no date given |\n| Customer content may train models | not found in the text | not found in the text |\n| Terms restrict automated access | not found in the text | yes |\n| Terms restrict benchmarking | not found in the text | not found in the text |\n| Terms or service can change without notice | not found in the text | not found in the text |\n| Arbitration or class-action waiver | yes | not found in the text |\n| Popularity | 6.5M npm/wk | 31 stars, 49k npm/wk |\n\n## Verdicts\n\n**Amazon SNS.** IAM and topic policies limit a credential to single actions and topics, a read-only managed policy exists, and CloudTrail can log each publish. Standard topics take no idempotency token, so a retried `Publish` can send twice. SNS has no user preferences, digests or in-app channel, email is plain text to confirmed subscribers, and SMS starts in a sandbox.\n\n**MagicBell.** A public OpenAPI 3.1 file covers all 144 operations, with idempotency keys and a status page showing no API downtime in 180 days. No batching or digest step, llms.txt, error code list, SLA or sub-processor list was found, and project tokens carry no scopes.\n\n## Before you call either\n\n### Amazon SNS\n\n1. Sign requests with SigV4 for service `sns` at `sns.\u003cregion\u003e.amazonaws.com`, or call `aws sns publish --topic-arn \u003carn\u003e --message \u003ctext\u003e` from the AWS CLI\n2. Track `MessageId` yourself on standard topics, because a retried `Publish` sends again. Use a FIFO topic with `MessageDeduplicationId` when duplicates matter\n3. Send per-channel text by setting `MessageStructure` to `json` and passing a JSON string with a `default` key plus keys such as `APNS`, `GCM`, `email` and `sms`\n4. Check `GetSMSSandboxAccountStatus` and the monthly spend quota before texting. Sandbox sends reach only verified numbers\n5. Expect an email subscription to stay in `PendingConfirmation` until the recipient clicks the link, and keep each email subscription under 10 messages a second\n\n### MagicBell\n\n1. Ask the owner for a Project JWT from the dashboard's Project Auth page. The terms forbid accounts registered by automated methods\n2. Send `Idempotency-Key` with a UUID on `POST /v2/broadcasts`, and reuse it on a retry within 24 hours\n3. Stay under 500 requests a minute per IP. A 429 blocks the address for 60 seconds, so put many recipients in one broadcast\n4. Use a Project JWT for broadcasts, users, integrations and workflows, and a User JWT for one user's inbox, tokens and preferences\n5. Read delivery failures from `GET /v2/events` and the broadcast's `status`, since email, SMS and push go through providers the owner connects\n\n## Questions\n\n### Which is better for AI agents, Amazon SNS or MagicBell?\n\nAmazon SNS scores 72.8 (BB) on agent readiness against MagicBell's 58.8 (C), and leads in 5 of 7 scored categories.\n\n### Do Amazon SNS and MagicBell need an API key?\n\nAmazon SNS takes an API key or an OAuth sign-in. MagicBell needs an API key.\n\n### Can an agent call Amazon SNS and MagicBell without installing anything?\n\nYes. Amazon SNS has a hosted endpoint at https://sns.us-east-1.amazonaws.com and MagicBell at https://api.magicbell.com/v2.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/amazon-sns-vs-magicbell.json, and with the fewest tokens: https://www.anchorterminal.com/compare/amazon-sns-vs-magicbell.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"amazon-sns\", \"b\": \"magicbell\"}`. From a terminal: `anchor compare amazon-sns magicbell`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/amazon-sns.json and https://www.anchorterminal.com/api/v1/tools/magicbell.json\n\n## Other comparisons with Amazon SNS or MagicBell\n\n- [Amazon SNS vs Courier](https://www.anchorterminal.com/compare/amazon-sns-vs-courier.md)\n- [Amazon SNS vs Firebase Cloud Messaging](https://www.anchorterminal.com/compare/amazon-sns-vs-firebase-cloud-messaging.md)\n- [Amazon SNS vs Knock](https://www.anchorterminal.com/compare/amazon-sns-vs-knock.md)\n- [Amazon SNS vs Novu](https://www.anchorterminal.com/compare/amazon-sns-vs-novu.md)\n- [Amazon SNS vs ntfy](https://www.anchorterminal.com/compare/amazon-sns-vs-ntfy.md)\n- [Amazon SNS vs OneSignal](https://www.anchorterminal.com/compare/amazon-sns-vs-onesignal.md)\n- [Amazon SNS vs Pushover](https://www.anchorterminal.com/compare/amazon-sns-vs-pushover.md)\n- [Amazon SNS vs SuprSend](https://www.anchorterminal.com/compare/amazon-sns-vs-suprsend.md)\n- [Courier vs MagicBell](https://www.anchorterminal.com/compare/courier-vs-magicbell.md)\n- [Firebase Cloud Messaging vs MagicBell](https://www.anchorterminal.com/compare/firebase-cloud-messaging-vs-magicbell.md)\n- [Knock vs MagicBell](https://www.anchorterminal.com/compare/knock-vs-magicbell.md)\n- [MagicBell vs Novu](https://www.anchorterminal.com/compare/magicbell-vs-novu.md)\n- [MagicBell vs ntfy](https://www.anchorterminal.com/compare/magicbell-vs-ntfy.md)\n- [MagicBell vs OneSignal](https://www.anchorterminal.com/compare/magicbell-vs-onesignal.md)\n- [MagicBell vs Pushover](https://www.anchorterminal.com/compare/magicbell-vs-pushover.md)\n- [MagicBell vs SuprSend](https://www.anchorterminal.com/compare/magicbell-vs-suprsend.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-09",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.4",
    "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": "Amazon SNS vs MagicBell",
        "url": ""
      }
    ],
    "description": "Amazon SNS scores 72.8 (BB) on agent readiness against MagicBell's 58.8 (C), and leads in 5 of 7 scored categories. Both do notify push. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "Amazon SNS BB 72.8",
      "MagicBell C 58.8",
      "scores"
    ],
    "h1": "Amazon SNS vs MagicBell",
    "image": "https://www.anchorterminal.com/assets/og/compare-amazon-sns-vs-magicbell.png",
    "path": "/compare/amazon-sns-vs-magicbell",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Amazon SNS vs MagicBell for AI agents, BB 72.8 vs C 58.8",
    "toc": null,
    "updated": "2026-10-09",
    "url": "https://www.anchorterminal.com/compare/amazon-sns-vs-magicbell"
  },
  "tokens": {
    "markdown": 2250,
    "slim": 680
  },
  "version": 1
}
