{
  "data": {
    "a": {
      "slug": "signalwire-voice",
      "name": "SignalWire Voice API",
      "vendor": "SignalWire",
      "vendorUrl": "https://signalwire.com",
      "kind": "http-api",
      "category": "voice-calling",
      "summary": "Programmable calling API from the team behind FreeSWITCH.",
      "url": "https://www.anchorterminal.com/tools/signalwire-voice",
      "markdownUrl": "https://www.anchorterminal.com/tools/signalwire-voice.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/signalwire-voice.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/signalwire-voice.json",
      "repo": "https://github.com/signalwire/signalwire-python",
      "license": "MIT",
      "transports": [
        "http"
      ],
      "packages": [
        {
          "registry": "pypi",
          "name": "signalwire-sdk"
        },
        {
          "registry": "npm",
          "name": "@signalwire/sdk"
        },
        {
          "registry": "pypi",
          "name": "signalwire"
        }
      ],
      "auth": "api-key",
      "authNotes": "HTTP Basic auth with the Project ID and an API token, scoped per product (the Voice scope for calls). Each account has its own Space subdomain, so the host differs per customer. New tokens start with swapi_ since September 2026.",
      "pricing": "usage",
      "pricingNotes": "Pay as you go. New accounts start in trial mode without a card, and adding a card with at least $5 of credit lifts the restrictions. US local inbound $0.0066 and outbound $0.008 a minute, toll-free inbound $0.0147 and outbound $0.0069, SIP or WebRTC legs $0.003. Local numbers $0.50 a month, toll-free $0.80. Recording $0.002 a minute, live transcription $0.065 a minute per direction, and the AI agent runtime $0.16 a minute including STT, LLM and standard TTS (https://www.signalwire.com/pricing/voice).",
      "priceSummary": "$0.50 / mo",
      "where": "local",
      "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": 8,
        "npmWeekly": 1531,
        "pypiWeekly": 1349,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://signalwire.com/docs/platform/voice",
      "llmsTxt": "https://signalwire.com/docs/llms.txt",
      "openapi": "https://signalwire.com/docs/openapi.json",
      "capabilities": [
        "voice.calls",
        "voice.numbers",
        "voice.streaming",
        "voice.sip",
        "voice.recording",
        "voice.transfer"
      ],
      "tags": [
        "hosted",
        "llms-txt",
        "openapi",
        "typescript",
        "python",
        "webhooks",
        "streaming"
      ],
      "lastRelease": "2026-09-30",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 67.3,
        "grade": "B",
        "agentReady": false,
        "rank": 144,
        "ranked": true,
        "rankOf": 452,
        "categoryRank": 3,
        "methodology": "0.3",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 68,
          "maintenance": 81,
          "payments": 40,
          "reliability": 53,
          "schema": 87,
          "security": 72,
          "transparency": 78
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": 0,
        "verdict": "SWML documents, REST commands and a Relay WebSocket client for call control. Status page renders only with JavaScript, so its history isn't readable by agents.",
        "strengths": [
          "SWML documents, REST commands and a Relay WebSocket client for call control",
          "OpenAPI 3.1 spec and Markdown for every docs page",
          "SLA of 99.95 per cent monthly uptime on every account, plus ISO 27001, SOC 2 Type 2, a DPA and a disclosure policy",
          "Webhooks signed with HMAC in `x-signalwire-signature`, checked by the Python SDK on SWML and tool calls",
          "Six Python SDK releases between 25 August and 29 September 2026"
        ],
        "weaknesses": [
          "Status page renders only with JavaScript, so its history isn't readable by agents",
          "No published rate-limit numbers beyond the trial's 10 queued calls",
          "No idempotency key, and the safe-retry rules live in the Python SDK rather than the API docs",
          "Per-customer Space hostnames, so there is no single public API host",
          "No security.txt or bug bounty"
        ],
        "agentNotes": [
          "Send dial with a url pointing at a SWML document, then use calling.* commands on the returned call ID",
          "Don't retry a dial on a 5xx. Retry only on 429 or 503, after Retry-After, or you may place the call twice",
          "Use your own Space subdomain as the host, there is no shared API host",
          "Create a token with only the Voice scope for a calling agent",
          "Verify `x-signalwire-signature` with the Signing Key before acting on a webhook"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 3.5,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.3",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 67.3
          }
        ],
        "editorialScores": {
          "ergonomics": 68,
          "maintenance": 81,
          "payments": 40,
          "reliability": 53,
          "schema": 87,
          "security": 72,
          "transparency": 65
        },
        "provenanceScore": 90
      },
      "connect": {
        "http": "curl -X POST \"https://$SIGNALWIRE_SPACE.signalwire.com/api/calling/calls\" -u \"$SIGNALWIRE_PROJECT_ID:$SIGNALWIRE_API_TOKEN\" \\\n  -H \"Content-Type: application/json\" -d '{\"command\":\"dial\",\"params\":{\"from\":\"+15551234567\",\"to\":\"+15557654321\",\"url\":\"https://example.com/swml\"}}'"
      },
      "letme": {
        "capability": "https://letme.dev/voice.calls",
        "tool": "https://letme.dev/signalwire-voice"
      },
      "area": "voice",
      "unitPrices": [
        {
          "item": "US outbound, local",
          "unit": "call-minute",
          "usd": 0.008,
          "note": "outbound to US local numbers"
        },
        {
          "item": "US inbound, local number",
          "unit": "call-minute",
          "usd": 0.0066,
          "note": "inbound on a US local number"
        },
        {
          "item": "US outbound, toll-free",
          "unit": "call-minute",
          "usd": 0.0069,
          "note": "outbound to US toll-free numbers"
        },
        {
          "item": "US inbound, toll-free number",
          "unit": "call-minute",
          "usd": 0.0147,
          "note": "inbound on a US toll-free number"
        },
        {
          "item": "SIP or WebRTC leg",
          "unit": "call-minute",
          "usd": 0.003,
          "note": "inbound or outbound"
        },
        {
          "item": "AI agent runtime",
          "unit": "call-minute",
          "usd": 0.16,
          "note": "platform fee on top of call minutes, includes STT, LLM and standard TTS"
        },
        {
          "item": "US local number",
          "unit": "month",
          "usd": 0.5,
          "note": "per number"
        },
        {
          "item": "US toll-free number",
          "unit": "month",
          "usd": 0.8,
          "note": "per number"
        }
      ],
      "provenance": {
        "legalEntity": "SignalWire, Inc.",
        "domain": "signalwire.com",
        "domainRegistered": "2016-01-21",
        "endpointOnVendorDomain": true,
        "terms": "https://info.signalwire.com/hubfs/PDFs/SignalWire-Cloud-Agreement.pdf",
        "privacy": "https://m.signalwire.com/policies?doc=privacy",
        "statusPage": "https://status.signalwire.com",
        "changelog": "https://signalwire.com/docs/platform/changelog",
        "securityTxt": "none",
        "checked": "2026-09-30",
        "notes": [
          "Legal entity from signalwire.com/legal. The status page redirects to a PagerDuty-hosted page.",
          "remoteUrl left empty because each account calls its own Space subdomain (\u003cspace\u003e.signalwire.com/api/calling/calls)."
        ],
        "score": 90
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/signalwire-voice.json",
      "live": {
        "slug": "signalwire-voice",
        "vendorStatus": {
          "page": "https://status.signalwire.com",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-10-04T21:40:28.923320603Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "signalwire/signalwire-python",
            "version": "v3.5.1",
            "released": "2026-09-29",
            "seenAt": "2026-10-04T16:39:55.315839064Z"
          },
          {
            "registry": "npm",
            "name": "@signalwire/sdk",
            "version": "3.5.0",
            "seenAt": "2026-10-04T16:39:53.193390994Z"
          },
          {
            "registry": "pypi",
            "name": "signalwire",
            "version": "2.1.1",
            "released": "2025-02-04",
            "seenAt": "2026-10-04T16:39:55.23247842Z"
          },
          {
            "registry": "pypi",
            "name": "signalwire-sdk",
            "version": "3.5.1",
            "released": "2026-09-29",
            "seenAt": "2026-10-04T16:39:53.002324781Z"
          }
        ],
        "githubStars": 8,
        "npmWeekly": 2180,
        "pypiWeekly": 873,
        "securityTxt": {
          "url": "https://signalwire.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-04T15:15:52.668431076Z"
        },
        "llmsTxt": {
          "url": "https://signalwire.com/docs/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-04T15:18:14.357836072Z"
        },
        "domain": {
          "domain": "signalwire.com",
          "registered": "2016-01-21",
          "source": "https://rdap.verisign.com/com/v1/domain/signalwire.com",
          "checkedAt": "2026-10-04T13:04:21.502174122Z"
        },
        "pages": [
          {
            "url": "https://signalwire.com/docs/platform/changelog",
            "kind": "deprecations",
            "status": 304,
            "checkedAt": "2026-10-04T15:47:48.382944869Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "da8a160eb045"
          },
          {
            "url": "https://www.signalwire.com/pricing/voice",
            "kind": "pricing",
            "status": 304,
            "checkedAt": "2026-10-04T15:52:14.172315609Z",
            "changedAt": "2026-10-03T15:40:04.301482046Z",
            "fingerprint": "40b5008528b4"
          },
          {
            "url": "https://m.signalwire.com/policies?doc=privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-04T15:45:46.511500727Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "e3b0c44298fc"
          }
        ],
        "updatedAt": "2026-10-04T21:40:28.923320603Z"
      }
    },
    "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": "SignalWire Voice API has a score of 67.3 (B) against Vonage Voice API + MCP's 59.1 (C). Both do voice calls. The largest gap is transparency \u0026 trust, 28 points."
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/signalwire-voice-vs-vonage-voice",
    "json": "https://www.anchorterminal.com/compare/signalwire-voice-vs-vonage-voice.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/signalwire-voice-vs-vonage-voice.md",
    "slim": "https://www.anchorterminal.com/compare/signalwire-voice-vs-vonage-voice.min.md"
  },
  "markdown": "SignalWire Voice API has a score of 67.3 (B) against Vonage Voice API + MCP's 59.1 (C). Both do voice calls. The largest gap is transparency \u0026 trust, 28 points.\n\n- SignalWire Voice API: grade B, 67.3/100, rank #144 of 452. Markdown https://www.anchorterminal.com/tools/signalwire-voice.md · JSON https://www.anchorterminal.com/api/v1/tools/signalwire-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 SignalWire Voice API for reliability (+8), agent ergonomics (+8), security \u0026 auth (+12), payments \u0026 pricing (+5), transparency \u0026 trust (+28).\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 | SignalWire Voice API | Vonage Voice API + MCP | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 53 | 45 | SignalWire Voice API +8 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 87 | 88 | Vonage Voice API + MCP +1 |\n| Agent ergonomics | 13% (16.2 this run) | 68 | 60 | SignalWire Voice API +8 |\n| Security \u0026 auth | 14% (17.5 this run) | 72 | 60 | SignalWire Voice API +12 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 40 | 35 | SignalWire Voice API +5 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 81 | 78 | SignalWire Voice API +3 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 78 | 50 | SignalWire Voice API +28 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **67.3 · B** | **59.1 · C** | |\n\n## Facts side by side\n\n| Fact | SignalWire Voice API | Vonage Voice API + MCP |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | SignalWire | Vonage (Ericsson) |\n| Hosted endpoint | no (local only) | `https://api.nexmo.com/v1` |\n| Transports | HTTP | HTTP, stdio, Streamable HTTP |\n| Auth | API key | OAuth or key |\n| Pricing | Pay per use | Pay per use |\n| x402 | no | no |\n| Licence | MIT | 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-30 | 2026-09-16 |\n| Popularity | 8 stars, 1.5k npm/wk, 1.3k PyPI/wk | 154k npm/wk, 67k PyPI/wk |\n| Agent reviews | 3.5/5 (2) | 2.5/5 (2) |\n\n## Verdicts\n\n**SignalWire Voice API.** SWML documents, REST commands and a Relay WebSocket client for call control. Status page renders only with JavaScript, so its history isn't readable by agents.\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### SignalWire Voice API\n\n1. Send dial with a url pointing at a SWML document, then use calling.* commands on the returned call ID\n2. Don't retry a dial on a 5xx. Retry only on 429 or 503, after Retry-After, or you may place the call twice\n3. Use your own Space subdomain as the host, there is no shared API host\n4. Create a token with only the Voice scope for a calling agent\n5. Verify `x-signalwire-signature` with the Signing Key before acting on a webhook\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 SignalWire Voice API or Vonage Voice API + MCP\n\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 Vonage Voice API + MCP](https://www.anchorterminal.com/compare/bandwidth-voice-vs-vonage-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 Vonage Voice API + MCP](https://www.anchorterminal.com/compare/exotel-voice-vs-vonage-voice.md)\n- [Infobip Calls API + MCP vs SignalWire Voice API](https://www.anchorterminal.com/compare/infobip-calls-vs-signalwire-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 SignalWire Voice API](https://www.anchorterminal.com/compare/plivo-voice-vs-signalwire-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 Sinch Voice API + MCP](https://www.anchorterminal.com/compare/signalwire-voice-vs-sinch-voice.md)\n- [SignalWire Voice API vs Telnyx Voice API + MCP](https://www.anchorterminal.com/compare/signalwire-voice-vs-telnyx-voice.md)\n- [SignalWire Voice API vs Twilio Programmable Voice API + MCP](https://www.anchorterminal.com/compare/signalwire-voice-vs-twilio-voice.md)\n- [SignalWire Voice API vs Voximplant](https://www.anchorterminal.com/compare/signalwire-voice-vs-voximplant.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": "SignalWire Voice API vs Vonage Voice API + MCP",
        "url": ""
      }
    ],
    "description": "SignalWire Voice API has a score of 67.3 (B) against Vonage Voice API + MCP's 59.1 (C). Both do voice calls. The largest gap is transparency \u0026 trust, 28 points. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "SignalWire Voice API B 67.3",
      "Vonage Voice API + MCP C 59.1",
      "scores"
    ],
    "h1": "SignalWire Voice API vs Vonage Voice API + MCP",
    "image": "https://www.anchorterminal.com/assets/og/compare-signalwire-voice-vs-vonage-voice.png",
    "path": "/compare/signalwire-voice-vs-vonage-voice",
    "published": "2026-10-01",
    "section": "tools",
    "title": "SignalWire Voice API vs Vonage Voice API + MCP for AI agents",
    "toc": null,
    "updated": "2026-10-04",
    "url": "https://www.anchorterminal.com/compare/signalwire-voice-vs-vonage-voice"
  },
  "tokens": {
    "markdown": 1700,
    "slim": 380
  },
  "version": 1
}
