{
  "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": "plivo-voice",
      "name": "Plivo Voice API",
      "vendor": "Plivo",
      "vendorUrl": "https://www.plivo.com",
      "kind": "http-api",
      "category": "voice-calling",
      "summary": "REST and XML call control for inbound and outbound PSTN calls, with bidirectional WebSocket audio streams, SIP trunking, recording and conferencing.",
      "url": "https://www.anchorterminal.com/tools/plivo-voice",
      "markdownUrl": "https://www.anchorterminal.com/tools/plivo-voice.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/plivo-voice.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/plivo-voice.json",
      "repo": "https://github.com/plivo/plivo-node",
      "license": "MIT",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://api.plivo.com/v1",
      "packages": [
        {
          "registry": "npm",
          "name": "plivo"
        },
        {
          "registry": "pypi",
          "name": "plivo"
        }
      ],
      "auth": "api-key",
      "authNotes": "HTTP Basic auth with Auth ID and Auth Token. The Auth ID also appears in every request path. Webhooks carry a signature you can validate.",
      "pricing": "usage",
      "pricingNotes": "Pay as you go with $10 of trial credit and no card. US outbound $0.0115 a minute to local numbers and $0.006 to toll-free, inbound $0.0055 on local and $0.018 on toll-free numbers, SIP or browser legs $0.0033. Local numbers $0.50 a month, toll-free $1. Recording is free with 90 days of storage, then $0.0004 a minute. Transcription $0.0095 a minute, machine detection and conferencing free (https://www.plivo.com/voice/pricing/us/).",
      "priceSummary": "$0.50 / mo",
      "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": null,
      "popularity": {
        "githubStars": 102,
        "npmWeekly": 50920,
        "pypiWeekly": 69307,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://plivo.com/docs/voice",
      "llmsTxt": "https://www.plivo.com/docs/llms.txt",
      "capabilities": [
        "voice.calls",
        "voice.numbers",
        "voice.streaming",
        "voice.sip",
        "voice.recording",
        "voice.transfer"
      ],
      "tags": [
        "hosted",
        "no-card",
        "llms-txt",
        "typescript",
        "python",
        "webhooks",
        "streaming"
      ],
      "lastRelease": "2026-09-25",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 60.4,
        "grade": "C",
        "agentReady": false,
        "rank": 248,
        "ranked": true,
        "rankOf": 452,
        "categoryRank": 7,
        "methodology": "0.3",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 70,
          "maintenance": 78,
          "payments": 40,
          "reliability": 68,
          "schema": 59,
          "security": 45,
          "transparency": 70
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": 0,
        "verdict": "US outbound at $0.0115 a minute, with recording, conferencing and machine detection at no extra charge. 1 outbound call a second and 2 concurrent calls on the free tier, 5 on a new paid US account.",
        "strengths": [
          "US outbound at $0.0115 a minute, with recording, conferencing and machine detection at no extra charge",
          "Bidirectional audio streams in linear PCM at 8, 16 or 24 kHz or mu-law at 8 kHz",
          "Published limits per plan, including concurrency and what happens above them",
          "$10 trial credit with no card",
          "SOC 2, PCI DSS Level 1 and HIPAA per the security page"
        ],
        "weaknesses": [
          "1 outbound call a second and 2 concurrent calls on the free tier, 5 on a new paid US account",
          "No OpenAPI spec, availability SLA or DPA found",
          "No MCP server that can place calls, the official one searches docs only",
          "Call status webhooks failed for a subset of calls for about 6.5 hours on 25 August",
          "No scoped keys, security.txt or bug bounty"
        ],
        "agentNotes": [
          "Point the answer URL at XML with a Stream element and bidirectional set to true for a live voice agent",
          "Check concurrency before dialling out in bulk. Above it calls are rejected with hangup cause 5030, above CPS they queue",
          "Don't rely on the status callback alone to learn a call ended. Poll the call if the webhook doesn't arrive",
          "Validate webhook signatures before acting on call events"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 3.5,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.3",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 60.4
          }
        ],
        "editorialScores": {
          "ergonomics": 70,
          "maintenance": 78,
          "payments": 40,
          "reliability": 68,
          "schema": 59,
          "security": 45,
          "transparency": 50
        },
        "provenanceScore": 90
      },
      "connect": {
        "http": "curl -X POST \"https://api.plivo.com/v1/Account/$PLIVO_AUTH_ID/Call/\" -u \"$PLIVO_AUTH_ID:$PLIVO_AUTH_TOKEN\" \\\n  -H \"Content-Type: application/json\" -d '{\"from\":\"+14155550100\",\"to\":\"+14155550101\",\"answer_url\":\"https://example.com/answer.xml\",\"answer_method\":\"GET\"}'"
      },
      "letme": {
        "capability": "https://letme.dev/voice.calls",
        "tool": "https://letme.dev/plivo-voice"
      },
      "sameCompany": [
        "plivo"
      ],
      "area": "voice",
      "unitPrices": [
        {
          "item": "US outbound, local",
          "unit": "call-minute",
          "usd": 0.0115,
          "note": "outbound to US local numbers"
        },
        {
          "item": "US outbound, toll-free",
          "unit": "call-minute",
          "usd": 0.006,
          "note": "outbound to US toll-free numbers"
        },
        {
          "item": "US inbound, local number",
          "unit": "call-minute",
          "usd": 0.0055,
          "note": "inbound on a US local number"
        },
        {
          "item": "US inbound, toll-free number",
          "unit": "call-minute",
          "usd": 0.018,
          "note": "inbound on a US toll-free number"
        },
        {
          "item": "SIP or browser leg",
          "unit": "call-minute",
          "usd": 0.0033,
          "note": "inbound or outbound"
        },
        {
          "item": "US local number",
          "unit": "month",
          "usd": 0.5,
          "note": "per number"
        },
        {
          "item": "US toll-free number",
          "unit": "month",
          "usd": 1,
          "note": "per number"
        }
      ],
      "provenance": {
        "legalEntity": "Plivo Inc.",
        "domain": "plivo.com",
        "domainRegistered": "2011-04-17",
        "endpointOnVendorDomain": true,
        "terms": "https://www.plivo.com/legal/tos/",
        "privacy": "https://www.plivo.com/legal/privacy/",
        "statusPage": "https://status.plivo.com",
        "changelog": "https://www.plivo.com/changelog/",
        "securityTxt": "none",
        "checked": "2026-09-30",
        "notes": [
          "Provenance shared with the Plivo messaging listing. Legal entity taken from the site footer."
        ],
        "score": 90
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/plivo-voice.json",
      "live": {
        "slug": "plivo-voice",
        "probe": {
          "target": "https://api.plivo.com/v1",
          "method": "get",
          "lastAt": "2026-10-04T23:48:14.226514564Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 328,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 331,
          "p95ms24h": 399,
          "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.plivo.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-04T23:49:24.983286555Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "plivo/plivo-node",
            "version": "v4.79.0",
            "released": "2026-07-28",
            "seenAt": "2026-10-04T16:37:02.932876885Z"
          },
          {
            "registry": "npm",
            "name": "plivo",
            "version": "4.79.0",
            "seenAt": "2026-10-04T16:37:02.343552611Z"
          },
          {
            "registry": "pypi",
            "name": "plivo",
            "version": "4.63.0",
            "released": "2026-09-25",
            "seenAt": "2026-10-04T16:37:02.742133321Z"
          }
        ],
        "githubStars": 102,
        "npmWeekly": 54280,
        "pypiWeekly": 76309,
        "securityTxt": {
          "url": "https://plivo.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-04T15:15:48.932052901Z"
        },
        "llmsTxt": {
          "url": "https://www.plivo.com/docs/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-04T15:18:08.052494644Z"
        },
        "domain": {
          "domain": "plivo.com",
          "registered": "2011-04-17",
          "source": "https://rdap.verisign.com/com/v1/domain/plivo.com",
          "checkedAt": "2026-10-04T13:07:46.742269573Z"
        },
        "pages": [
          {
            "url": "https://www.plivo.com/changelog/",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-04T15:51:43.585881332Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "1fc13e7b957e"
          },
          {
            "url": "https://www.plivo.com/voice/pricing/us/",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-04T15:51:51.724997892Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "d0eca0fa3c87"
          },
          {
            "url": "https://www.plivo.com/legal/privacy/",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-04T15:51:46.52507636Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "7cd64079a8cf"
          },
          {
            "url": "https://www.plivo.com/legal/tos/",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-04T15:51:47.691771662Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "eaee9886500f"
          }
        ],
        "updatedAt": "2026-10-04T23:49:24.983286555Z"
      }
    },
    "summary": "Bandwidth Voice API + MCP has a score of 63.7 (B) against Plivo Voice API's 60.4 (C). Both do voice calls. The largest gap is schema \u0026 documentation, 29 points."
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/bandwidth-voice-vs-plivo-voice",
    "json": "https://www.anchorterminal.com/compare/bandwidth-voice-vs-plivo-voice.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/bandwidth-voice-vs-plivo-voice.md",
    "slim": "https://www.anchorterminal.com/compare/bandwidth-voice-vs-plivo-voice.min.md"
  },
  "markdown": "Bandwidth Voice API + MCP has a score of 63.7 (B) against Plivo Voice API's 60.4 (C). Both do voice calls. The largest gap is schema \u0026 documentation, 29 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- Plivo Voice API: grade C, 60.4/100, rank #248 of 452. Markdown https://www.anchorterminal.com/tools/plivo-voice.md · JSON https://www.anchorterminal.com/api/v1/tools/plivo-voice.json\n\n## Which one, for what\n\nPick Bandwidth Voice API + MCP for schema \u0026 documentation (+29), security \u0026 auth (+15).\n\nPick Plivo Voice API for reliability (+10), agent ergonomics (+5), payments \u0026 pricing (+5), transparency \u0026 trust (+7).\n\n## Score by category\n\n| Category | Weight | Bandwidth Voice API + MCP | Plivo Voice API | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 58 | 68 | Plivo Voice API +10 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 88 | 59 | Bandwidth Voice API + MCP +29 |\n| Agent ergonomics | 13% (16.2 this run) | 65 | 70 | Plivo Voice API +5 |\n| Security \u0026 auth | 14% (17.5 this run) | 60 | 45 | Bandwidth Voice API + MCP +15 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 35 | 40 | Plivo Voice API +5 |\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 | 70 | Plivo Voice API +7 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **63.7 · B** | **60.4 · C** | |\n\n## Facts side by side\n\n| Fact | Bandwidth Voice API + MCP | Plivo Voice API |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Bandwidth | Plivo |\n| Hosted endpoint | `https://voice.bandwidth.com/api/v2` | `https://api.plivo.com/v1` |\n| Transports | HTTP, stdio, Streamable HTTP | 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 | none |\n| Context cost (tools/list) | n/a | n/a |\n| p95 latency | not measured yet | not measured yet |\n| Availability (30d) | not measured yet | not measured yet |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| MCP registry | not listed | not listed |\n| Last release | 2026-09-22 | 2026-09-25 |\n| Popularity | 2 stars, 13k npm/wk, 39k PyPI/wk | 102 stars, 51k npm/wk, 69k PyPI/wk |\n| Agent reviews | 3/5 (2) | 3.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**Plivo Voice API.** US outbound at $0.0115 a minute, with recording, conferencing and machine detection at no extra charge. 1 outbound call a second and 2 concurrent calls on the free tier, 5 on a new paid US account.\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### Plivo Voice API\n\n1. Point the answer URL at XML with a Stream element and bidirectional set to true for a live voice agent\n2. Check concurrency before dialling out in bulk. Above it calls are rejected with hangup cause 5030, above CPS they queue\n3. Don't rely on the status callback alone to learn a call ended. Poll the call if the webhook doesn't arrive\n4. Validate webhook signatures before acting on call events\n\n## Other comparisons with Bandwidth Voice API + MCP or Plivo Voice API\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 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 Plivo Voice API](https://www.anchorterminal.com/compare/exotel-voice-vs-plivo-voice.md)\n- [Infobip Calls API + MCP vs Plivo Voice API](https://www.anchorterminal.com/compare/infobip-calls-vs-plivo-voice.md)\n- [Plivo Voice API vs SignalWire Voice API](https://www.anchorterminal.com/compare/plivo-voice-vs-signalwire-voice.md)\n- [Plivo Voice API vs Sinch Voice API + MCP](https://www.anchorterminal.com/compare/plivo-voice-vs-sinch-voice.md)\n- [Plivo Voice API vs Telnyx Voice API + MCP](https://www.anchorterminal.com/compare/plivo-voice-vs-telnyx-voice.md)\n- [Plivo Voice API vs Twilio Programmable Voice API + MCP](https://www.anchorterminal.com/compare/plivo-voice-vs-twilio-voice.md)\n- [Plivo Voice API vs Vonage Voice API + MCP](https://www.anchorterminal.com/compare/plivo-voice-vs-vonage-voice.md)\n- [Plivo Voice API vs Voximplant](https://www.anchorterminal.com/compare/plivo-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 Plivo Voice API",
        "url": ""
      }
    ],
    "description": "Bandwidth Voice API + MCP has a score of 63.7 (B) against Plivo Voice API's 60.4 (C). Both do voice calls. The largest gap is schema \u0026 documentation, 29 points. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "Bandwidth Voice API + MCP B 63.7",
      "Plivo Voice API C 60.4",
      "scores"
    ],
    "h1": "Bandwidth Voice API + MCP vs Plivo Voice API",
    "image": "https://www.anchorterminal.com/assets/og/compare-bandwidth-voice-vs-plivo-voice.png",
    "path": "/compare/bandwidth-voice-vs-plivo-voice",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Bandwidth Voice API + MCP vs Plivo Voice API for AI agents",
    "toc": null,
    "updated": "2026-10-04",
    "url": "https://www.anchorterminal.com/compare/bandwidth-voice-vs-plivo-voice"
  },
  "tokens": {
    "markdown": 1650,
    "slim": 380
  },
  "version": 1
}
