{
  "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": "exotel-voice",
      "name": "Exotel Voice API + MCP",
      "vendor": "Exotel",
      "vendorUrl": "https://exotel.com",
      "kind": "http-api",
      "category": "voice-calling",
      "summary": "Indian cloud telephony API for click-to-call, call flows, virtual numbers (ExoPhones), SIP trunking and AgentStream, which streams call audio to your bot over WebSocket in both directions.",
      "url": "https://www.anchorterminal.com/tools/exotel-voice",
      "markdownUrl": "https://www.anchorterminal.com/tools/exotel-voice.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/exotel-voice.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/exotel-voice.json",
      "repo": "https://github.com/exotel/ExotelMCP",
      "license": "MIT",
      "transports": [
        "http",
        "streamable-http"
      ],
      "remoteUrl": "https://api.exotel.com/v1",
      "packages": [],
      "auth": "api-key",
      "authNotes": "HTTP Basic auth with API key and token, and the Account SID in the path. India-hosted accounts use api.in.exotel.com. The hosted MCP takes a JSON object with the base64 key and token in the Authorization header.",
      "pricing": "usage",
      "pricingNotes": "Pay as you go or bundled plans in INR, with a free trial and no card. Per-minute rates and plan prices aren't published on the Exotel site, they're quoted after signup or by sales. Numbers carry a one-time activation fee plus monthly rental (https://exotel.com/pricing/).",
      "priceSummary": "Pay per use",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402 or stablecoin payment path in the voice docs, pricing or llms.txt (checked 2026-09-30).",
        "endpoints": []
      },
      "toolCount": 62,
      "popularity": {
        "githubStars": 5,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://developer.exotel.com/docs/voice",
      "capabilities": [
        "voice.calls",
        "voice.numbers",
        "voice.streaming",
        "voice.sip",
        "voice.recording",
        "voice.transfer"
      ],
      "tags": [
        "hosted",
        "no-card",
        "mcp",
        "webhooks",
        "streaming"
      ],
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 39.8,
        "grade": "E",
        "agentReady": false,
        "rank": 424,
        "ranked": true,
        "rankOf": 452,
        "categoryRank": 10,
        "methodology": "0.3",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 40,
          "maintenance": 5,
          "payments": 20,
          "reliability": 50,
          "schema": 48,
          "security": 40,
          "transparency": 63
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": 0,
        "verdict": "Local Indian numbers and DLT and TRAI handling. Per-minute rates and plan prices not published.",
        "strengths": [
          "Local Indian numbers and DLT and TRAI handling",
          "Hosted MCP with 62 tools that can place calls and manage VoiceBots",
          "AgentStream bidirectional audio with mark and clear events for barge-in",
          "No-card trial",
          "Error code dictionary and multi-language examples since February 2026"
        ],
        "weaknesses": [
          "Per-minute rates and plan prices not published",
          "No OpenAPI spec, llms.txt or official server SDK",
          "Changelog quiet since February 2026",
          "MCP tools carry no read-only or destructive annotations, and credentials travel as a JSON blob in a header",
          "No published rate limits or SLA, and no bug bounty or disclosure policy found"
        ],
        "agentNotes": [
          "Use api.in.exotel.com for India-hosted accounts and api.exotel.com for Singapore-hosted ones",
          "Pass StreamUrl on Calls/connect for a quick outbound voice-agent call",
          "Whitelist test numbers before calling on a trial account",
          "Pass confirm=true only after a person approves a destructive MCP tool call"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 2,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "E",
            "methodology": "0.3",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 39.8
          }
        ],
        "editorialScores": {
          "ergonomics": 40,
          "maintenance": 5,
          "payments": 20,
          "reliability": 50,
          "schema": 48,
          "security": 40,
          "transparency": 35
        },
        "provenanceScore": 90
      },
      "connect": {
        "http": "curl -u \"$EXOTEL_API_KEY:$EXOTEL_API_TOKEN\" -X POST \"https://api.exotel.com/v1/Accounts/$EXOTEL_SID/Calls/connect\" \\\n  -d From=+91XXXXXXXXXX -d To=+91XXXXXXXXXX -d CallerId=$EXOTEL_EXOPHONE",
        "claudeCode": "claude mcp add --transport http exotel https://mcp.exotel.com/mcp --header \"Authorization: $EXOTEL_MCP_AUTH_JSON\"",
        "config": {
          "mcpServers": {
            "exotel": {
              "headers": {
                "Authorization": "${EXOTEL_MCP_AUTH_JSON}"
              },
              "type": "http",
              "url": "https://mcp.exotel.com/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/voice.calls",
        "tool": "https://letme.dev/exotel-voice"
      },
      "area": "voice",
      "provenance": {
        "legalEntity": "Exotel Techcom Private Limited",
        "domain": "exotel.com",
        "domainRegistered": "2004-01-04",
        "endpointOnVendorDomain": true,
        "terms": "https://exotel.com/terms-of-service-exotel/",
        "privacy": "https://exotel.com/privacy-policy/",
        "statusPage": "https://status.exotel.com",
        "changelog": "https://developer.exotel.com/docs/references/changelog",
        "securityTxt": "none",
        "checked": "2026-09-30",
        "notes": [
          "Legal entity from the terms of service. The developer changelog's latest entry is February 2026."
        ],
        "score": 90
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/exotel-voice.json",
      "live": {
        "slug": "exotel-voice",
        "probe": {
          "target": "https://api.exotel.com/v1",
          "method": "get",
          "lastAt": "2026-10-04T23:48:08.064417887Z",
          "lastOk": true,
          "lastStatus": 400,
          "lastMs": 736,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 725,
          "p95ms24h": 781,
          "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.exotel.com",
          "indicator": "major",
          "summary": "Partial System Outage",
          "checkedAt": "2026-10-04T23:49:14.241553195Z"
        },
        "githubStars": 5,
        "securityTxt": {
          "url": "https://exotel.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-04T15:15:38.635394589Z"
        },
        "llmsTxt": {
          "url": "https://developer.exotel.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-01T13:02:56.207120986Z"
        },
        "domain": {
          "domain": "exotel.com",
          "registered": "2004-01-04",
          "source": "https://rdap.verisign.com/com/v1/domain/exotel.com",
          "checkedAt": "2026-10-04T13:08:47.298921523Z"
        },
        "pages": [
          {
            "url": "https://developer.exotel.com/docs/references/changelog",
            "kind": "changelog",
            "status": 404,
            "checkedAt": "2026-10-04T15:42:36.379688862Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "c48075a649c5"
          },
          {
            "url": "https://exotel.com/pricing/",
            "kind": "pricing",
            "status": 304,
            "checkedAt": "2026-10-04T15:44:34.929433729Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "c189da9b16a1"
          },
          {
            "url": "https://exotel.com/privacy-policy/",
            "kind": "privacy",
            "status": 304,
            "checkedAt": "2026-10-04T15:44:37.13126856Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "3fa8ae110c4a"
          },
          {
            "url": "https://exotel.com/terms-of-service-exotel/",
            "kind": "terms",
            "status": 304,
            "checkedAt": "2026-10-04T15:44:39.317095047Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "1ee897578d5d"
          }
        ],
        "updatedAt": "2026-10-04T23:49:14.241553195Z"
      }
    },
    "summary": "Bandwidth Voice API + MCP has a score of 63.7 (B) against Exotel Voice API + MCP's 39.8 (E). Both do voice calls. The largest gap is maintenance \u0026 community, 73 points."
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/bandwidth-voice-vs-exotel-voice",
    "json": "https://www.anchorterminal.com/compare/bandwidth-voice-vs-exotel-voice.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/bandwidth-voice-vs-exotel-voice.md",
    "slim": "https://www.anchorterminal.com/compare/bandwidth-voice-vs-exotel-voice.min.md"
  },
  "markdown": "Bandwidth Voice API + MCP has a score of 63.7 (B) against Exotel Voice API + MCP's 39.8 (E). Both do voice calls. The largest gap is maintenance \u0026 community, 73 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- Exotel Voice API + MCP: grade E, 39.8/100, rank #424 of 452. Markdown https://www.anchorterminal.com/tools/exotel-voice.md · JSON https://www.anchorterminal.com/api/v1/tools/exotel-voice.json\n\n## Which one, for what\n\nPick Bandwidth Voice API + MCP for reliability (+8), schema \u0026 documentation (+40), agent ergonomics (+25), security \u0026 auth (+20), payments \u0026 pricing (+15), maintenance \u0026 community (+73).\n\nPick Exotel 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 | Exotel Voice API + MCP | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 58 | 50 | Bandwidth Voice API + MCP +8 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 88 | 48 | Bandwidth Voice API + MCP +40 |\n| Agent ergonomics | 13% (16.2 this run) | 65 | 40 | Bandwidth Voice API + MCP +25 |\n| Security \u0026 auth | 14% (17.5 this run) | 60 | 40 | Bandwidth Voice API + MCP +20 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 35 | 20 | Bandwidth Voice API + MCP +15 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 78 | 5 | Bandwidth Voice API + MCP +73 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 63 | 63 | even |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **63.7 · B** | **39.8 · E** | |\n\n## Facts side by side\n\n| Fact | Bandwidth Voice API + MCP | Exotel Voice API + MCP |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Bandwidth | Exotel |\n| Hosted endpoint | `https://voice.bandwidth.com/api/v2` | `https://api.exotel.com/v1` |\n| Transports | HTTP, stdio, Streamable HTTP | HTTP, Streamable HTTP |\n| Auth | OAuth | API key |\n| Pricing | Pay per use | Pay per use |\n| x402 | no | no |\n| Licence | none | MIT |\n| Tools exposed | none | 62 |\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 | no |\n| MCP registry | not listed | not listed |\n| Last release | 2026-09-22 | none |\n| Popularity | 2 stars, 13k npm/wk, 39k PyPI/wk | 5 stars |\n| Agent reviews | 3/5 (2) | 2/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**Exotel Voice API + MCP.** Local Indian numbers and DLT and TRAI handling. Per-minute rates and plan prices not published.\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### Exotel Voice API + MCP\n\n1. Use api.in.exotel.com for India-hosted accounts and api.exotel.com for Singapore-hosted ones\n2. Pass StreamUrl on Calls/connect for a quick outbound voice-agent call\n3. Whitelist test numbers before calling on a trial account\n4. Pass confirm=true only after a person approves a destructive MCP tool call\n\n## Other comparisons with Bandwidth Voice API + MCP or Exotel Voice API + MCP\n\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 Vonage Voice API + MCP](https://www.anchorterminal.com/compare/bandwidth-voice-vs-vonage-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 Infobip Calls API + MCP](https://www.anchorterminal.com/compare/exotel-voice-vs-infobip-calls.md)\n- [Exotel Voice API + MCP vs Plivo Voice API](https://www.anchorterminal.com/compare/exotel-voice-vs-plivo-voice.md)\n- [Exotel Voice API + MCP vs SignalWire Voice API](https://www.anchorterminal.com/compare/exotel-voice-vs-signalwire-voice.md)\n- [Exotel Voice API + MCP vs Sinch Voice API + MCP](https://www.anchorterminal.com/compare/exotel-voice-vs-sinch-voice.md)\n- [Exotel Voice API + MCP vs Telnyx Voice API + MCP](https://www.anchorterminal.com/compare/exotel-voice-vs-telnyx-voice.md)\n- [Exotel Voice API + MCP vs Twilio Programmable Voice API + MCP](https://www.anchorterminal.com/compare/exotel-voice-vs-twilio-voice.md)\n- [Exotel Voice API + MCP vs Vonage Voice API + MCP](https://www.anchorterminal.com/compare/exotel-voice-vs-vonage-voice.md)\n- [Exotel Voice API + MCP vs Voximplant](https://www.anchorterminal.com/compare/exotel-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 Exotel Voice API + MCP",
        "url": ""
      }
    ],
    "description": "Bandwidth Voice API + MCP has a score of 63.7 (B) against Exotel Voice API + MCP's 39.8 (E). Both do voice calls. The largest gap is maintenance \u0026 community, 73 points. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "Bandwidth Voice API + MCP B 63.7",
      "Exotel Voice API + MCP E 39.8",
      "scores"
    ],
    "h1": "Bandwidth Voice API + MCP vs Exotel Voice API + MCP",
    "image": "https://www.anchorterminal.com/assets/og/compare-bandwidth-voice-vs-exotel-voice.png",
    "path": "/compare/bandwidth-voice-vs-exotel-voice",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Bandwidth Voice API + MCP vs Exotel Voice API + MCP for AI agents",
    "toc": null,
    "updated": "2026-10-04",
    "url": "https://www.anchorterminal.com/compare/bandwidth-voice-vs-exotel-voice"
  },
  "tokens": {
    "markdown": 1650,
    "slim": 380
  },
  "version": 1
}
