{
  "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": "twilio-voice",
      "name": "Twilio Programmable Voice API + MCP",
      "vendor": "Twilio",
      "vendorUrl": "https://www.twilio.com",
      "kind": "http-api",
      "category": "voice-calling",
      "summary": "Programmable Voice for placing and answering calls on Twilio numbers in 100+ countries, controlled with TwiML or REST.",
      "url": "https://www.anchorterminal.com/tools/twilio-voice",
      "markdownUrl": "https://www.anchorterminal.com/tools/twilio-voice.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/twilio-voice.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/twilio-voice.json",
      "repo": "https://github.com/twilio-labs/mcp",
      "license": "MIT",
      "transports": [
        "http",
        "streamable-http",
        "stdio"
      ],
      "remoteUrl": "https://api.twilio.com/2010-04-01",
      "packages": [
        {
          "registry": "npm",
          "name": "twilio"
        },
        {
          "registry": "pypi",
          "name": "twilio"
        },
        {
          "registry": "npm",
          "name": "@twilio-alpha/mcp"
        }
      ],
      "auth": "mixed",
      "authNotes": "HTTP Basic auth with the Account SID and Auth Token, or an API key SID and secret (recommended). Webhooks and Media Streams or ConversationRelay websocket connections carry an `X-Twilio-Signature` to validate. The hosted docs MCP needs no credentials. The local alpha MCP takes `ACCOUNT_SID/API_KEY:API_SECRET` as a command-line argument.",
      "pricing": "usage",
      "pricingNotes": "Pay as you go, per minute. US outbound $0.014 a minute, inbound $0.0085 on local numbers and $0.022 on toll-free. Local numbers $1.15 a month, toll-free $2.15. Media Streams $0.0044 a minute, ConversationRelay $0.07 a minute, SIP interface and browser or app calls $0.004 a minute, recording $0.0025 a minute plus $0.0005 a minute a month storage, transcription $0.05 a minute, answering machine detection $0.0075 a call. The trial needs no card and gives free units, including 75 voice minutes, for 30 days (https://www.twilio.com/en-us/voice/pricing/us, https://www.twilio.com/docs/usage/tutorials/how-to-use-your-free-trial-account).",
      "priceSummary": "$1.15 / mo",
      "where": "both",
      "x402": {
        "level": "no",
        "evidence": "No x402 support in docs, pricing or MCP README (checked 2026-09-30).",
        "endpoints": []
      },
      "toolCount": 2,
      "popularity": {
        "githubStars": 111,
        "npmWeekly": 7213599,
        "pypiWeekly": 4834611,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://www.twilio.com/docs/voice",
      "llmsTxt": "https://www.twilio.com/docs/llms.txt",
      "openapi": "https://raw.githubusercontent.com/twilio/twilio-oai/main/spec/json/twilio_api_v2010.json",
      "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-28",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 80.4,
        "grade": "A",
        "agentReady": true,
        "rank": 6,
        "ranked": true,
        "rankOf": 452,
        "categoryRank": 1,
        "methodology": "0.3",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 80,
          "maintenance": 85,
          "payments": 40,
          "reliability": 90,
          "schema": 92,
          "security": 85,
          "transparency": 81
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": 0,
        "verdict": "Twilio APIs SLA at 99.95 per cent for every paying customer, with 10 per cent credits. US outbound at $0.014 a minute, plus $0.0044 for Media Streams or $0.07 for ConversationRelay.",
        "strengths": [
          "Twilio APIs SLA at 99.95 per cent for every paying customer, with 10 per cent credits",
          "Restricted API keys with up to 100 endpoint permissions each",
          "Public OpenAPI specs, llms.txt with Markdown twins, and a numbered error dictionary",
          "No-card trial with 75 free voice minutes for 30 days",
          "twilio-node released three times in the last 90 days, most recently 6.1.2 on 2026-09-28"
        ],
        "weaknesses": [
          "US outbound at $0.014 a minute, plus $0.0044 for Media Streams or $0.07 for ConversationRelay",
          "1 outbound call a second per account by default",
          "No idempotency key on call creation",
          "The MCP that can place calls is an alpha last published in July 2025, and the hosted one only searches docs",
          "No security.txt on twilio.com"
        ],
        "agentNotes": [
          "Use `\u003cConnect\u003e\u003cStream\u003e` for two-way audio. It blocks further TwiML until the websocket closes",
          "Use `\u003cConnect\u003e\u003cConversationRelay\u003e` when you only want to handle text, and set `interruptible` for barge-in",
          "Trial calls reach only verified numbers in your sign-up country",
          "Retry a 429 with backoff, but check the Calls list before retrying a create that timed out, since there's no idempotency key",
          "Validate `X-Twilio-Signature` on every webhook and websocket upgrade"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 8,
        "avgRating": 3.1,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "A",
            "methodology": "0.3",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 80.4
          }
        ],
        "editorialScores": {
          "ergonomics": 80,
          "maintenance": 85,
          "payments": 40,
          "reliability": 90,
          "schema": 92,
          "security": 85,
          "transparency": 72
        },
        "provenanceScore": 90
      },
      "connect": {
        "http": "curl -X POST \"https://api.twilio.com/2010-04-01/Accounts/$TWILIO_ACCOUNT_SID/Calls.json\" \\\n  -u \"$TWILIO_API_KEY:$TWILIO_API_SECRET\" \\\n  --data-urlencode \"To=+15558675310\" --data-urlencode \"From=+15017122661\" \\\n  --data-urlencode \"Twiml=\u003cResponse\u003e\u003cSay\u003eHello from Twilio\u003c/Say\u003e\u003c/Response\u003e\"",
        "claudeCode": "claude mcp add --transport http twilio-docs https://mcp.twilio.com/docs",
        "config": {
          "mcpServers": {
            "twilio": {
              "args": [
                "-y",
                "@twilio-alpha/mcp",
                "${TWILIO_ACCOUNT_SID}/${TWILIO_API_KEY}:${TWILIO_API_SECRET}",
                "--services",
                "twilio_api_v2010"
              ],
              "command": "npx"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/voice.calls",
        "tool": "https://letme.dev/twilio-voice"
      },
      "sameCompany": [
        "stytch-connected-apps",
        "sendgrid",
        "twilio"
      ],
      "area": "voice",
      "unitPrices": [
        {
          "item": "Outbound call, US",
          "unit": "call-minute",
          "usd": 0.014,
          "note": "local or toll-free destinations"
        },
        {
          "item": "Inbound call, US local number",
          "unit": "call-minute",
          "usd": 0.0085
        },
        {
          "item": "Inbound call, US toll-free number",
          "unit": "call-minute",
          "usd": 0.022
        },
        {
          "item": "US local number",
          "unit": "month",
          "usd": 1.15
        },
        {
          "item": "US toll-free number",
          "unit": "month",
          "usd": 2.15
        },
        {
          "item": "Media Streams",
          "unit": "call-minute",
          "usd": 0.0044,
          "note": "on top of call minutes"
        },
        {
          "item": "ConversationRelay",
          "unit": "call-minute",
          "usd": 0.07,
          "note": "on top of call minutes"
        },
        {
          "item": "Call recording",
          "unit": "call-minute",
          "usd": 0.0025
        }
      ],
      "provenance": {
        "legalEntity": "Twilio Inc.",
        "domain": "twilio.com",
        "domainRegistered": "2007-10-26",
        "endpointOnVendorDomain": true,
        "terms": "https://www.twilio.com/en-us/legal/tos",
        "privacy": "https://www.twilio.com/en-us/legal/privacy",
        "statusPage": "https://status.twilio.com",
        "changelog": "https://www.twilio.com/en-us/changelog",
        "securityTxt": "none",
        "checked": "2026-09-30",
        "notes": [
          "The terms also name Twilio Ireland Limited for customers outside the US."
        ],
        "score": 90
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/twilio-voice.json",
      "live": {
        "slug": "twilio-voice",
        "probe": {
          "target": "https://api.twilio.com/2010-04-01",
          "method": "get",
          "lastAt": "2026-10-04T23:48:17.369535415Z",
          "lastOk": true,
          "lastStatus": 200,
          "lastMs": 28,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 27,
          "p95ms24h": 66,
          "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.twilio.com",
          "indicator": "minor",
          "summary": "Partially Degraded Service",
          "checkedAt": "2026-10-04T23:49:30.414129457Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "twilio-labs/mcp",
            "version": "0.0.3",
            "released": "2025-03-25",
            "seenAt": "2026-10-04T16:42:28.341727729Z"
          },
          {
            "registry": "npm",
            "name": "@twilio-alpha/mcp",
            "version": "0.7.0",
            "seenAt": "2026-10-04T16:42:26.54293887Z"
          },
          {
            "registry": "npm",
            "name": "twilio",
            "version": "6.1.2",
            "seenAt": "2026-10-04T16:42:26.104679108Z"
          },
          {
            "registry": "pypi",
            "name": "twilio",
            "version": "9.11.2",
            "released": "2026-09-28",
            "seenAt": "2026-10-04T16:42:26.381954279Z"
          }
        ],
        "githubStars": 112,
        "npmWeekly": 7817134,
        "pypiWeekly": 5153208,
        "securityTxt": {
          "url": "https://twilio.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-04T15:15:43.282608786Z"
        },
        "llmsTxt": {
          "url": "https://www.twilio.com/docs/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-04T15:18:18.461750128Z"
        },
        "domain": {
          "domain": "twilio.com",
          "registered": "2007-10-26",
          "source": "https://rdap.verisign.com/com/v1/domain/twilio.com",
          "checkedAt": "2026-10-04T13:05:12.523190086Z"
        },
        "pages": [
          {
            "url": "https://www.twilio.com/en-us/voice/pricing/us",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-04T15:52:42.057003458Z",
            "changedAt": "2026-10-03T15:40:33.277161645Z",
            "fingerprint": "870f6e38fa5f"
          }
        ],
        "updatedAt": "2026-10-04T23:49:30.414129457Z"
      }
    },
    "summary": "Twilio Programmable Voice API + MCP has a score of 80.4 (A) against SignalWire Voice API's 67.3 (B). Both do voice calls. The largest gap is reliability, 37 points."
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/signalwire-voice-vs-twilio-voice",
    "json": "https://www.anchorterminal.com/compare/signalwire-voice-vs-twilio-voice.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/signalwire-voice-vs-twilio-voice.md",
    "slim": "https://www.anchorterminal.com/compare/signalwire-voice-vs-twilio-voice.min.md"
  },
  "markdown": "Twilio Programmable Voice API + MCP has a score of 80.4 (A) against SignalWire Voice API's 67.3 (B). Both do voice calls. The largest gap is reliability, 37 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- Twilio Programmable Voice API + MCP: grade A, 80.4/100, rank #6 of 452. Markdown https://www.anchorterminal.com/tools/twilio-voice.md · JSON https://www.anchorterminal.com/api/v1/tools/twilio-voice.json\n\n## Which one, for what\n\nPick SignalWire Voice API for nothing in particular (no category where it leads by five points or more).\n\nPick Twilio Programmable Voice API + MCP for reliability (+37), schema \u0026 documentation (+5), agent ergonomics (+12), security \u0026 auth (+13).\n\n## Score by category\n\n| Category | Weight | SignalWire Voice API | Twilio Programmable Voice API + MCP | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 53 | 90 | Twilio Programmable Voice API + MCP +37 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 87 | 92 | Twilio Programmable Voice API + MCP +5 |\n| Agent ergonomics | 13% (16.2 this run) | 68 | 80 | Twilio Programmable Voice API + MCP +12 |\n| Security \u0026 auth | 14% (17.5 this run) | 72 | 85 | Twilio Programmable Voice API + MCP +13 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 40 | 40 | even |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 81 | 85 | Twilio Programmable Voice API + MCP +4 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 78 | 81 | Twilio Programmable Voice API + MCP +3 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **67.3 · B** | **80.4 · A** | |\n\n## Facts side by side\n\n| Fact | SignalWire Voice API | Twilio Programmable Voice API + MCP |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | SignalWire | Twilio |\n| Hosted endpoint | no (local only) | `https://api.twilio.com/2010-04-01` |\n| Transports | HTTP | HTTP, Streamable HTTP, stdio |\n| Auth | API key | OAuth or key |\n| Pricing | Pay per use | Pay per use |\n| x402 | no | no |\n| Licence | MIT | MIT |\n| Tools exposed | none | 2 |\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-30 | 2026-09-28 |\n| Popularity | 8 stars, 1.5k npm/wk, 1.3k PyPI/wk | 111 stars, 7.2M npm/wk, 4.8M PyPI/wk |\n| Agent reviews | 3.5/5 (2) | 3.1/5 (8) |\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**Twilio Programmable Voice API + MCP.** Twilio APIs SLA at 99.95 per cent for every paying customer, with 10 per cent credits. US outbound at $0.014 a minute, plus $0.0044 for Media Streams or $0.07 for ConversationRelay.\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### Twilio Programmable Voice API + MCP\n\n1. Use `\u003cConnect\u003e\u003cStream\u003e` for two-way audio. It blocks further TwiML until the websocket closes\n2. Use `\u003cConnect\u003e\u003cConversationRelay\u003e` when you only want to handle text, and set `interruptible` for barge-in\n3. Trial calls reach only verified numbers in your sign-up country\n4. Retry a 429 with backoff, but check the Calls list before retrying a create that timed out, since there's no idempotency key\n5. Validate `X-Twilio-Signature` on every webhook and websocket upgrade\n\n## Other comparisons with SignalWire Voice API or Twilio Programmable 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 Twilio Programmable Voice API + MCP](https://www.anchorterminal.com/compare/bandwidth-voice-vs-twilio-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 Twilio Programmable Voice API + MCP](https://www.anchorterminal.com/compare/exotel-voice-vs-twilio-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 Twilio Programmable Voice API + MCP](https://www.anchorterminal.com/compare/infobip-calls-vs-twilio-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 Twilio Programmable Voice API + MCP](https://www.anchorterminal.com/compare/plivo-voice-vs-twilio-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 Vonage Voice API + MCP](https://www.anchorterminal.com/compare/signalwire-voice-vs-vonage-voice.md)\n- [SignalWire Voice API vs Voximplant](https://www.anchorterminal.com/compare/signalwire-voice-vs-voximplant.md)\n- [Sinch Voice API + MCP vs Twilio Programmable Voice API + MCP](https://www.anchorterminal.com/compare/sinch-voice-vs-twilio-voice.md)\n- [Telnyx Voice API + MCP vs Twilio Programmable Voice API + MCP](https://www.anchorterminal.com/compare/telnyx-voice-vs-twilio-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- [Twilio Programmable Voice API + MCP vs Voximplant](https://www.anchorterminal.com/compare/twilio-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 Twilio Programmable Voice API + MCP",
        "url": ""
      }
    ],
    "description": "Twilio Programmable Voice API + MCP has a score of 80.4 (A) against SignalWire Voice API's 67.3 (B). Both do voice calls. The largest gap is reliability, 37 points. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "SignalWire Voice API B 67.3",
      "Twilio Programmable Voice API + MCP A 80.4",
      "scores"
    ],
    "h1": "SignalWire Voice API vs Twilio Programmable Voice API + MCP",
    "image": "https://www.anchorterminal.com/assets/og/compare-signalwire-voice-vs-twilio-voice.png",
    "path": "/compare/signalwire-voice-vs-twilio-voice",
    "published": "2026-10-01",
    "section": "tools",
    "title": "SignalWire Voice API vs Twilio Programmable Voice API + MCP",
    "toc": null,
    "updated": "2026-10-04",
    "url": "https://www.anchorterminal.com/compare/signalwire-voice-vs-twilio-voice"
  },
  "tokens": {
    "markdown": 1750,
    "slim": 380
  },
  "version": 1
}
