{
  "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": "sinch-voice",
      "name": "Sinch Voice API + MCP",
      "vendor": "Sinch",
      "vendorUrl": "https://sinch.com",
      "kind": "http-api",
      "category": "voice-calling",
      "summary": "Programmable voice over PSTN, SIP and WebSocket streams, driven by SVAML call-control JSON.",
      "url": "https://www.anchorterminal.com/tools/sinch-voice",
      "markdownUrl": "https://www.anchorterminal.com/tools/sinch-voice.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/sinch-voice.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/sinch-voice.json",
      "repo": "https://github.com/sinch/sinch-mcp-server",
      "license": "Apache-2.0",
      "transports": [
        "http",
        "stdio",
        "streamable-http"
      ],
      "remoteUrl": "https://voice.api.sinch.com/v2",
      "packages": [
        {
          "registry": "npm",
          "name": "@sinch/sdk-core"
        },
        {
          "registry": "pypi",
          "name": "sinch"
        },
        {
          "registry": "npm",
          "name": "@sinch/mcp"
        }
      ],
      "auth": "mixed",
      "authNotes": "Voice API v2 uses a project access key and secret, over Basic auth or as an OAuth 2.0 token. Voice API v1 at calling.api.sinch.com uses an application key and secret with Basic auth or signed requests, and Sinch recommends signed requests in production. Webhooks can be signed.",
      "pricing": "usage",
      "pricingNotes": "Prepaid pay as you go for self-created accounts, with test credits on signup. The downloadable price list gives US outbound at $0.01 a minute, billed in 60-second increments. The pricing page only shows illustrative inbound, SIP, recording and number prices (for example inbound $0.008 a minute and a number at $0.80 a month plus $0.80 setup), so check your dashboard before relying on them. TTS, conferences and IVR menus carry no extra charge (https://sinch.com/pricing/voice/).",
      "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": 1,
        "npmWeekly": 15648,
        "pypiWeekly": 11166,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://developers.sinch.com/docs/voice-2.0/overview",
      "llmsTxt": "https://developers.sinch.com/llms.txt",
      "openapi": "https://developers.sinch.com/_bundle/docs/voice-2.0/api-reference/voice.yaml",
      "capabilities": [
        "voice.calls",
        "voice.numbers",
        "voice.streaming",
        "voice.sip",
        "voice.recording",
        "voice.transfer"
      ],
      "tags": [
        "hosted",
        "mcp",
        "llms-txt",
        "typescript",
        "python",
        "webhooks",
        "streaming",
        "batch"
      ],
      "lastRelease": "2026-09-23",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 62.8,
        "grade": "B",
        "agentReady": false,
        "rank": 212,
        "ranked": true,
        "rankOf": 452,
        "categoryRank": 5,
        "methodology": "0.3",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 81,
          "maintenance": 79,
          "payments": 35,
          "reliability": 52,
          "schema": 79,
          "security": 50,
          "transparency": 73
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": 0,
        "verdict": "Voice API v2 with bidirectional PCM streams and a text relay that handles barge-in. Two API generations with different hosts, auth and markup, and v1 release notes stop in 2022.",
        "strengths": [
          "Voice API v2 with bidirectional PCM streams and a text relay that handles barge-in",
          "Idempotency-Key on v2 call, batch and service writes, with a 10-minute replay window",
          "OpenAPI file for v2, and official SDKs in four languages, with v2 in Node 1.6.0 and Python 2.2.0 since September",
          "Signed callbacks in v1 and v2, and OAuth 2.0 tokens on v2",
          "Test credits and a test number on signup without a card, and ISO 27001 and SOC 2 Type II"
        ],
        "weaknesses": [
          "Two API generations with different hosts, auth and markup, and v1 release notes stop in 2022",
          "No published voice rate limits or SLA, and 429 handling is described only in SDK changelogs",
          "Public pricing is a spreadsheet download plus illustrative examples",
          "The voice MCP is an alpha (0.0.1-alpha.6) that can't stream audio",
          "No security.txt or bug bounty"
        ],
        "agentNotes": [
          "Start new work on Voice API v2 at voice.api.sinch.com. v1 is the older callout model",
          "Send an Idempotency-Key (a UUID v4) on v2 call, batch and service writes, and reuse it when you retry within 10 minutes",
          "Use the MCP tts-callout tool for one-off spoken notifications, and the REST API for anything that streams audio",
          "Trial accounts dial verified numbers only, one call at a time, so verify the test handset first",
          "Verify the webhook signature and deduplicate on `ce-id` and `ce-source`, since fallback delivery can repeat events"
        ],
        "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": 62.8
          }
        ],
        "editorialScores": {
          "ergonomics": 81,
          "maintenance": 79,
          "payments": 35,
          "reliability": 52,
          "schema": 79,
          "security": 50,
          "transparency": 55
        },
        "provenanceScore": 90
      },
      "connect": {
        "http": "curl -X POST \"https://voice.api.sinch.com/v2/projects/$SINCH_PROJECT_ID/calls\" -u \"$SINCH_KEY_ID:$SINCH_KEY_SECRET\" \\\n  -H \"Content-Type: application/json\" -d '{\"commands\":[{\"command\":\"dial\",\"callName\":\"origin\",\"from\":{\"type\":\"PHONE\",\"phone\":{\"number\":\"+15551234567\"}},\"to\":{\"type\":\"PHONE\",\"phone\":{\"number\":\"+15559876543\"}},\"events\":{\"onAnswer\":[{\"command\":\"messages\",\"messages\":[{\"type\":\"SAY\",\"say\":{\"text\":\"Hello from Sinch\"}}]}]}}]}'",
        "config": {
          "mcpServers": {
            "sinch": {
              "args": [
                "-y",
                "@sinch/mcp"
              ],
              "command": "npx",
              "env": {
                "APPLICATION_KEY": "${SINCH_APP_KEY}",
                "APPLICATION_SECRET": "${SINCH_APP_SECRET}",
                "CALLING_LINE_IDENTIFICATION": "${SINCH_CLI_NUMBER}",
                "KEY_ID": "${SINCH_KEY_ID}",
                "KEY_SECRET": "${SINCH_KEY_SECRET}",
                "PROJECT_ID": "${SINCH_PROJECT_ID}"
              }
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/voice.calls",
        "tool": "https://letme.dev/sinch-voice"
      },
      "sameCompany": [
        "sinch"
      ],
      "area": "voice",
      "unitPrices": [
        {
          "item": "US outbound",
          "unit": "call-minute",
          "usd": 0.01,
          "note": "outbound to US numbers, 60-second increments, from the downloadable price list"
        }
      ],
      "provenance": {
        "legalEntity": "Sinch AB (publ)",
        "domain": "sinch.com",
        "domainRegistered": "1997-12-03",
        "endpointOnVendorDomain": true,
        "terms": "https://sinch.com/legal/terms-and-conditions/other-sinch-terms-conditions/general-terms-and-conditions/",
        "privacy": "https://sinch.com/legal/privacy-notice/",
        "statusPage": "https://status.sinch.com",
        "changelog": "https://developers.sinch.com/docs/voice/release-notes",
        "securityTxt": "none",
        "checked": "2026-09-30",
        "notes": [
          "Provenance shared with the Sinch messaging listing. The general terms name the contracting Sinch entity only in the order form, Sinch AB (publ) is the listed parent.",
          "The v1 voice release notes were last updated on 2022-10-06."
        ],
        "score": 90
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/sinch-voice.json",
      "live": {
        "slug": "sinch-voice",
        "probe": {
          "target": "https://voice.api.sinch.com/v2",
          "method": "get",
          "lastAt": "2026-10-04T23:48:15.890085803Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 63,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 57,
          "p95ms24h": 88,
          "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.sinch.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-04T23:49:28.041504051Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "sinch/sinch-mcp-server",
            "version": "v0.0.1-alpha6",
            "released": "2026-04-14",
            "seenAt": "2026-10-04T16:40:00.043260291Z"
          },
          {
            "registry": "npm",
            "name": "@sinch/mcp",
            "version": "0.0.1-alpha.6",
            "seenAt": "2026-10-04T16:39:58.580612919Z"
          },
          {
            "registry": "npm",
            "name": "@sinch/sdk-core",
            "version": "1.6.0",
            "seenAt": "2026-10-04T16:39:57.580581644Z"
          },
          {
            "registry": "pypi",
            "name": "sinch",
            "version": "2.2.0",
            "released": "2026-09-21",
            "seenAt": "2026-10-04T16:39:58.396958555Z"
          }
        ],
        "githubStars": 1,
        "npmWeekly": 18032,
        "pypiWeekly": 12911,
        "securityTxt": {
          "url": "https://sinch.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-04T15:15:40.047440487Z"
        },
        "llmsTxt": {
          "url": "https://developers.sinch.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-04T15:18:13.942714727Z"
        },
        "domain": {
          "domain": "sinch.com",
          "registered": "1997-12-03",
          "source": "https://rdap.verisign.com/com/v1/domain/sinch.com",
          "checkedAt": "2026-10-04T13:05:54.744606475Z"
        },
        "pages": [
          {
            "url": "https://developers.sinch.com/docs/voice/release-notes",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-04T15:43:05.083802306Z",
            "changedAt": "2026-10-03T15:31:16.213832084Z",
            "fingerprint": "b3eccb32eaa2"
          },
          {
            "url": "https://sinch.com/pricing/voice/",
            "kind": "pricing",
            "status": 304,
            "checkedAt": "2026-10-04T15:47:54.85828499Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "123ffc42bc27"
          },
          {
            "url": "https://sinch.com/legal/privacy-notice/",
            "kind": "privacy",
            "status": 304,
            "checkedAt": "2026-10-04T15:47:48.833166192Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "6c75b4444284"
          },
          {
            "url": "https://sinch.com/legal/terms-and-conditions/other-sinch-terms-conditions/general-terms-and-conditions/",
            "kind": "terms",
            "status": 304,
            "checkedAt": "2026-10-04T15:47:50.854190332Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "743942fac2a1"
          }
        ],
        "updatedAt": "2026-10-04T23:49:28.041504051Z"
      }
    },
    "summary": "SignalWire Voice API has a score of 67.3 (B) against Sinch Voice API + MCP's 62.8 (B). Both do voice calls. The largest gap is security \u0026 auth, 22 points."
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/signalwire-voice-vs-sinch-voice",
    "json": "https://www.anchorterminal.com/compare/signalwire-voice-vs-sinch-voice.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/signalwire-voice-vs-sinch-voice.md",
    "slim": "https://www.anchorterminal.com/compare/signalwire-voice-vs-sinch-voice.min.md"
  },
  "markdown": "SignalWire Voice API has a score of 67.3 (B) against Sinch Voice API + MCP's 62.8 (B). Both do voice calls. The largest gap is security \u0026 auth, 22 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- Sinch Voice API + MCP: grade B, 62.8/100, rank #212 of 452. Markdown https://www.anchorterminal.com/tools/sinch-voice.md · JSON https://www.anchorterminal.com/api/v1/tools/sinch-voice.json\n\n## Which one, for what\n\nPick SignalWire Voice API for schema \u0026 documentation (+8), security \u0026 auth (+22), payments \u0026 pricing (+5), transparency \u0026 trust (+5).\n\nPick Sinch Voice API + MCP for agent ergonomics (+13).\n\n## Score by category\n\n| Category | Weight | SignalWire Voice API | Sinch Voice API + MCP | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 53 | 52 | SignalWire Voice API +1 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 87 | 79 | SignalWire Voice API +8 |\n| Agent ergonomics | 13% (16.2 this run) | 68 | 81 | Sinch Voice API + MCP +13 |\n| Security \u0026 auth | 14% (17.5 this run) | 72 | 50 | SignalWire Voice API +22 |\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 | 79 | SignalWire Voice API +2 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 78 | 73 | SignalWire Voice API +5 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **67.3 · B** | **62.8 · B** | |\n\n## Facts side by side\n\n| Fact | SignalWire Voice API | Sinch Voice API + MCP |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | SignalWire | Sinch |\n| Hosted endpoint | no (local only) | `https://voice.api.sinch.com/v2` |\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 | Apache-2.0 |\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-30 | 2026-09-23 |\n| Popularity | 8 stars, 1.5k npm/wk, 1.3k PyPI/wk | 1 stars, 16k npm/wk, 11k PyPI/wk |\n| Agent reviews | 3.5/5 (2) | 3/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**Sinch Voice API + MCP.** Voice API v2 with bidirectional PCM streams and a text relay that handles barge-in. Two API generations with different hosts, auth and markup, and v1 release notes stop in 2022.\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### Sinch Voice API + MCP\n\n1. Start new work on Voice API v2 at voice.api.sinch.com. v1 is the older callout model\n2. Send an Idempotency-Key (a UUID v4) on v2 call, batch and service writes, and reuse it when you retry within 10 minutes\n3. Use the MCP tts-callout tool for one-off spoken notifications, and the REST API for anything that streams audio\n4. Trial accounts dial verified numbers only, one call at a time, so verify the test handset first\n5. Verify the webhook signature and deduplicate on `ce-id` and `ce-source`, since fallback delivery can repeat events\n\n## Other comparisons with SignalWire Voice API or Sinch 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 Sinch Voice API + MCP](https://www.anchorterminal.com/compare/bandwidth-voice-vs-sinch-voice.md)\n- [Exotel Voice API + MCP vs SignalWire Voice API](https://www.anchorterminal.com/compare/exotel-voice-vs-signalwire-voice.md)\n- [Exotel Voice API + MCP vs Sinch Voice API + MCP](https://www.anchorterminal.com/compare/exotel-voice-vs-sinch-voice.md)\n- [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 Sinch Voice API + MCP](https://www.anchorterminal.com/compare/infobip-calls-vs-sinch-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- [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 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 Telnyx Voice API + MCP](https://www.anchorterminal.com/compare/sinch-voice-vs-telnyx-voice.md)\n- [Sinch Voice API + MCP vs Twilio Programmable Voice API + MCP](https://www.anchorterminal.com/compare/sinch-voice-vs-twilio-voice.md)\n- [Sinch Voice API + MCP vs Vonage Voice API + MCP](https://www.anchorterminal.com/compare/sinch-voice-vs-vonage-voice.md)\n- [Sinch Voice API + MCP vs Voximplant](https://www.anchorterminal.com/compare/sinch-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 Sinch Voice API + MCP",
        "url": ""
      }
    ],
    "description": "SignalWire Voice API has a score of 67.3 (B) against Sinch Voice API + MCP's 62.8 (B). Both do voice calls. The largest gap is security \u0026 auth, 22 points. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "SignalWire Voice API B 67.3",
      "Sinch Voice API + MCP B 62.8",
      "scores"
    ],
    "h1": "SignalWire Voice API vs Sinch Voice API + MCP",
    "image": "https://www.anchorterminal.com/assets/og/compare-signalwire-voice-vs-sinch-voice.png",
    "path": "/compare/signalwire-voice-vs-sinch-voice",
    "published": "2026-10-01",
    "section": "tools",
    "title": "SignalWire Voice API vs Sinch Voice API + MCP for AI agents",
    "toc": null,
    "updated": "2026-10-04",
    "url": "https://www.anchorterminal.com/compare/signalwire-voice-vs-sinch-voice"
  },
  "tokens": {
    "markdown": 1700,
    "slim": 380
  },
  "version": 1
}
