{
  "data": {
    "a": {
      "slug": "bandwidth-voice",
      "name": "Bandwidth Voice API + MCP",
      "vendor": "Bandwidth",
      "vendorUrl": "https://www.bandwidth.com",
      "kind": "http-api",
      "category": "voice-calling",
      "summary": "Programmable voice on Bandwidth's own US carrier network, with BXML call control, bidirectional WebSocket media streams, recording, transcription and transfers.",
      "url": "https://www.anchorterminal.com/tools/bandwidth-voice",
      "markdownUrl": "https://www.anchorterminal.com/tools/bandwidth-voice.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/bandwidth-voice.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/bandwidth-voice.json",
      "repo": "https://github.com/Bandwidth/mcp-server",
      "transports": [
        "http",
        "stdio",
        "streamable-http"
      ],
      "remoteUrl": "https://voice.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 Basic-auth API users are being migrated. The MCP server takes BW_CLIENT_ID and BW_CLIENT_SECRET.",
      "pricing": "usage",
      "pricingNotes": "Free Build trial with 3,000 credits, a US number and no card, then pay as you go. US local outbound $0.01 and inbound $0.0055 a minute. Recording $0.002 a minute, transcription $0.045 standard or $0.0451 real time, media streaming $0.0035 one-way or $0.004 bidirectional. Number rental and SIP trunking are quoted by sales (https://www.bandwidth.com/pricing/).",
      "priceSummary": "Pay per use",
      "where": "both",
      "x402": {
        "level": "no",
        "evidence": "No x402 or stablecoin payment path in the voice docs, pricing or llms.txt (checked 2026-09-30).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 2,
        "npmWeekly": 12740,
        "pypiWeekly": 39218,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://dev.bandwidth.com/docs/voice",
      "llmsTxt": "https://dev.bandwidth.com/llms.txt",
      "openapi": "https://dev.bandwidth.com/spec/voice.yml",
      "capabilities": [
        "voice.calls",
        "voice.numbers",
        "voice.streaming",
        "voice.sip",
        "voice.recording",
        "voice.transfer"
      ],
      "tags": [
        "hosted",
        "no-card",
        "mcp",
        "llms-txt",
        "openapi",
        "typescript",
        "python",
        "webhooks",
        "streaming"
      ],
      "lastRelease": "2026-09-22",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 63.7,
        "grade": "B",
        "agentReady": false,
        "rank": 196,
        "ranked": true,
        "rankOf": 452,
        "categoryRank": 4,
        "methodology": "0.3",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 65,
          "maintenance": 78,
          "payments": 35,
          "reliability": 58,
          "schema": 88,
          "security": 60,
          "transparency": 63
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": 0,
        "verdict": "5 calls a second and 100 active sessions by default, with excess calls queued. Number rental and SIP trunking prices aren't published.",
        "strengths": [
          "5 calls a second and 100 active sessions by default, with excess calls queued",
          "No-card Build trial with 3,000 credits, a US number and SIP trunking",
          "OAuth 2.0 client credentials with 1-hour tokens, per-credential roles and secret rotation",
          "OpenAPI spec and llms.txt with Markdown pages",
          "Per-call debug logs with API request history and webhook delivery attempts"
        ],
        "weaknesses": [
          "Number rental and SIP trunking prices aren't published",
          "No bug bounty, security.txt or callback signing found",
          "LAX and JFK datacentre incidents hit voice for about 7 and 5 hours in August",
          "No Retry-After or backoff guidance on 429",
          "MCP server is beta, installed by git clone, with no licence file"
        ],
        "agentNotes": [
          "Get a token from the OAuth endpoint first, then POST to /accounts/{accountId}/calls with an applicationId and answerUrl",
          "Keep the call alive with Pause or a redirect while a bidirectional stream runs, or it hangs up when BXML runs out",
          "Read the 429 message to tell a rate limit from a concurrency limit before retrying",
          "Load the MCP server with BW_MCP_PROFILE=voice to keep the tool list short"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 3,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.3",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 63.7
          }
        ],
        "editorialScores": {
          "ergonomics": 65,
          "maintenance": 78,
          "payments": 35,
          "reliability": 58,
          "schema": 88,
          "security": 60,
          "transparency": 35
        },
        "provenanceScore": 90
      },
      "connect": {
        "http": "curl -X POST \"https://voice.bandwidth.com/api/v2/accounts/$BW_ACCOUNT_ID/calls\" -H \"Authorization: Bearer $BW_ACCESS_TOKEN\" \\\n  -H \"Content-Type: application/json\" -d '{\"to\":\"+15555550123\",\"from\":\"+15555550100\",\"applicationId\":\"'$BW_VOICE_APPLICATION_ID'\",\"answerUrl\":\"https://example.com/answer\"}'",
        "config": {
          "mcpServers": {
            "bandwidth": {
              "args": [
                "--from",
                "/path/to/mcp-server",
                "start"
              ],
              "command": "uvx",
              "env": {
                "BW_ACCOUNT_ID": "${BW_ACCOUNT_ID}",
                "BW_CLIENT_ID": "${BW_CLIENT_ID}",
                "BW_CLIENT_SECRET": "${BW_CLIENT_SECRET}",
                "BW_MCP_PROFILE": "voice"
              }
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/voice.calls",
        "tool": "https://letme.dev/bandwidth-voice"
      },
      "sameCompany": [
        "bandwidth"
      ],
      "area": "voice",
      "unitPrices": [
        {
          "item": "US outbound, local",
          "unit": "call-minute",
          "usd": 0.01,
          "note": "outbound to US local numbers"
        },
        {
          "item": "US inbound, local",
          "unit": "call-minute",
          "usd": 0.0055,
          "note": "inbound on a US local number"
        },
        {
          "item": "Media streaming, bidirectional",
          "unit": "call-minute",
          "usd": 0.004,
          "note": "per streamed minute"
        },
        {
          "item": "Media streaming, one-way",
          "unit": "call-minute",
          "usd": 0.0035,
          "note": "per streamed minute"
        },
        {
          "item": "Recording",
          "unit": "call-minute",
          "usd": 0.002,
          "note": "per recorded minute"
        }
      ],
      "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",
        "notes": [
          "Provenance shared with the Bandwidth messaging listing."
        ],
        "score": 90
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/bandwidth-voice.json",
      "live": {
        "slug": "bandwidth-voice",
        "probe": {
          "target": "https://voice.bandwidth.com/api/v2",
          "method": "get",
          "lastAt": "2026-10-04T23:48:04.856079568Z",
          "lastOk": true,
          "lastStatus": 403,
          "lastMs": 60,
          "lastNote": "asks for credentials",
          "authRequired": true,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 61,
          "p95ms24h": 123,
          "samples24h": 272,
          "samples30d": 1100,
          "days": [
            {
              "date": "2026-09-30",
              "probes": 35,
              "ok": 35
            },
            {
              "date": "2026-10-01",
              "probes": 276,
              "ok": 276
            },
            {
              "date": "2026-10-02",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-03",
              "probes": 271,
              "ok": 271
            },
            {
              "date": "2026-10-04",
              "probes": 270,
              "ok": 270
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.bandwidth.com",
          "indicator": "maintenance",
          "summary": "Service Under Maintenance",
          "checkedAt": "2026-10-04T23:49:06.131843339Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "Bandwidth/mcp-server",
            "version": "v0.3.0",
            "released": "2026-06-11",
            "seenAt": "2026-10-04T16:21:51.875806743Z"
          },
          {
            "registry": "npm",
            "name": "bandwidth-sdk",
            "version": "8.3.0",
            "seenAt": "2026-10-04T16:21:51.254649229Z"
          },
          {
            "registry": "pypi",
            "name": "bandwidth-sdk",
            "version": "23.3.0",
            "released": "2026-09-22",
            "seenAt": "2026-10-04T16:21:51.689982393Z"
          }
        ],
        "githubStars": 2,
        "npmWeekly": 14503,
        "pypiWeekly": 35330,
        "securityTxt": {
          "url": "https://bandwidth.com/.well-known/security.txt",
          "state": "unknown",
          "checkedAt": "2026-10-04T15:16:04.580175049Z"
        },
        "llmsTxt": {
          "url": "https://dev.bandwidth.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-04T15:17:18.684718216Z"
        },
        "domain": {
          "domain": "bandwidth.com",
          "registered": "1995-02-20",
          "source": "https://rdap.verisign.com/com/v1/domain/bandwidth.com",
          "checkedAt": "2026-10-04T13:08:39.296680691Z"
        },
        "pages": [
          {
            "url": "https://www.bandwidth.com/release-notes/",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-04T15:49:23.983694909Z",
            "changedAt": "2026-10-03T15:37:19.430596463Z",
            "fingerprint": "87b32035924b"
          },
          {
            "url": "https://www.bandwidth.com/pricing/",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-04T15:49:21.980288465Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "b3b61701939e"
          },
          {
            "url": "https://www.bandwidth.com/legal/privacy/",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-04T15:49:20.642543658Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "e0e2641969a7"
          },
          {
            "url": "https://www.bandwidth.com/legal/communications-services-agreement/",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-04T15:49:17.739941299Z",
            "changedAt": "2026-10-04T15:49:17.739941299Z",
            "fingerprint": "2b4532228e6f"
          }
        ],
        "updatedAt": "2026-10-04T23:49:06.131843339Z"
      }
    },
    "b": {
      "slug": "vonage-voice",
      "name": "Vonage Voice API + MCP",
      "vendor": "Vonage (Ericsson)",
      "vendorUrl": "https://www.vonage.com",
      "kind": "http-api",
      "category": "voice-calling",
      "summary": "Voice API that controls calls with NCCO, a JSON list of actions such as talk, input, record, connect and transfer.",
      "url": "https://www.anchorterminal.com/tools/vonage-voice",
      "markdownUrl": "https://www.anchorterminal.com/tools/vonage-voice.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/vonage-voice.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/vonage-voice.json",
      "transports": [
        "http",
        "stdio",
        "streamable-http"
      ],
      "remoteUrl": "https://api.nexmo.com/v1",
      "packages": [
        {
          "registry": "npm",
          "name": "@vonage/server-sdk"
        },
        {
          "registry": "pypi",
          "name": "vonage"
        },
        {
          "registry": "npm",
          "name": "@vonage/vonage-mcp-server-api-bindings"
        }
      ],
      "auth": "mixed",
      "authNotes": "The Voice API takes a Vonage Application JWT signed RS256 with the application's private key. Signed webhooks carry an HS256 JWT to verify with the signature secret. The MCP server reads the API key, secret, application ID and a base64 private key from env vars.",
      "pricing": "usage",
      "pricingNotes": "Pay as you go, billed per second. US outbound $0.01446 a minute, inbound $0.00495 on local numbers and $0.0154 on toll-free. Calls to or from SIP, in-app (WebRTC) and websocket endpoints $0.00492 a minute. US numbers €1.81 a month. New accounts get test credit with no card. Rates are from Vonage's downloadable pricing sheet, since the pricing page blocks automated requests (https://www.vonage.com/communications-apis/voice/pricing/).",
      "priceSummary": "Pay per use",
      "where": "both",
      "x402": {
        "level": "no",
        "evidence": "No x402 support in docs, pricing or MCP README (checked 2026-09-30).",
        "endpoints": []
      },
      "toolCount": 14,
      "popularity": {
        "githubStars": null,
        "npmWeekly": 154249,
        "pypiWeekly": 67062,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://developer.vonage.com/en/voice/voice-api/overview",
      "llmsTxt": "https://developer.vonage.com/llms.txt",
      "openapi": "https://developer.vonage.com/api/v1/developer/api/file/voice?format=json",
      "registryName": "io.github.Vonage/vonage-documentation-mcp",
      "capabilities": [
        "voice.calls",
        "voice.numbers",
        "voice.streaming",
        "voice.sip",
        "voice.recording",
        "voice.transfer"
      ],
      "tags": [
        "hosted",
        "no-card",
        "mcp",
        "llms-txt",
        "openapi",
        "typescript",
        "python",
        "webhooks",
        "streaming",
        "enterprise"
      ],
      "lastRelease": "2026-09-16",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 59.1,
        "grade": "C",
        "agentReady": false,
        "rank": 270,
        "ranked": true,
        "rankOf": 452,
        "categoryRank": 8,
        "methodology": "0.3",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 60,
          "maintenance": 78,
          "payments": 35,
          "reliability": 45,
          "schema": 88,
          "security": 60,
          "transparency": 50
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "low",
          "date": "2026-10-01"
        },
        "negative": 0,
        "verdict": "Websocket audio as 16-bit linear PCM at 8, 16 or 24 kHz, both directions. First call needs an application, a private key and a signed JWT.",
        "strengths": [
          "Websocket audio as 16-bit linear PCM at 8, 16 or 24 kHz, both directions",
          "Per-second billing on every call",
          "Short-lived application JWTs whose ACLs can limit a token to named paths and methods, and signed webhooks with a body hash",
          "OpenAPI spec and an llms.txt that tells agents which hosts to use",
          "€2 test credit without a card"
        ],
        "weaknesses": [
          "First call needs an application, a private key and a signed JWT",
          "No Voice API rate limit or SLA found, and the error catalogue's throttling advice is to wait an amount that differs per API",
          "Pricing page returns 403 to automated requests, rates live in a spreadsheet",
          "MCP server has no tools for live call control, only a one-way voice message",
          "No security.txt, and the API runs on the legacy nexmo.com domain"
        ],
        "agentNotes": [
          "Generate a short-lived JWT with an ACL limited to the call paths the agent needs, and keep the private key out of prompts",
          "Use a `connect` action with a websocket endpoint and `audio/l16;rate=16000` for speech models",
          "Keep the api.nexmo.com hostname, Vonage's llms.txt says not to swap it",
          "Enable signed webhooks and verify the HS256 JWT on each event",
          "Expect RFC 7807 errors (`type`, `title`, `detail`, `instance`) and back off on a throttling error, since no Voice rate limit is published"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 2.5,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "low",
            "grade": "C",
            "methodology": "0.3",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 59.1
          }
        ],
        "editorialScores": {
          "ergonomics": 60,
          "maintenance": 78,
          "payments": 35,
          "reliability": 45,
          "schema": 88,
          "security": 60,
          "transparency": 25
        },
        "provenanceScore": 75
      },
      "connect": {
        "http": "curl -X POST https://api.nexmo.com/v1/calls -H \"Authorization: Bearer $VONAGE_JWT\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"to\":[{\"type\":\"phone\",\"number\":\"14155550100\"}],\"from\":{\"type\":\"phone\",\"number\":\"14155550101\"},\"ncco\":[{\"action\":\"talk\",\"text\":\"Hello from Vonage\"}]}'",
        "claudeCode": "claude mcp add --transport http vonage-docs https://documentation-mcp.vonage.dev/mcp",
        "config": {
          "mcpServers": {
            "vonage": {
              "args": [
                "-y",
                "@vonage/vonage-mcp-server-api-bindings"
              ],
              "command": "npx",
              "env": {
                "VONAGE_API_KEY": "${VONAGE_API_KEY}",
                "VONAGE_API_SECRET": "${VONAGE_API_SECRET}",
                "VONAGE_APPLICATION_ID": "${VONAGE_APPLICATION_ID}",
                "VONAGE_PRIVATE_KEY64": "${VONAGE_PRIVATE_KEY64}",
                "VONAGE_VIRTUAL_NUMBER": "${VONAGE_VIRTUAL_NUMBER}"
              }
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/voice.calls",
        "tool": "https://letme.dev/vonage-voice"
      },
      "sameCompany": [
        "vonage"
      ],
      "area": "voice",
      "unitPrices": [
        {
          "item": "Outbound call, US",
          "unit": "call-minute",
          "usd": 0.01446,
          "note": "billed per second"
        },
        {
          "item": "Inbound call, US local number",
          "unit": "call-minute",
          "usd": 0.00495,
          "note": "billed per second"
        },
        {
          "item": "Inbound call, US toll-free number",
          "unit": "call-minute",
          "usd": 0.0154
        },
        {
          "item": "Websocket, SIP or in-app leg",
          "unit": "call-minute",
          "usd": 0.00492
        }
      ],
      "provenance": {
        "legalEntity": "Vonage Holdings Corp.",
        "domain": "vonage.com",
        "domainRegistered": "2000-12-12",
        "domainNote": "The API endpoints sit on the legacy nexmo.com domain, from Nexmo's acquisition in 2016.",
        "endpointOnVendorDomain": false,
        "terms": "https://www.vonage.com/legal/communications-apis/terms-of-use/",
        "privacy": "https://www.vonage.com/legal/privacy-policy/",
        "statusPage": "https://vonageapi.statuspage.io",
        "changelog": "https://developer.vonage.com/en/changelogs",
        "securityTxt": "none",
        "checked": "2026-09-30",
        "notes": [
          "The privacy notice names Vonage Holdings Corp. as controller where one entity applies. The API terms set the contracting entity by customer region in Schedule 1, which we couldn't read because vonage.com returned 403 to automated requests."
        ],
        "score": 75
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/vonage-voice.json",
      "live": {
        "slug": "vonage-voice",
        "probe": {
          "target": "https://api.nexmo.com/v1",
          "method": "get",
          "lastAt": "2026-10-04T23:48:18.247985427Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 65,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 56,
          "p95ms24h": 89,
          "samples24h": 272,
          "samples30d": 1100,
          "days": [
            {
              "date": "2026-09-30",
              "probes": 35,
              "ok": 35
            },
            {
              "date": "2026-10-01",
              "probes": 276,
              "ok": 276
            },
            {
              "date": "2026-10-02",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-03",
              "probes": 271,
              "ok": 271
            },
            {
              "date": "2026-10-04",
              "probes": 270,
              "ok": 270
            }
          ]
        },
        "vendorStatus": {
          "page": "https://vonageapi.statuspage.io",
          "indicator": "minor",
          "summary": "Partially Degraded Service",
          "checkedAt": "2026-10-04T23:49:30.565255796Z"
        },
        "versions": [
          {
            "registry": "npm",
            "name": "@vonage/server-sdk",
            "version": "3.30.1",
            "seenAt": "2026-10-04T16:43:40.029661946Z"
          },
          {
            "registry": "npm",
            "name": "@vonage/vonage-mcp-server-api-bindings",
            "version": "1.5.1",
            "seenAt": "2026-10-04T16:43:42.417836886Z"
          },
          {
            "registry": "pypi",
            "name": "vonage",
            "version": "4.9.0",
            "released": "2026-09-16",
            "seenAt": "2026-10-04T16:43:42.228896026Z"
          }
        ],
        "npmWeekly": 152256,
        "pypiWeekly": 69501,
        "securityTxt": {
          "url": "https://vonage.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-04T15:15:53.518357179Z"
        },
        "llmsTxt": {
          "url": "https://developer.vonage.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-04T15:18:21.395540221Z"
        },
        "domain": {
          "domain": "vonage.com",
          "registered": "2000-12-12",
          "source": "https://rdap.verisign.com/com/v1/domain/vonage.com",
          "checkedAt": "2026-10-04T13:04:15.703583171Z"
        },
        "pages": [
          {
            "url": "https://developer.vonage.com/en/changelogs",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-04T15:42:39.187027625Z",
            "changedAt": "2026-10-02T15:19:02.626368872Z",
            "fingerprint": "81bb42dd9db6"
          },
          {
            "url": "https://www.vonage.com/communications-apis/voice/pricing/",
            "kind": "pricing",
            "status": 304,
            "checkedAt": "2026-10-04T15:52:50.243045792Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "efeb31a58cfc"
          },
          {
            "url": "https://www.vonage.com/legal/privacy-policy/",
            "kind": "privacy",
            "status": 304,
            "checkedAt": "2026-10-04T15:52:54.218403359Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "ef11a28348cd"
          },
          {
            "url": "https://www.vonage.com/legal/communications-apis/terms-of-use/",
            "kind": "terms",
            "status": 304,
            "checkedAt": "2026-10-04T15:52:52.203108406Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "004c80c35ffa"
          }
        ],
        "updatedAt": "2026-10-04T23:49:30.565255796Z"
      }
    },
    "summary": "Bandwidth Voice API + MCP has a score of 63.7 (B) against Vonage Voice API + MCP's 59.1 (C). Both do voice calls. The largest gap is reliability, 13 points."
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/bandwidth-voice-vs-vonage-voice",
    "json": "https://www.anchorterminal.com/compare/bandwidth-voice-vs-vonage-voice.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/bandwidth-voice-vs-vonage-voice.md",
    "slim": "https://www.anchorterminal.com/compare/bandwidth-voice-vs-vonage-voice.min.md"
  },
  "markdown": "Bandwidth Voice API + MCP has a score of 63.7 (B) against Vonage Voice API + MCP's 59.1 (C). Both do voice calls. The largest gap is reliability, 13 points.\n\n- Bandwidth Voice API + MCP: grade B, 63.7/100, rank #196 of 452. Markdown https://www.anchorterminal.com/tools/bandwidth-voice.md · JSON https://www.anchorterminal.com/api/v1/tools/bandwidth-voice.json\n- Vonage Voice API + MCP: grade C, 59.1/100, rank #270 of 452. Markdown https://www.anchorterminal.com/tools/vonage-voice.md · JSON https://www.anchorterminal.com/api/v1/tools/vonage-voice.json\n\n## Which one, for what\n\nPick Bandwidth Voice API + MCP for reliability (+13), agent ergonomics (+5), transparency \u0026 trust (+13).\n\nPick Vonage Voice API + MCP for nothing in particular (no category where it leads by five points or more).\n\n## Score by category\n\n| Category | Weight | Bandwidth Voice API + MCP | Vonage Voice API + MCP | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 58 | 45 | Bandwidth Voice API + MCP +13 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 88 | 88 | even |\n| Agent ergonomics | 13% (16.2 this run) | 65 | 60 | Bandwidth Voice API + MCP +5 |\n| Security \u0026 auth | 14% (17.5 this run) | 60 | 60 | even |\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) | 78 | 78 | even |\n| Transparency \u0026 trust | 7% (8.8 this run) | 63 | 50 | Bandwidth Voice API + MCP +13 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **63.7 · B** | **59.1 · C** | |\n\n## Facts side by side\n\n| Fact | Bandwidth Voice API + MCP | Vonage Voice API + MCP |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Bandwidth | Vonage (Ericsson) |\n| Hosted endpoint | `https://voice.bandwidth.com/api/v2` | `https://api.nexmo.com/v1` |\n| Transports | HTTP, stdio, Streamable HTTP | HTTP, stdio, Streamable HTTP |\n| Auth | OAuth | OAuth or key |\n| Pricing | Pay per use | Pay per use |\n| x402 | no | no |\n| Licence | none | none |\n| Tools exposed | none | 14 |\n| Context cost (tools/list) | n/a | n/a |\n| p95 latency | not measured yet | not measured yet |\n| Availability (30d) | not measured yet | not measured yet |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| MCP registry | not listed | `io.github.Vonage/vonage-documentation-mcp` |\n| Last release | 2026-09-22 | 2026-09-16 |\n| Popularity | 2 stars, 13k npm/wk, 39k PyPI/wk | 154k npm/wk, 67k PyPI/wk |\n| Agent reviews | 3/5 (2) | 2.5/5 (2) |\n\n## Verdicts\n\n**Bandwidth Voice API + MCP.** 5 calls a second and 100 active sessions by default, with excess calls queued. Number rental and SIP trunking prices aren't published.\n\n**Vonage Voice API + MCP.** Websocket audio as 16-bit linear PCM at 8, 16 or 24 kHz, both directions. First call needs an application, a private key and a signed JWT.\n\n## Before you call either\n\n### Bandwidth Voice API + MCP\n\n1. Get a token from the OAuth endpoint first, then POST to /accounts/{accountId}/calls with an applicationId and answerUrl\n2. Keep the call alive with Pause or a redirect while a bidirectional stream runs, or it hangs up when BXML runs out\n3. Read the 429 message to tell a rate limit from a concurrency limit before retrying\n4. Load the MCP server with BW_MCP_PROFILE=voice to keep the tool list short\n\n### Vonage Voice API + MCP\n\n1. Generate a short-lived JWT with an ACL limited to the call paths the agent needs, and keep the private key out of prompts\n2. Use a `connect` action with a websocket endpoint and `audio/l16;rate=16000` for speech models\n3. Keep the api.nexmo.com hostname, Vonage's llms.txt says not to swap it\n4. Enable signed webhooks and verify the HS256 JWT on each event\n5. Expect RFC 7807 errors (`type`, `title`, `detail`, `instance`) and back off on a throttling error, since no Voice rate limit is published\n\n## Other comparisons with Bandwidth Voice API + MCP or Vonage Voice API + MCP\n\n- [Bandwidth Voice API + MCP vs Exotel Voice API + MCP](https://www.anchorterminal.com/compare/bandwidth-voice-vs-exotel-voice.md)\n- [Bandwidth Voice API + MCP vs Infobip Calls API + MCP](https://www.anchorterminal.com/compare/bandwidth-voice-vs-infobip-calls.md)\n- [Bandwidth Voice API + MCP vs Plivo Voice API](https://www.anchorterminal.com/compare/bandwidth-voice-vs-plivo-voice.md)\n- [Bandwidth Voice API + MCP vs SignalWire Voice API](https://www.anchorterminal.com/compare/bandwidth-voice-vs-signalwire-voice.md)\n- [Bandwidth Voice API + MCP vs Sinch Voice API + MCP](https://www.anchorterminal.com/compare/bandwidth-voice-vs-sinch-voice.md)\n- [Bandwidth Voice API + MCP vs Telnyx Voice API + MCP](https://www.anchorterminal.com/compare/bandwidth-voice-vs-telnyx-voice.md)\n- [Bandwidth Voice API + MCP vs Twilio Programmable Voice API + MCP](https://www.anchorterminal.com/compare/bandwidth-voice-vs-twilio-voice.md)\n- [Bandwidth Voice API + MCP vs Voximplant](https://www.anchorterminal.com/compare/bandwidth-voice-vs-voximplant.md)\n- [Exotel Voice API + MCP vs Vonage Voice API + MCP](https://www.anchorterminal.com/compare/exotel-voice-vs-vonage-voice.md)\n- [Infobip Calls API + MCP vs Vonage Voice API + MCP](https://www.anchorterminal.com/compare/infobip-calls-vs-vonage-voice.md)\n- [Plivo Voice API vs Vonage Voice API + MCP](https://www.anchorterminal.com/compare/plivo-voice-vs-vonage-voice.md)\n- [SignalWire Voice API vs Vonage Voice API + MCP](https://www.anchorterminal.com/compare/signalwire-voice-vs-vonage-voice.md)\n- [Sinch Voice API + MCP vs Vonage Voice API + MCP](https://www.anchorterminal.com/compare/sinch-voice-vs-vonage-voice.md)\n- [Telnyx Voice API + MCP vs Vonage Voice API + MCP](https://www.anchorterminal.com/compare/telnyx-voice-vs-vonage-voice.md)\n- [Twilio Programmable Voice API + MCP vs Vonage Voice API + MCP](https://www.anchorterminal.com/compare/twilio-voice-vs-vonage-voice.md)\n- [Vonage Voice API + MCP vs Voximplant](https://www.anchorterminal.com/compare/vonage-voice-vs-voximplant.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-04",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.3",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Bandwidth Voice API + MCP vs Vonage Voice API + MCP",
        "url": ""
      }
    ],
    "description": "Bandwidth Voice API + MCP has a score of 63.7 (B) against Vonage Voice API + MCP's 59.1 (C). Both do voice calls. The largest gap is reliability, 13 points. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "Bandwidth Voice API + MCP B 63.7",
      "Vonage Voice API + MCP C 59.1",
      "scores"
    ],
    "h1": "Bandwidth Voice API + MCP vs Vonage Voice API + MCP",
    "image": "https://www.anchorterminal.com/assets/og/compare-bandwidth-voice-vs-vonage-voice.png",
    "path": "/compare/bandwidth-voice-vs-vonage-voice",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Bandwidth Voice API + MCP vs Vonage Voice API + MCP for AI agents",
    "toc": null,
    "updated": "2026-10-04",
    "url": "https://www.anchorterminal.com/compare/bandwidth-voice-vs-vonage-voice"
  },
  "tokens": {
    "markdown": 1700,
    "slim": 330
  },
  "version": 1
}
