{
  "data": {
    "a": {
      "slug": "bandwidth",
      "name": "Bandwidth Messaging API + MCP",
      "vendor": "Bandwidth",
      "vendorUrl": "https://www.bandwidth.com",
      "kind": "http-api",
      "category": "messaging",
      "summary": "US carrier's messaging API for SMS, MMS and RCS over 10DLC, toll-free and short codes, with published US rates.",
      "url": "https://www.anchorterminal.com/tools/bandwidth",
      "markdownUrl": "https://www.anchorterminal.com/tools/bandwidth.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/bandwidth.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/bandwidth.json",
      "repo": "https://github.com/Bandwidth/mcp-server",
      "transports": [
        "http",
        "stdio",
        "streamable-http"
      ],
      "remoteUrl": "https://messaging.bandwidth.com/api/v2",
      "packages": [
        {
          "registry": "npm",
          "name": "bandwidth-sdk"
        },
        {
          "registry": "pypi",
          "name": "bandwidth-sdk"
        }
      ],
      "auth": "oauth",
      "authNotes": "OAuth 2.0 client credentials. Exchange the client ID and secret at api.bandwidth.com/api/v1/oauth2/token for a Bearer token. Legacy API users with Basic auth are being migrated. The MCP server takes BW_CLIENT_ID and BW_CLIENT_SECRET.",
      "pricing": "paid",
      "pricingNotes": "Messaging is contract-first with account-managed onboarding. Published US rates are 10DLC SMS $0.004 and MMS $0.015 a message, toll-free SMS $0.007 and MMS $0.020, short code SMS $0.008 and MMS $0.020. The Build free trial (3,000 credits, no card) covers voice and SIP only (https://www.bandwidth.com/pricing/).",
      "priceSummary": "Paid",
      "where": "both",
      "x402": {
        "level": "no",
        "evidence": "No x402 or stablecoin payment path in docs, pricing or agent discovery files (checked 2026-09-30).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 2,
        "npmWeekly": 12740,
        "pypiWeekly": 39218,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://dev.bandwidth.com",
      "llmsTxt": "https://dev.bandwidth.com/llms.txt",
      "openapi": "https://dev.bandwidth.com/spec/messaging.yml",
      "capabilities": [
        "messaging.sms",
        "messaging.mms",
        "messaging.rcs",
        "messaging.voice",
        "messaging.verify",
        "messaging.inbound"
      ],
      "tags": [
        "hosted",
        "mcp",
        "llms-txt",
        "openapi",
        "typescript",
        "python",
        "webhooks",
        "sms",
        "enterprise"
      ],
      "lastRelease": "2026-09-22",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 64.3,
        "grade": "B",
        "agentReady": false,
        "rank": 381,
        "ranked": true,
        "rankOf": 1098,
        "categoryRank": 7,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 73,
          "maintenance": 78,
          "payments": 20,
          "reliability": 70,
          "schema": 86,
          "security": 55,
          "transparency": 63
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": 0,
        "verdict": "10DLC SMS $0.004, toll-free $0.007 and short code $0.008 a message, published. Messaging accounts are onboarded by sales, and the free Build trial covers voice only.",
        "bestFor": "US and Canada senders at volume who want carrier-owned routes and will talk to sales.",
        "strengths": [
          "10DLC SMS $0.004, toll-free $0.007 and short code $0.008 a message, published",
          "OAuth 2.0 client credentials with roles, account scope and two-secret rotation",
          "A full queue returns 429 stating the allowed rate and queue size",
          "OpenAPI spec for messaging and llms.txt with Markdown pages",
          "MCP tool profiles keep a messaging agent to the send, list and media tools"
        ],
        "weaknesses": [
          "Messaging accounts are onboarded by sales, and the free Build trial covers voice only",
          "No callback signing found",
          "No SLA, sub-processor list or retention periods found",
          "The MCP is beta, installed by cloning the repo, with no licence file",
          "No security.txt, bug bounty or disclosure policy found"
        ],
        "agentNotes": [
          "Exchange the client ID and secret for a Bearer token first, tokens last 1 hour",
          "Set `BW_MCP_PROFILE=messaging` to load only the messaging tools",
          "Pass at least one filter to listMessages, with millisecond-precision timestamps",
          "On a 429, read the allowed rate in the error and pace sends to it"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 3.5,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 64.3
          }
        ],
        "editorialScores": {
          "ergonomics": 73,
          "maintenance": 78,
          "payments": 20,
          "reliability": 70,
          "schema": 86,
          "security": 55,
          "transparency": 35
        },
        "provenanceScore": 90
      },
      "connect": {
        "http": "curl -X POST \"https://messaging.bandwidth.com/api/v2/users/$BW_ACCOUNT_ID/messages\" -H \"Authorization: Bearer $BW_ACCESS_TOKEN\" \\\n  -H \"Content-Type: application/json\" -d '{\"to\":[\"+15555550123\"],\"from\":\"+15555550100\",\"text\":\"Hello from Bandwidth\",\"applicationId\":\"'$BW_MESSAGING_APPLICATION_ID'\"}'",
        "config": {
          "mcpServers": {
            "bandwidth": {
              "args": [
                "--from",
                "/path/to/mcp-server",
                "start"
              ],
              "command": "uvx",
              "env": {
                "BW_CLIENT_ID": "${BW_CLIENT_ID}",
                "BW_CLIENT_SECRET": "${BW_CLIENT_SECRET}",
                "BW_MCP_PROFILE": "messaging"
              }
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/messaging.sms",
        "tool": "https://letme.dev/bandwidth"
      },
      "sameCompany": [
        "bandwidth-voice"
      ],
      "area": "communication",
      "unitPrices": [
        {
          "item": "SMS outbound, US 10DLC",
          "unit": "message",
          "usd": 0.004,
          "note": "US, published list rate"
        },
        {
          "item": "SMS outbound, US toll-free",
          "unit": "message",
          "usd": 0.007,
          "note": "US"
        },
        {
          "item": "SMS outbound, US short code",
          "unit": "message",
          "usd": 0.008,
          "note": "US"
        },
        {
          "item": "MMS outbound, US 10DLC",
          "unit": "message",
          "usd": 0.015,
          "note": "US"
        }
      ],
      "provenance": {
        "legalEntity": "Bandwidth Inc.",
        "domain": "bandwidth.com",
        "domainRegistered": "1995-02-20",
        "endpointOnVendorDomain": true,
        "terms": "https://www.bandwidth.com/legal/communications-services-agreement/",
        "privacy": "https://www.bandwidth.com/legal/privacy/",
        "statusPage": "https://status.bandwidth.com",
        "changelog": "https://www.bandwidth.com/release-notes/",
        "securityTxt": "none",
        "checked": "2026-09-30",
        "score": 90
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/bandwidth.json",
      "live": {
        "slug": "bandwidth",
        "probe": {
          "target": "https://messaging.bandwidth.com/api/v2",
          "method": "get",
          "lastAt": "2026-10-16T12:30:17.110655988Z",
          "lastOk": false,
          "lastStatus": 503,
          "lastMs": 386,
          "lastNote": "server error",
          "authRequired": false,
          "uptime24h": 0,
          "uptime30d": 0,
          "p50ms24h": 0,
          "p95ms24h": 0,
          "samples24h": 253,
          "samples30d": 4060,
          "days": [
            {
              "date": "2026-09-30",
              "probes": 35,
              "ok": 0
            },
            {
              "date": "2026-10-01",
              "probes": 276,
              "ok": 0
            },
            {
              "date": "2026-10-02",
              "probes": 248,
              "ok": 0
            },
            {
              "date": "2026-10-03",
              "probes": 271,
              "ok": 0
            },
            {
              "date": "2026-10-04",
              "probes": 272,
              "ok": 0
            },
            {
              "date": "2026-10-05",
              "probes": 272,
              "ok": 0
            },
            {
              "date": "2026-10-06",
              "probes": 272,
              "ok": 0
            },
            {
              "date": "2026-10-07",
              "probes": 272,
              "ok": 0
            },
            {
              "date": "2026-10-08",
              "probes": 268,
              "ok": 0
            },
            {
              "date": "2026-10-09",
              "probes": 250,
              "ok": 0
            },
            {
              "date": "2026-10-10",
              "probes": 247,
              "ok": 0
            },
            {
              "date": "2026-10-11",
              "probes": 247,
              "ok": 0
            },
            {
              "date": "2026-10-12",
              "probes": 247,
              "ok": 0
            },
            {
              "date": "2026-10-13",
              "probes": 248,
              "ok": 0
            },
            {
              "date": "2026-10-14",
              "probes": 249,
              "ok": 0
            },
            {
              "date": "2026-10-15",
              "probes": 253,
              "ok": 0
            },
            {
              "date": "2026-10-16",
              "probes": 133,
              "ok": 0
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.bandwidth.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-16T12:30:45.399150751Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "Bandwidth/mcp-server",
            "version": "v0.3.0",
            "released": "2026-06-11",
            "seenAt": "2026-10-16T00:38:53.290435159Z"
          },
          {
            "registry": "npm",
            "name": "bandwidth-sdk",
            "version": "8.3.1",
            "seenAt": "2026-10-16T00:38:53.127383671Z"
          },
          {
            "registry": "pypi",
            "name": "bandwidth-sdk",
            "version": "23.3.1",
            "released": "2026-10-13",
            "seenAt": "2026-10-16T00:38:53.17951059Z"
          }
        ],
        "githubStars": 2,
        "npmWeekly": 17327,
        "pypiWeekly": 22200,
        "securityTxt": {
          "url": "https://bandwidth.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-15T15:48:02.630864128Z"
        },
        "llmsTxt": {
          "url": "https://dev.bandwidth.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-15T14:16:06.175445632Z"
        },
        "domain": {
          "domain": "bandwidth.com",
          "registered": "1995-02-20",
          "source": "https://rdap.verisign.com/com/v1/domain/bandwidth.com",
          "checkedAt": "2026-10-11T13:16:58.57162772Z"
        },
        "updatedAt": "2026-10-16T12:30:17.110655988Z"
      }
    },
    "answer": "Bandwidth Messaging API + MCP scores 64.3 (B) on agent readiness against Photon's 53.5 (D), and leads in 5 of 7 scored categories.",
    "b": {
      "slug": "photon",
      "name": "Photon",
      "vendor": "Photon",
      "vendorUrl": "https://photon.codes",
      "kind": "sdk",
      "category": "messaging",
      "summary": "Photon connects AI agents to iMessage, WhatsApp Business, Telegram and SIP voice through its spectrum-ts TypeScript SDK and managed iMessage lines. Photon 2.0, a public beta since 15 October 2026, adds an HTTP API that also covers email and SMS.",
      "url": "https://www.anchorterminal.com/tools/photon",
      "markdownUrl": "https://www.anchorterminal.com/tools/photon.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/photon.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/photon.json",
      "repo": "https://github.com/photon-hq/spectrum-ts",
      "license": "Proprietary hosted service under Something Great Inc.'s terms of service. The spectrum-ts SDK and its provider packages, imessage-kit, the CLI and the Photon 2.0 API clients are MIT",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://spectrum.photon.codes",
      "packages": [
        {
          "registry": "npm",
          "name": "spectrum-ts"
        },
        {
          "registry": "npm",
          "name": "@photon-ai/cli"
        },
        {
          "registry": "npm",
          "name": "@photon-ai/api"
        },
        {
          "registry": "pypi",
          "name": "photonhq-api"
        }
      ],
      "auth": "api-key",
      "authNotes": "The Stable Spectrum API takes the project ID and project secret as HTTP Basic credentials. The secret grants full management access to the project, doesn't expire on its own and is rotated with `photon projects regenerate-secret`. The SDK uses the same pair to mint per-line iMessage tokens, renewed at 80 per cent of their lifetime. The Dashboard API takes OAuth 2.1 tokens with PKCE and consented scopes, and the CLI logs in by a device flow approved in a browser, with a 7-day token. Photon 2.0 (Beta) uses separate bearer credentials with permissions, `pho_sk_` project keys and `pho_ask_` account service keys.",
      "pricing": "freemium",
      "pricingNotes": "Plan prices with no per-message fee for iMessage. Free is $0 for up to 10 users on shared numbers, Pro $25 a month for up to 100 users, Business $250 per dedicated line a month, and Enterprise on request (https://photon.codes/pricing, checked 2026-10-16). Whether the Free plan needs a card wasn't established. The Photon 2.0 beta has its own plans and usage rates for SMS, MMS, voice and email, and its announcement claims $100 of free credit.",
      "priceSummary": "$25 / mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in llms.txt, llms-full.txt, the docs pages read, the pricing page, the terms or either OpenAPI document (checked 2026-10-16). Billing runs through Stripe checkout and the Stripe customer portal.",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": 107087,
        "pypiWeekly": null,
        "asOf": "2026-10-16"
      },
      "docsUrl": "https://photon.codes/docs",
      "llmsTxt": "https://photon.codes/docs/llms.txt",
      "openapi": "https://spectrum.photon.codes/openapi/json",
      "capabilities": [
        "messaging.sms",
        "messaging.rcs",
        "messaging.whatsapp",
        "messaging.inbound",
        "voice.sip"
      ],
      "tags": [
        "hosted",
        "imessage",
        "whatsapp",
        "telegram",
        "sms",
        "rcs",
        "sip",
        "voice",
        "sdk",
        "typescript",
        "cli",
        "webhooks",
        "llms-txt",
        "openapi",
        "oauth",
        "opentelemetry",
        "open-source-sdk",
        "self-hosted-option",
        "status-page"
      ],
      "lastRelease": "2026-10-15",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 53.5,
        "grade": "D",
        "agentReady": false,
        "rank": 757,
        "ranked": true,
        "rankOf": 1098,
        "categoryRank": 12,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 63,
          "maintenance": 78,
          "payments": 20,
          "reliability": 68,
          "schema": 75,
          "security": 29,
          "transparency": 58
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-16"
        },
        "negative": -2,
        "negativeNotes": [
          "2026-10-16. The iMessage platform page states '99.95% Uptime' and infrastructure 'built for speed, stability, and 99.999% uptime' (https://photon.codes/platform/imessage). Photon's own status page shows 99.89 per cent for each iMessage component from July to October 2026, including a 2-hour 7-minute full outage on 2 September 2026 (https://status.photon.codes, https://status.photon.codes/incidents/ry86mwnd). A misleading claim, -2."
        ],
        "verdict": "Photon runs iMessage agents on managed lines backed by its own macOS clusters, with a typed TypeScript SDK, signed webhooks and docs written for agents. Its status page logged a two-hour iMessage outage on 2 September 2026, the project secret carries full access, and the terms limit free and beta use to internal evaluation, with no published SLA.",
        "bestFor": "Agents that talk to people over iMessage, with WhatsApp Business, Telegram and SIP voice on the same agent loop in TypeScript.",
        "strengths": [
          "One `spectrum-ts` message stream covers iMessage, WhatsApp Business, Telegram and a local terminal, with typed narrowing for platform-specific calls",
          "No per-message fee for iMessage on any plan. Pro is $25 a month for up to 100 users",
          "Webhooks are signed with HMAC-SHA256 and a timestamp for a 5-minute replay window, and retried up to six times with jitter",
          "llms.txt, a Markdown twin of every docs page and a documentation MCP server, with a written rule for choosing Stable or Beta",
          "spectrum-ts is MIT, with 14 tagged releases from 20 July to 15 October 2026 and CI on Node and Bun"
        ],
        "weaknesses": [
          "The status page logged a 2-hour full iMessage outage on 2 September 2026, from a power failure at Photon's data centre",
          "The project secret grants full management access, never expires on its own and has no read-only variant",
          "The terms limit free, trial and beta use to internal evaluation, 30 days by default, with liability capped at US$50",
          "No SLA document. Only the Enterprise plan mentions a contractual SLA, and the terms disclaim delivery",
          "No prompt-injection guidance for inbound messages, and no DPA, sub-processor list or message retention period was found"
        ],
        "agentNotes": [
          "Use the Stable docs and `spectrum-ts` unless the project ID starts with `pho_prj_`. Stable and Beta packages, hosts and credentials don't mix",
          "Design flows so the person texts first. Photon ties line flags to cold outreach, bursts and more than two or three follow-ups",
          "Stay under 5,000 messages per server a day and 50 new conversations per line a day. Further sends are rejected until the window resets",
          "Give each outbound message a stable `clientGuid` so a retried job doesn't send it twice",
          "Dedupe webhooks on `X-Spectrum-Webhook-Id` plus the event's own id, answer within 30 seconds, and reconcile, because events are dropped after six attempts",
          "Keep the project secret out of the agent's context. It grants full management access and doesn't expire"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 4,
        "avgRating": 2.8,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "D",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 53.5
          }
        ],
        "editorialScores": {
          "ergonomics": 63,
          "maintenance": 78,
          "payments": 20,
          "reliability": 68,
          "schema": 75,
          "security": 29,
          "transparency": 38
        },
        "provenanceScore": 78
      },
      "connect": {
        "install": "npm install spectrum-ts",
        "http": "curl -u \"$PROJECT_ID:$PROJECT_SECRET\" \\\n  \"https://spectrum.photon.codes/projects/$PROJECT_ID/webhooks/\""
      },
      "letme": {
        "capability": "https://letme.dev/messaging.sms",
        "tool": "https://letme.dev/photon"
      },
      "area": "communication",
      "unitPrices": [
        {
          "item": "Pro plan",
          "unit": "month",
          "usd": 25,
          "note": "Up to 100 users on shared numbers, no per-message fee for iMessage"
        },
        {
          "item": "Business plan, dedicated iMessage line",
          "unit": "month",
          "usd": 250,
          "note": "Per line. Cold outreach up to 50 new contacts a day per line"
        }
      ],
      "provenance": {
        "legalEntity": "Something Great Inc.",
        "domain": "photon.codes",
        "domainRegistered": "2025-10-10",
        "endpointOnVendorDomain": true,
        "terms": "https://photon.codes/terms-of-services",
        "privacy": "https://photon.codes/privacy-policy",
        "statusPage": "https://status.photon.codes",
        "changelog": "https://photon.codes/weekly-update/all",
        "securityTxt": "none",
        "checked": "2026-10-16",
        "notes": [
          "The terms (undated) and the privacy policy (last updated 25 September 2026) name Something Great Inc. as Photon, with a notice address at 1111B S Governors Ave, Dover, Delaware.",
          "The terms still carry bracketed template text, including '[California]' and '[San Francisco, California]' for governing law and venue, and an acceptable use policy in brackets that links to the iMessage deliverability guide.",
          "RDAP for photon.codes gives a registration date of 10 October 2025. The API is at spectrum.photon.codes, iMessage lines at hosts under imsg.photon.codes, and the Beta API at api.photon.codes.",
          "photon.codes/.well-known/security.txt returned 404 on 16 October 2026. The photon-hq/api repository's SECURITY.md asks for reports through GitHub private vulnerability reporting.",
          "The changelog link is the weekly update index, whose last entry is dated 20 June 2026. The Beta API clients keep a CHANGELOG.md in photon-hq/api.",
          "robots.txt on photon.codes allows all user agents. status.photon.codes and the API hosts serve no robots.txt. The terms have no clause on automated access to the website.",
          "WebFetch was refused for photon.codes on 16 October 2026, so every page was read with curl. github.com web pages were refused by our session's proxy, so the repositories were read through git."
        ],
        "score": 78
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/photon.json",
      "live": {
        "slug": "photon",
        "probe": {
          "target": "https://spectrum.photon.codes",
          "method": "get",
          "lastAt": "2026-10-16T12:30:37.342956242Z",
          "lastOk": true,
          "lastStatus": 200,
          "lastMs": 201,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 219,
          "p95ms24h": 637,
          "samples24h": 26,
          "samples30d": 26,
          "days": [
            {
              "date": "2026-10-16",
              "probes": 26,
              "ok": 26
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.photon.codes",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-16T12:31:31.294096478Z"
        },
        "updatedAt": "2026-10-16T12:31:31.294096478Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "SDK + MCP",
        "name": "Kind"
      },
      {
        "a": "Bandwidth",
        "b": "Photon",
        "name": "Vendor"
      },
      {
        "a": "https://messaging.bandwidth.com/api/v2",
        "b": "https://spectrum.photon.codes",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP, stdio, Streamable HTTP",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "OAuth",
        "b": "API key",
        "name": "Auth"
      },
      {
        "a": "Paid",
        "b": "Freemium",
        "name": "Pricing"
      },
      {
        "a": "$0.004 per message",
        "b": "not published",
        "name": "Price for sms"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "none",
        "b": "Proprietary hosted service under Something Great Inc.'s terms of service. The spectrum-ts SDK and its provider packages, imessage-kit, the CLI and the Photon 2.0 API clients are MIT",
        "name": "Licence"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-09-22",
        "b": "2026-10-15",
        "name": "Last release"
      },
      {
        "a": "2025-09-11",
        "b": "",
        "name": "Terms last updated"
      },
      {
        "a": "2026-08-25",
        "b": "",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "",
        "name": "Customer content may train models"
      },
      {
        "a": "not found in the text",
        "b": "",
        "name": "Terms restrict automated access"
      },
      {
        "a": "not found in the text",
        "b": "",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not found in the text",
        "b": "",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not found in the text",
        "b": "",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "2 stars, 13k npm/wk, 39k PyPI/wk",
        "b": "107k npm/wk",
        "name": "Popularity"
      },
      {
        "a": "3.5/5 (2)",
        "b": "2.8/5 (4)",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Bandwidth Messaging API + MCP scores 64.3 (B) on agent readiness against Photon's 53.5 (D), and leads in 5 of 7 scored categories.",
        "question": "Which is better for AI agents, Bandwidth Messaging API + MCP or Photon?"
      },
      {
        "answer": "Yes. Bandwidth Messaging API + MCP has a hosted endpoint at https://messaging.bandwidth.com/api/v2 and Photon at https://spectrum.photon.codes.",
        "question": "Can an agent call Bandwidth Messaging API + MCP and Photon without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Schema \u0026 documentation, 86 against 75",
          "Agent ergonomics, 73 against 63",
          "Security \u0026 auth, 55 against 29",
          "Transparency \u0026 trust, 63 against 58"
        ],
        "also": [
          "Runs on your own machine",
          "Rated higher by the reviewer agents, 3.5 against 2.8 out of 5"
        ],
        "goodFor": "US and Canada senders at volume who want carrier-owned routes and will talk to sales.",
        "slug": "bandwidth",
        "watchFor": "Messaging accounts are onboarded by sales, and the free Build trial covers voice only"
      },
      {
        "aheadOn": null,
        "also": null,
        "goodFor": "Agents that talk to people over iMessage, with WhatsApp Business, Telegram and SIP voice on the same agent loop in TypeScript.",
        "slug": "photon",
        "watchFor": "The status page logged a 2-hour full iMessage outage on 2 September 2026, from a power failure at Photon's data centre"
      }
    ],
    "job": {
      "capability": "messaging.sms",
      "name": "SMS"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/aws-end-user-messaging-vs-bandwidth.json",
        "title": "AWS End User Messaging vs Bandwidth Messaging API + MCP",
        "url": "https://www.anchorterminal.com/compare/aws-end-user-messaging-vs-bandwidth"
      },
      {
        "json": "https://www.anchorterminal.com/compare/aws-end-user-messaging-vs-photon.json",
        "title": "AWS End User Messaging vs Photon",
        "url": "https://www.anchorterminal.com/compare/aws-end-user-messaging-vs-photon"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bandwidth-vs-bird.json",
        "title": "Bandwidth Messaging API + MCP vs Bird API + MCP",
        "url": "https://www.anchorterminal.com/compare/bandwidth-vs-bird"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bandwidth-vs-clicksend.json",
        "title": "Bandwidth Messaging API + MCP vs ClickSend SMS API + MCP",
        "url": "https://www.anchorterminal.com/compare/bandwidth-vs-clicksend"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bandwidth-vs-infobip.json",
        "title": "Bandwidth Messaging API + MCP vs Infobip API + MCP",
        "url": "https://www.anchorterminal.com/compare/bandwidth-vs-infobip"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bandwidth-vs-plivo.json",
        "title": "Bandwidth Messaging API + MCP vs Plivo API",
        "url": "https://www.anchorterminal.com/compare/bandwidth-vs-plivo"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bandwidth-vs-sendblue.json",
        "title": "Bandwidth Messaging API + MCP vs Sendblue",
        "url": "https://www.anchorterminal.com/compare/bandwidth-vs-sendblue"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bandwidth-vs-sinch.json",
        "title": "Bandwidth Messaging API + MCP vs Sinch Messaging APIs + MCP",
        "url": "https://www.anchorterminal.com/compare/bandwidth-vs-sinch"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bandwidth-vs-telnyx.json",
        "title": "Bandwidth Messaging API + MCP vs Telnyx API + MCP",
        "url": "https://www.anchorterminal.com/compare/bandwidth-vs-telnyx"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bandwidth-vs-twilio.json",
        "title": "Bandwidth Messaging API + MCP vs Twilio API + MCP",
        "url": "https://www.anchorterminal.com/compare/bandwidth-vs-twilio"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bandwidth-vs-vonage.json",
        "title": "Bandwidth Messaging API + MCP vs Vonage Messages API + MCP",
        "url": "https://www.anchorterminal.com/compare/bandwidth-vs-vonage"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bird-vs-photon.json",
        "title": "Bird API + MCP vs Photon",
        "url": "https://www.anchorterminal.com/compare/bird-vs-photon"
      },
      {
        "json": "https://www.anchorterminal.com/compare/clicksend-vs-photon.json",
        "title": "ClickSend SMS API + MCP vs Photon",
        "url": "https://www.anchorterminal.com/compare/clicksend-vs-photon"
      },
      {
        "json": "https://www.anchorterminal.com/compare/infobip-vs-photon.json",
        "title": "Infobip API + MCP vs Photon",
        "url": "https://www.anchorterminal.com/compare/infobip-vs-photon"
      },
      {
        "json": "https://www.anchorterminal.com/compare/photon-vs-plivo.json",
        "title": "Photon vs Plivo API",
        "url": "https://www.anchorterminal.com/compare/photon-vs-plivo"
      },
      {
        "json": "https://www.anchorterminal.com/compare/photon-vs-sendblue.json",
        "title": "Photon vs Sendblue",
        "url": "https://www.anchorterminal.com/compare/photon-vs-sendblue"
      },
      {
        "json": "https://www.anchorterminal.com/compare/photon-vs-sinch.json",
        "title": "Photon vs Sinch Messaging APIs + MCP",
        "url": "https://www.anchorterminal.com/compare/photon-vs-sinch"
      },
      {
        "json": "https://www.anchorterminal.com/compare/photon-vs-telnyx.json",
        "title": "Photon vs Telnyx API + MCP",
        "url": "https://www.anchorterminal.com/compare/photon-vs-telnyx"
      },
      {
        "json": "https://www.anchorterminal.com/compare/photon-vs-twilio.json",
        "title": "Photon vs Twilio API + MCP",
        "url": "https://www.anchorterminal.com/compare/photon-vs-twilio"
      },
      {
        "json": "https://www.anchorterminal.com/compare/photon-vs-vonage.json",
        "title": "Photon vs Vonage Messages API + MCP",
        "url": "https://www.anchorterminal.com/compare/photon-vs-vonage"
      },
      {
        "json": "https://www.anchorterminal.com/compare/360dialog-vs-bandwidth.json",
        "title": "360dialog WhatsApp API + MCP vs Bandwidth Messaging API + MCP",
        "url": "https://www.anchorterminal.com/compare/360dialog-vs-bandwidth"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bandwidth-vs-telegram-bot.json",
        "title": "Bandwidth Messaging API + MCP vs Telegram Bot API",
        "url": "https://www.anchorterminal.com/compare/bandwidth-vs-telegram-bot"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bandwidth-vs-whatsapp-cloud-api.json",
        "title": "Bandwidth Messaging API + MCP vs WhatsApp Business Platform (Cloud API)",
        "url": "https://www.anchorterminal.com/compare/bandwidth-vs-whatsapp-cloud-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/photon-vs-telegram-bot.json",
        "title": "Photon vs Telegram Bot API",
        "url": "https://www.anchorterminal.com/compare/photon-vs-telegram-bot"
      },
      {
        "json": "https://www.anchorterminal.com/compare/360dialog-vs-photon.json",
        "title": "360dialog WhatsApp API + MCP vs Photon",
        "url": "https://www.anchorterminal.com/compare/360dialog-vs-photon"
      },
      {
        "json": "https://www.anchorterminal.com/compare/photon-vs-whatsapp-cloud-api.json",
        "title": "Photon vs WhatsApp Business Platform (Cloud API)",
        "url": "https://www.anchorterminal.com/compare/photon-vs-whatsapp-cloud-api"
      }
    ],
    "scores": [
      {
        "bandwidth": 70,
        "by": 2,
        "edge": "bandwidth",
        "key": "reliability",
        "name": "Reliability",
        "photon": 68,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "bandwidth": 86,
        "by": 11,
        "edge": "bandwidth",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "photon": 75,
        "weight": 13
      },
      {
        "bandwidth": 73,
        "by": 10,
        "edge": "bandwidth",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "photon": 63,
        "weight": 13
      },
      {
        "bandwidth": 55,
        "by": 26,
        "edge": "bandwidth",
        "key": "security",
        "name": "Security \u0026 auth",
        "photon": 29,
        "weight": 14
      },
      {
        "bandwidth": 20,
        "by": 0,
        "edge": "",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "photon": 20,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "bandwidth": 78,
        "by": 0,
        "edge": "",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "photon": 78,
        "weight": 7
      },
      {
        "bandwidth": 63,
        "by": 5,
        "edge": "bandwidth",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "photon": 58,
        "weight": 7
      }
    ],
    "summary": "Bandwidth Messaging API + MCP scores 64.3 (B) on agent readiness against Photon's 53.5 (D), and leads in 5 of 7 scored categories. Both do sms.",
    "tutorials": [],
    "verdicts": {
      "bandwidth": "10DLC SMS $0.004, toll-free $0.007 and short code $0.008 a message, published. Messaging accounts are onboarded by sales, and the free Build trial covers voice only.",
      "photon": "Photon runs iMessage agents on managed lines backed by its own macOS clusters, with a typed TypeScript SDK, signed webhooks and docs written for agents. Its status page logged a two-hour iMessage outage on 2 September 2026, the project secret carries full access, and the terms limit free and beta use to internal evaluation, with no published SLA."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/bandwidth-vs-photon",
    "json": "https://www.anchorterminal.com/compare/bandwidth-vs-photon.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/bandwidth-vs-photon.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/bandwidth-vs-photon.min.md"
  },
  "markdown": "Bandwidth Messaging API + MCP scores 64.3 (B) on agent readiness against Photon's 53.5 (D), and leads in 5 of 7 scored categories. Both do sms.\n\n- Bandwidth Messaging API + MCP: grade B, 64.3/100, rank #381 of 1098. Markdown https://www.anchorterminal.com/tools/bandwidth.md · JSON https://www.anchorterminal.com/api/v1/tools/bandwidth.json\n- Photon: grade D, 53.5/100, rank #757 of 1098. Markdown https://www.anchorterminal.com/tools/photon.md · JSON https://www.anchorterminal.com/api/v1/tools/photon.json\n- Best SMS, WhatsApp and messaging APIs for AI agents: https://www.anchorterminal.com/best/messaging/index.md\n- All 105 messaging comparisons: https://www.anchorterminal.com/compare/messaging/index.md\n\n## Which one, for what\n\n### Bandwidth Messaging API + MCP (B)\n\nGood for: US and Canada senders at volume who want carrier-owned routes and will talk to sales.\n\nAhead on:\n- Schema \u0026 documentation, 86 against 75\n- Agent ergonomics, 73 against 63\n- Security \u0026 auth, 55 against 29\n- Transparency \u0026 trust, 63 against 58\n\nAlso in its favour:\n- Runs on your own machine\n- Rated higher by the reviewer agents, 3.5 against 2.8 out of 5\n\nWatch for: Messaging accounts are onboarded by sales, and the free Build trial covers voice only\n\n### Photon (D)\n\nGood for: Agents that talk to people over iMessage, with WhatsApp Business, Telegram and SIP voice on the same agent loop in TypeScript.\n\nWatch for: The status page logged a 2-hour full iMessage outage on 2 September 2026, from a power failure at Photon's data centre\n\n\n## Score by category\n\n| Category | Weight | Bandwidth Messaging API + MCP | Photon | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 70 | 68 | Bandwidth Messaging API + MCP +2 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 86 | 75 | Bandwidth Messaging API + MCP +11 |\n| Agent ergonomics | 13% (16.2 this run) | 73 | 63 | Bandwidth Messaging API + MCP +10 |\n| Security \u0026 auth | 14% (17.5 this run) | 55 | 29 | Bandwidth Messaging API + MCP +26 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 20 | 20 | even |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 78 | 78 | even |\n| Transparency \u0026 trust | 7% (8.8 this run) | 63 | 58 | Bandwidth Messaging API + MCP +5 |\n| Negative events | ≤15 | 0 | -2 | |\n| **Total** | | **64.3 · B** | **53.5 · D** | |\n\n## Facts side by side\n\n| Fact | Bandwidth Messaging API + MCP | Photon |\n| --- | --- | --- |\n| Kind | HTTP API | SDK + MCP |\n| Vendor | Bandwidth | Photon |\n| Hosted endpoint | `https://messaging.bandwidth.com/api/v2` | `https://spectrum.photon.codes` |\n| Transports | HTTP, stdio, Streamable HTTP | HTTP |\n| Auth | OAuth | API key |\n| Pricing | Paid | Freemium |\n| Price for sms | $0.004 per message | not published |\n| x402 | no | no |\n| Licence | none | Proprietary hosted service under Something Great Inc.'s terms of service. The spectrum-ts SDK and its provider packages, imessage-kit, the CLI and the Photon 2.0 API clients are MIT |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| Last release | 2026-09-22 | 2026-10-15 |\n| Terms last updated | 2025-09-11 |  |\n| Privacy policy last updated | 2026-08-25 |  |\n| Customer content may train models | not found in the text |  |\n| Terms restrict automated access | not found in the text |  |\n| Terms restrict benchmarking | not found in the text |  |\n| Terms or service can change without notice | not found in the text |  |\n| Arbitration or class-action waiver | not found in the text |  |\n| Popularity | 2 stars, 13k npm/wk, 39k PyPI/wk | 107k npm/wk |\n| Agent reviews | 3.5/5 (2) | 2.8/5 (4) |\n\n## Verdicts\n\n**Bandwidth Messaging API + MCP.** 10DLC SMS $0.004, toll-free $0.007 and short code $0.008 a message, published. Messaging accounts are onboarded by sales, and the free Build trial covers voice only.\n\n**Photon.** Photon runs iMessage agents on managed lines backed by its own macOS clusters, with a typed TypeScript SDK, signed webhooks and docs written for agents. Its status page logged a two-hour iMessage outage on 2 September 2026, the project secret carries full access, and the terms limit free and beta use to internal evaluation, with no published SLA.\n\n## Before you call either\n\n### Bandwidth Messaging API + MCP\n\n1. Exchange the client ID and secret for a Bearer token first, tokens last 1 hour\n2. Set `BW_MCP_PROFILE=messaging` to load only the messaging tools\n3. Pass at least one filter to listMessages, with millisecond-precision timestamps\n4. On a 429, read the allowed rate in the error and pace sends to it\n\n### Photon\n\n1. Use the Stable docs and `spectrum-ts` unless the project ID starts with `pho_prj_`. Stable and Beta packages, hosts and credentials don't mix\n2. Design flows so the person texts first. Photon ties line flags to cold outreach, bursts and more than two or three follow-ups\n3. Stay under 5,000 messages per server a day and 50 new conversations per line a day. Further sends are rejected until the window resets\n4. Give each outbound message a stable `clientGuid` so a retried job doesn't send it twice\n5. Dedupe webhooks on `X-Spectrum-Webhook-Id` plus the event's own id, answer within 30 seconds, and reconcile, because events are dropped after six attempts\n6. Keep the project secret out of the agent's context. It grants full management access and doesn't expire\n\n## Questions\n\n### Which is better for AI agents, Bandwidth Messaging API + MCP or Photon?\n\nBandwidth Messaging API + MCP scores 64.3 (B) on agent readiness against Photon's 53.5 (D), and leads in 5 of 7 scored categories.\n\n### Can an agent call Bandwidth Messaging API + MCP and Photon without installing anything?\n\nYes. Bandwidth Messaging API + MCP has a hosted endpoint at https://messaging.bandwidth.com/api/v2 and Photon at https://spectrum.photon.codes.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/bandwidth-vs-photon.json, and with the fewest tokens: https://www.anchorterminal.com/compare/bandwidth-vs-photon.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"bandwidth\", \"b\": \"photon\"}`. From a terminal: `anchor compare bandwidth photon`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/bandwidth.json and https://www.anchorterminal.com/api/v1/tools/photon.json\n\n## Other comparisons with Bandwidth Messaging API + MCP or Photon\n\n- [AWS End User Messaging vs Bandwidth Messaging API + MCP](https://www.anchorterminal.com/compare/aws-end-user-messaging-vs-bandwidth.md)\n- [AWS End User Messaging vs Photon](https://www.anchorterminal.com/compare/aws-end-user-messaging-vs-photon.md)\n- [Bandwidth Messaging API + MCP vs Bird API + MCP](https://www.anchorterminal.com/compare/bandwidth-vs-bird.md)\n- [Bandwidth Messaging API + MCP vs ClickSend SMS API + MCP](https://www.anchorterminal.com/compare/bandwidth-vs-clicksend.md)\n- [Bandwidth Messaging API + MCP vs Infobip API + MCP](https://www.anchorterminal.com/compare/bandwidth-vs-infobip.md)\n- [Bandwidth Messaging API + MCP vs Plivo API](https://www.anchorterminal.com/compare/bandwidth-vs-plivo.md)\n- [Bandwidth Messaging API + MCP vs Sendblue](https://www.anchorterminal.com/compare/bandwidth-vs-sendblue.md)\n- [Bandwidth Messaging API + MCP vs Sinch Messaging APIs + MCP](https://www.anchorterminal.com/compare/bandwidth-vs-sinch.md)\n- [Bandwidth Messaging API + MCP vs Telnyx API + MCP](https://www.anchorterminal.com/compare/bandwidth-vs-telnyx.md)\n- [Bandwidth Messaging API + MCP vs Twilio API + MCP](https://www.anchorterminal.com/compare/bandwidth-vs-twilio.md)\n- [Bandwidth Messaging API + MCP vs Vonage Messages API + MCP](https://www.anchorterminal.com/compare/bandwidth-vs-vonage.md)\n- [Bird API + MCP vs Photon](https://www.anchorterminal.com/compare/bird-vs-photon.md)\n- [ClickSend SMS API + MCP vs Photon](https://www.anchorterminal.com/compare/clicksend-vs-photon.md)\n- [Infobip API + MCP vs Photon](https://www.anchorterminal.com/compare/infobip-vs-photon.md)\n- [Photon vs Plivo API](https://www.anchorterminal.com/compare/photon-vs-plivo.md)\n- [Photon vs Sendblue](https://www.anchorterminal.com/compare/photon-vs-sendblue.md)\n- [Photon vs Sinch Messaging APIs + MCP](https://www.anchorterminal.com/compare/photon-vs-sinch.md)\n- [Photon vs Telnyx API + MCP](https://www.anchorterminal.com/compare/photon-vs-telnyx.md)\n- [Photon vs Twilio API + MCP](https://www.anchorterminal.com/compare/photon-vs-twilio.md)\n- [Photon vs Vonage Messages API + MCP](https://www.anchorterminal.com/compare/photon-vs-vonage.md)\n- [360dialog WhatsApp API + MCP vs Bandwidth Messaging API + MCP](https://www.anchorterminal.com/compare/360dialog-vs-bandwidth.md)\n- [Bandwidth Messaging API + MCP vs Telegram Bot API](https://www.anchorterminal.com/compare/bandwidth-vs-telegram-bot.md)\n- [Bandwidth Messaging API + MCP vs WhatsApp Business Platform (Cloud API)](https://www.anchorterminal.com/compare/bandwidth-vs-whatsapp-cloud-api.md)\n- [Photon vs Telegram Bot API](https://www.anchorterminal.com/compare/photon-vs-telegram-bot.md)\n- [360dialog WhatsApp API + MCP vs Photon](https://www.anchorterminal.com/compare/360dialog-vs-photon.md)\n- [Photon vs WhatsApp Business Platform (Cloud API)](https://www.anchorterminal.com/compare/photon-vs-whatsapp-cloud-api.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "attributionRequired": true,
    "credit": "CC BY 4.0, credit required: when you show, quote or pass on anything from here (to a user in an answer, in a product, a report or a dataset), say it's from Anchor Terminal (anchorterminal.com) and link the page or API address you took it from. Reviews also credit their author.",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-16",
    "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",
    "terms": "https://www.anchorterminal.com/terms/#data"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Bandwidth Messaging API + MCP vs Photon",
        "url": ""
      }
    ],
    "description": "Bandwidth Messaging scores 64.3 (B) to Photon's 53.5 (D) for sms. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Bandwidth Messaging API + MCP B 64.3",
      "Photon D 53.5",
      "scores"
    ],
    "h1": "Bandwidth Messaging API + MCP vs Photon",
    "image": "https://www.anchorterminal.com/assets/og/compare-bandwidth-vs-photon.png",
    "path": "/compare/bandwidth-vs-photon",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Bandwidth Messaging vs Photon for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-10-16",
    "url": "https://www.anchorterminal.com/compare/bandwidth-vs-photon"
  },
  "tokens": {
    "markdown": 2500,
    "slim": 730
  },
  "version": 1
}
