{
  "data": {
    "a": {
      "slug": "livekit-telephony",
      "name": "LiveKit Telephony",
      "vendor": "LiveKit Incorporated",
      "vendorUrl": "https://livekit.com",
      "kind": "http-api",
      "category": "voice-calling",
      "summary": "LiveKit Telephony connects phone calls to LiveKit rooms as SIP participants. On LiveKit Cloud it covers SIP trunks to outside carriers, US inbound phone numbers, dispatch rules and transfers, managed through a Twirp API, server SDKs and the `lk` CLI.",
      "url": "https://www.anchorterminal.com/tools/livekit-telephony",
      "markdownUrl": "https://www.anchorterminal.com/tools/livekit-telephony.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/livekit-telephony.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/livekit-telephony.json",
      "repo": "https://github.com/livekit/sip",
      "license": "Proprietary cloud service under LiveKit's Terms of Service. The SIP service (livekit/sip), the protocol definitions, the CLI and the server SDKs are Apache 2.0",
      "transports": [
        "http"
      ],
      "packages": [
        {
          "registry": "npm",
          "name": "livekit-server-sdk"
        },
        {
          "registry": "pypi",
          "name": "livekit-api"
        },
        {
          "registry": "go",
          "name": "github.com/livekit/server-sdk-go/v2"
        }
      ],
      "auth": "api-key",
      "authNotes": "A project API key and secret, created in the LiveKit Cloud dashboard, sign a JWT sent as `Authorization: Bearer \u003ctoken\u003e`. The token's `sip` grant carries `admin` (trunks, dispatch rules, phone numbers) or `call` (`CreateSIPParticipant` and `TransferSIPParticipant`), and its lifetime is set by whoever signs it. Keys can be rotated in the dashboard and the secret is shown once. Access is self-serve after a browser sign-up. The CLI links a project with `lk cloud auth`, which opens a browser.",
      "pricing": "freemium",
      "pricingNotes": "Free Build plan with no card. It includes 1 US local number, 50 US local inbound minutes and 1,000 third-party SIP minutes a month as a hard cap. Ship starts at $50 a month and Scale at $500, with third-party SIP minutes at $0.004 and $0.003 past the allowance, US local inbound at $0.01 a minute, toll-free inbound at $0.02, local numbers $1 a month and toll-free $2. A third-party carrier bills its own trunk and number charges. A number released mid-month is billed for the full month. Enterprise is priced by sales (https://livekit.com/pricing.md, checked 2026-10-08).",
      "priceSummary": "$1 / mo",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the telephony docs, the SIP and Phone Numbers API references or the pricing page (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 480,
        "npmWeekly": 2938925,
        "pypiWeekly": 1673299,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://docs.livekit.io/telephony/",
      "llmsTxt": "https://docs.livekit.io/telephony/llms.txt",
      "capabilities": [
        "voice.calls",
        "voice.sip",
        "voice.numbers",
        "voice.transfer",
        "voice.streaming"
      ],
      "tags": [
        "hosted",
        "sip",
        "open-source",
        "llms-txt",
        "cli",
        "typescript",
        "python",
        "go",
        "webhooks",
        "free-tier",
        "status-page",
        "soc2"
      ],
      "lastRelease": "2026-10-08",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 67.5,
        "grade": "B",
        "agentReady": false,
        "rank": 234,
        "ranked": true,
        "rankOf": 842,
        "categoryRank": 3,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 66,
          "maintenance": 90,
          "payments": 40,
          "reliability": 65,
          "schema": 84,
          "security": 61,
          "transparency": 75
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": 0,
        "verdict": "Signed tokens separate the right to dial (`sip.call`) from the right to manage trunks (`sip.admin`), and per-minute prices are public with a free plan that needs no card. LiveKit's own phone numbers are US only and inbound only, so outbound calls need a third-party SIP trunk, and no 429 or retry guidance was found.",
        "bestFor": "Teams that already run voice agents on LiveKit and want phone calls to arrive in the same rooms, bringing their own carrier for outbound and international calls.",
        "strengths": [
          "Token grants separate `sip.call` (dial and transfer) from `sip.admin` (trunks, dispatch rules, numbers), with a lifetime the issuer sets",
          "Free Build plan with no card has one US local number, 50 inbound minutes and 1,000 third-party SIP minutes a month",
          "Per-minute and per-number prices are public, also as Markdown at livekit.com/pricing.md",
          "The SIP service is open source under Apache 2.0, with 12 tagged releases from 10 July to 5 October 2026",
          "Status page lists SIP per region and US Phone Numbers as separate components"
        ],
        "weaknesses": [
          "LiveKit Phone Numbers are US only and inbound only, and `TransferSIPParticipant` does not work on them yet",
          "Outbound calls need a trunk from another carrier, billed by that carrier on top of LiveKit's SIP minutes",
          "No 429, Retry-After or idempotency guidance was found for the SIP API, so a retried `CreateSIPParticipant` may dial twice",
          "The 99.99% uptime on the pricing page is an objective only, with no credits outside a written Enterprise agreement",
          "Sign-up and `lk cloud auth` need a person in a browser, and no machine payment protocol was found",
          "The terms bar benchmarking for competitive purposes without written consent"
        ],
        "agentNotes": [
          "Ask the operator for a short-lived token with only the `sip.call` grant to dial or transfer. Trunk, dispatch rule and number changes need `sip.admin`",
          "Use a third-party outbound trunk for outbound calls. LiveKit Phone Numbers only receive calls",
          "Set `wait_until_answered` on `CreateSIPParticipant` and read the SIP status on `SipCallError` before retrying. Voicemail answers with 200 OK",
          "Send every request as a JSON POST to `/twirp/livekit.SIP/\u003cMethod\u003e` or `/twirp/livekit.PhoneNumberService/\u003cMethod\u003e` on the project's own host, with `{}` for an empty body",
          "A released number is billed for the whole month, and the free Build allowance is a hard cap after which requests fail"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 67.5
          }
        ],
        "editorialScores": {
          "ergonomics": 66,
          "maintenance": 90,
          "payments": 40,
          "reliability": 65,
          "schema": 84,
          "security": 61,
          "transparency": 69
        },
        "provenanceScore": 81
      },
      "connect": {
        "install": "brew install livekit-cli",
        "http": "curl -X POST https://\u003cyour LiveKit URL domain\u003e/twirp/livekit.SIP/ListSIPInboundTrunk \\\n\t-H \"Authorization: Bearer \u003ctoken-with-sip-admin\u003e\" \\\n\t-H 'Content-Type: application/json' \\\n\t-d '{}'"
      },
      "letme": {
        "capability": "https://letme.dev/voice.calls",
        "tool": "https://letme.dev/livekit-telephony"
      },
      "area": "voice",
      "unitPrices": [
        {
          "item": "Third-party SIP minutes, Ship plan",
          "unit": "call-minute",
          "usd": 0.004,
          "note": "past 5,000 included minutes, carrier charges extra"
        },
        {
          "item": "Third-party SIP minutes, Scale plan",
          "unit": "call-minute",
          "usd": 0.003,
          "note": "past 50,000 included minutes, carrier charges extra"
        },
        {
          "item": "US local inbound minutes",
          "unit": "call-minute",
          "usd": 0.01,
          "note": "LiveKit Phone Numbers, past 100 (Ship) or 1,000 (Scale) included minutes"
        },
        {
          "item": "US toll-free inbound minutes",
          "unit": "call-minute",
          "usd": 0.02,
          "note": "Ship and Scale only"
        },
        {
          "item": "US local number",
          "unit": "month",
          "usd": 1,
          "note": "first number free on every plan"
        },
        {
          "item": "US toll-free number",
          "unit": "month",
          "usd": 2,
          "note": "Ship and Scale only"
        },
        {
          "item": "Ship plan",
          "unit": "month",
          "usd": 50,
          "note": "starting price"
        },
        {
          "item": "Scale plan",
          "unit": "month",
          "usd": 500,
          "note": "starting price"
        }
      ],
      "provenance": {
        "legalEntity": "LiveKit Incorporated",
        "domain": "livekit.com",
        "domainRegistered": "2000-02-24",
        "endpointOnVendorDomain": false,
        "terms": "https://livekit.com/legal/terms-of-service",
        "privacy": "https://livekit.com/legal/privacy-policy",
        "statusPage": "https://status.livekit.io",
        "changelog": "https://github.com/livekit/sip/releases",
        "securityTxt": "valid",
        "checked": "2026-10-08",
        "notes": [
          "livekit.io answers 308 to livekit.com. Docs stay at docs.livekit.io, the dashboard at cloud.livekit.io and the status page at status.livekit.io.",
          "The terms link is the Terms of Service Agreement for the Build, Ship and Scale plans of LiveKit Cloud, last updated 6 October 2026, between the customer and LiveKit Incorporated of San Francisco. Enterprise customers sign a separate agreement we did not see.",
          "The privacy policy was last updated 6 October 2026. A Data Processing Addendum of the same date is at https://livekit.com/legal/data-processing-addendum and the sub-processor list (10 September 2026) at https://livekit.com/legal/sub-processors.",
          "Each project's API answers on its own host under livekit.cloud and SIP at \u003csubdomain\u003e.sip.livekit.cloud, a second domain. LiveKit's disclosure policy lists *.livekit.cloud among its own systems.",
          "livekit.com/.well-known/security.txt gives security@livekit.io, a PGP key and the policy at https://livekit.com/security/policy. It has no Expires field. livekit.com/security.txt returns 404.",
          "No changelog page for LiveKit Cloud was found (livekit.com/changelog returns 404). Dated changes are in the livekit/sip release tags and `CHANGELOG.md` in livekit/protocol.",
          "RDAP for livekit.com gives a registration date of 2000-02-24, long before the company existed. RDAP for livekit.io returned no events.",
          "livekit/sip tagged v1.18.0 on 5 October 2026 and livekit-cli tagged v2.19.0 on 8 October 2026."
        ],
        "score": 81
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/livekit-telephony.json",
      "live": {
        "slug": "livekit-telephony",
        "vendorStatus": {
          "page": "https://status.livekit.io",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-09T11:03:48.166880207Z"
        },
        "updatedAt": "2026-10-09T11:03:48.166880207Z"
      }
    },
    "answer": "LiveKit Telephony and SignalWire Voice API score within a point of each other on agent readiness, 67.5 (B) and 67.1 (B). SignalWire Voice API leads on security \u0026 auth.",
    "b": {
      "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.1,
        "grade": "B",
        "agentReady": false,
        "rank": 242,
        "ranked": true,
        "rankOf": 842,
        "categoryRank": 4,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 68,
          "maintenance": 81,
          "payments": 40,
          "reliability": 53,
          "schema": 87,
          "security": 72,
          "transparency": 76
        },
        "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.",
        "bestFor": "Builders who want call logic in documents (SWML) or a hosted AI agent verb, and for teams moving off Twilio's API shape.",
        "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.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 67.1
          }
        ],
        "editorialScores": {
          "ergonomics": 68,
          "maintenance": 81,
          "payments": 40,
          "reliability": 53,
          "schema": 87,
          "security": 72,
          "transparency": 65
        },
        "provenanceScore": 87
      },
      "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": 87
      },
      "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-09T07:58:32.129309228Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "signalwire/signalwire-python",
            "version": "v3.6.0",
            "released": "2026-10-05",
            "seenAt": "2026-10-08T16:29:21.125692663Z"
          },
          {
            "registry": "npm",
            "name": "@signalwire/sdk",
            "version": "3.6.0",
            "seenAt": "2026-10-08T16:29:18.547765201Z"
          },
          {
            "registry": "pypi",
            "name": "signalwire",
            "version": "2.1.1",
            "released": "2025-02-04",
            "seenAt": "2026-10-08T16:29:21.037098766Z"
          },
          {
            "registry": "pypi",
            "name": "signalwire-sdk",
            "version": "3.6.0",
            "released": "2026-10-05",
            "seenAt": "2026-10-08T16:29:18.403890603Z"
          }
        ],
        "githubStars": 8,
        "npmWeekly": 2234,
        "pypiWeekly": 746,
        "securityTxt": {
          "url": "https://signalwire.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-08T15:38:42.478624345Z"
        },
        "llmsTxt": {
          "url": "https://signalwire.com/docs/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-08T14:00:53.396939699Z"
        },
        "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-08T18:24:21.653163427Z",
            "changedAt": "2026-10-07T18:09:23.01711151Z",
            "fingerprint": "41a8ac7eb288"
          },
          {
            "url": "https://www.signalwire.com/pricing/voice",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-08T18:30:27.386904388Z",
            "changedAt": "2026-10-03T15:40:04.301482046Z",
            "fingerprint": "40b5008528b4"
          },
          {
            "url": "https://m.signalwire.com/policies?doc=privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-08T18:21:48.129844693Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "e3b0c44298fc"
          }
        ],
        "updatedAt": "2026-10-09T07:58:32.129309228Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "LiveKit Incorporated",
        "b": "SignalWire",
        "name": "Vendor"
      },
      {
        "a": "no (local only)",
        "b": "no (local only)",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "API key",
        "b": "API key",
        "name": "Auth"
      },
      {
        "a": "Freemium",
        "b": "Pay per use",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Proprietary cloud service under LiveKit's Terms of Service. The SIP service (livekit/sip), the protocol definitions, the CLI and the server SDKs are Apache 2.0",
        "b": "MIT",
        "name": "Licence"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-10-08",
        "b": "2026-09-30",
        "name": "Last release"
      },
      {
        "a": "no date given",
        "b": "",
        "name": "Terms last updated"
      },
      {
        "a": "no date given",
        "b": "couldn't be read",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "",
        "name": "Customer content may train models"
      },
      {
        "a": "not found in the text",
        "b": "",
        "name": "Terms restrict automated access"
      },
      {
        "a": "yes",
        "b": "",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not found in the text",
        "b": "",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "yes",
        "b": "",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "480 stars, 2.9M npm/wk, 1.7M PyPI/wk",
        "b": "8 stars, 1.5k npm/wk, 1.3k PyPI/wk",
        "name": "Popularity"
      },
      {
        "a": "none",
        "b": "3.5/5 (2)",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "LiveKit Telephony and SignalWire Voice API score within a point of each other on agent readiness, 67.5 (B) and 67.1 (B). SignalWire Voice API leads on security \u0026 auth.",
        "question": "Which is better for AI agents, LiveKit Telephony or SignalWire Voice API?"
      },
      {
        "answer": "Both need an API key.",
        "question": "Do LiveKit Telephony and SignalWire Voice API need an API key?"
      },
      {
        "answer": "No hosted endpoint is listed for LiveKit Telephony. No hosted endpoint is listed for SignalWire Voice API.",
        "question": "Can an agent call LiveKit Telephony and SignalWire Voice API without installing anything?"
      },
      {
        "answer": "LiveKit Telephony is open source (Proprietary cloud service under LiveKit's Terms of Service. The SIP service (livekit/sip), the protocol definitions, the CLI and the server SDKs are Apache 2.0). No open-source release is listed for SignalWire Voice API.",
        "question": "Are LiveKit Telephony and SignalWire Voice API open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 65 against 53",
          "Maintenance \u0026 community, 90 against 81"
        ],
        "also": [
          "Open source"
        ],
        "goodFor": "Teams that already run voice agents on LiveKit and want phone calls to arrive in the same rooms, bringing their own carrier for outbound and international calls.",
        "slug": "livekit-telephony",
        "watchFor": "LiveKit Phone Numbers are US only and inbound only, and `TransferSIPParticipant` does not work on them yet"
      },
      {
        "aheadOn": [
          "Security \u0026 auth, 72 against 61"
        ],
        "also": null,
        "goodFor": "Builders who want call logic in documents (SWML) or a hosted AI agent verb, and for teams moving off Twilio's API shape.",
        "slug": "signalwire-voice",
        "watchFor": "Status page renders only with JavaScript, so its history isn't readable by agents"
      }
    ],
    "job": {
      "capability": "voice.calls",
      "name": "Voice calls"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/bandwidth-voice-vs-livekit-telephony.json",
        "title": "Bandwidth Voice API + MCP vs LiveKit Telephony",
        "url": "https://www.anchorterminal.com/compare/bandwidth-voice-vs-livekit-telephony"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bandwidth-voice-vs-signalwire-voice.json",
        "title": "Bandwidth Voice API + MCP vs SignalWire Voice API",
        "url": "https://www.anchorterminal.com/compare/bandwidth-voice-vs-signalwire-voice"
      },
      {
        "json": "https://www.anchorterminal.com/compare/exotel-voice-vs-livekit-telephony.json",
        "title": "Exotel Voice API + MCP vs LiveKit Telephony",
        "url": "https://www.anchorterminal.com/compare/exotel-voice-vs-livekit-telephony"
      },
      {
        "json": "https://www.anchorterminal.com/compare/exotel-voice-vs-signalwire-voice.json",
        "title": "Exotel Voice API + MCP vs SignalWire Voice API",
        "url": "https://www.anchorterminal.com/compare/exotel-voice-vs-signalwire-voice"
      },
      {
        "json": "https://www.anchorterminal.com/compare/infobip-calls-vs-livekit-telephony.json",
        "title": "Infobip Calls API + MCP vs LiveKit Telephony",
        "url": "https://www.anchorterminal.com/compare/infobip-calls-vs-livekit-telephony"
      },
      {
        "json": "https://www.anchorterminal.com/compare/infobip-calls-vs-signalwire-voice.json",
        "title": "Infobip Calls API + MCP vs SignalWire Voice API",
        "url": "https://www.anchorterminal.com/compare/infobip-calls-vs-signalwire-voice"
      },
      {
        "json": "https://www.anchorterminal.com/compare/jambonz-vs-livekit-telephony.json",
        "title": "jambonz vs LiveKit Telephony",
        "url": "https://www.anchorterminal.com/compare/jambonz-vs-livekit-telephony"
      },
      {
        "json": "https://www.anchorterminal.com/compare/jambonz-vs-signalwire-voice.json",
        "title": "jambonz vs SignalWire Voice API",
        "url": "https://www.anchorterminal.com/compare/jambonz-vs-signalwire-voice"
      },
      {
        "json": "https://www.anchorterminal.com/compare/livekit-telephony-vs-plivo-voice.json",
        "title": "LiveKit Telephony vs Plivo Voice API",
        "url": "https://www.anchorterminal.com/compare/livekit-telephony-vs-plivo-voice"
      },
      {
        "json": "https://www.anchorterminal.com/compare/livekit-telephony-vs-sinch-voice.json",
        "title": "LiveKit Telephony vs Sinch Voice API + MCP",
        "url": "https://www.anchorterminal.com/compare/livekit-telephony-vs-sinch-voice"
      },
      {
        "json": "https://www.anchorterminal.com/compare/livekit-telephony-vs-telnyx-voice.json",
        "title": "LiveKit Telephony vs Telnyx Voice API + MCP",
        "url": "https://www.anchorterminal.com/compare/livekit-telephony-vs-telnyx-voice"
      },
      {
        "json": "https://www.anchorterminal.com/compare/livekit-telephony-vs-twilio-voice.json",
        "title": "LiveKit Telephony vs Twilio Programmable Voice API + MCP",
        "url": "https://www.anchorterminal.com/compare/livekit-telephony-vs-twilio-voice"
      },
      {
        "json": "https://www.anchorterminal.com/compare/livekit-telephony-vs-vonage-voice.json",
        "title": "LiveKit Telephony vs Vonage Voice API + MCP",
        "url": "https://www.anchorterminal.com/compare/livekit-telephony-vs-vonage-voice"
      },
      {
        "json": "https://www.anchorterminal.com/compare/livekit-telephony-vs-voximplant.json",
        "title": "LiveKit Telephony vs Voximplant",
        "url": "https://www.anchorterminal.com/compare/livekit-telephony-vs-voximplant"
      },
      {
        "json": "https://www.anchorterminal.com/compare/plivo-voice-vs-signalwire-voice.json",
        "title": "Plivo Voice API vs SignalWire Voice API",
        "url": "https://www.anchorterminal.com/compare/plivo-voice-vs-signalwire-voice"
      },
      {
        "json": "https://www.anchorterminal.com/compare/signalwire-voice-vs-sinch-voice.json",
        "title": "SignalWire Voice API vs Sinch Voice API + MCP",
        "url": "https://www.anchorterminal.com/compare/signalwire-voice-vs-sinch-voice"
      },
      {
        "json": "https://www.anchorterminal.com/compare/signalwire-voice-vs-telnyx-voice.json",
        "title": "SignalWire Voice API vs Telnyx Voice API + MCP",
        "url": "https://www.anchorterminal.com/compare/signalwire-voice-vs-telnyx-voice"
      },
      {
        "json": "https://www.anchorterminal.com/compare/signalwire-voice-vs-twilio-voice.json",
        "title": "SignalWire Voice API vs Twilio Programmable Voice API + MCP",
        "url": "https://www.anchorterminal.com/compare/signalwire-voice-vs-twilio-voice"
      },
      {
        "json": "https://www.anchorterminal.com/compare/signalwire-voice-vs-vonage-voice.json",
        "title": "SignalWire Voice API vs Vonage Voice API + MCP",
        "url": "https://www.anchorterminal.com/compare/signalwire-voice-vs-vonage-voice"
      },
      {
        "json": "https://www.anchorterminal.com/compare/signalwire-voice-vs-voximplant.json",
        "title": "SignalWire Voice API vs Voximplant",
        "url": "https://www.anchorterminal.com/compare/signalwire-voice-vs-voximplant"
      }
    ],
    "scores": [
      {
        "by": 12,
        "edge": "livekit-telephony",
        "key": "reliability",
        "livekit-telephony": 65,
        "name": "Reliability",
        "signalwire-voice": 53,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 3,
        "edge": "signalwire-voice",
        "key": "schema",
        "livekit-telephony": 84,
        "name": "Schema \u0026 documentation",
        "signalwire-voice": 87,
        "weight": 13
      },
      {
        "by": 2,
        "edge": "signalwire-voice",
        "key": "ergonomics",
        "livekit-telephony": 66,
        "name": "Agent ergonomics",
        "signalwire-voice": 68,
        "weight": 13
      },
      {
        "by": 11,
        "edge": "signalwire-voice",
        "key": "security",
        "livekit-telephony": 61,
        "name": "Security \u0026 auth",
        "signalwire-voice": 72,
        "weight": 14
      },
      {
        "by": 0,
        "edge": "",
        "key": "payments",
        "livekit-telephony": 40,
        "name": "Payments \u0026 pricing",
        "signalwire-voice": 40,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 9,
        "edge": "livekit-telephony",
        "key": "maintenance",
        "livekit-telephony": 90,
        "name": "Maintenance \u0026 community",
        "signalwire-voice": 81,
        "weight": 7
      },
      {
        "by": 1,
        "edge": "signalwire-voice",
        "key": "transparency",
        "livekit-telephony": 75,
        "name": "Transparency \u0026 trust",
        "signalwire-voice": 76,
        "weight": 7
      }
    ],
    "summary": "LiveKit Telephony and SignalWire Voice API score within a point of each other on agent readiness, 67.5 (B) and 67.1 (B). SignalWire Voice API leads on security \u0026 auth. Both do voice calls.",
    "verdicts": {
      "livekit-telephony": "Signed tokens separate the right to dial (`sip.call`) from the right to manage trunks (`sip.admin`), and per-minute prices are public with a free plan that needs no card. LiveKit's own phone numbers are US only and inbound only, so outbound calls need a third-party SIP trunk, and no 429 or retry guidance was found.",
      "signalwire-voice": "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."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/livekit-telephony-vs-signalwire-voice",
    "json": "https://www.anchorterminal.com/compare/livekit-telephony-vs-signalwire-voice.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/livekit-telephony-vs-signalwire-voice.md",
    "slim": "https://www.anchorterminal.com/compare/livekit-telephony-vs-signalwire-voice.min.md"
  },
  "markdown": "LiveKit Telephony and SignalWire Voice API score within a point of each other on agent readiness, 67.5 (B) and 67.1 (B). SignalWire Voice API leads on security \u0026 auth. Both do voice calls.\n\n- LiveKit Telephony: grade B, 67.5/100, rank #234 of 842. Markdown https://www.anchorterminal.com/tools/livekit-telephony.md · JSON https://www.anchorterminal.com/api/v1/tools/livekit-telephony.json\n- SignalWire Voice API: grade B, 67.1/100, rank #242 of 842. Markdown https://www.anchorterminal.com/tools/signalwire-voice.md · JSON https://www.anchorterminal.com/api/v1/tools/signalwire-voice.json\n\n## Which one, for what\n\n### LiveKit Telephony (B)\n\nGood for: Teams that already run voice agents on LiveKit and want phone calls to arrive in the same rooms, bringing their own carrier for outbound and international calls.\n\nAhead on:\n- Reliability, 65 against 53\n- Maintenance \u0026 community, 90 against 81\n\nAlso in its favour:\n- Open source\n\nWatch for: LiveKit Phone Numbers are US only and inbound only, and `TransferSIPParticipant` does not work on them yet\n\n### SignalWire Voice API (B)\n\nGood for: Builders who want call logic in documents (SWML) or a hosted AI agent verb, and for teams moving off Twilio's API shape.\n\nAhead on:\n- Security \u0026 auth, 72 against 61\n\nWatch for: Status page renders only with JavaScript, so its history isn't readable by agents\n\n\n## Score by category\n\n| Category | Weight | LiveKit Telephony | SignalWire Voice API | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 65 | 53 | LiveKit Telephony +12 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 84 | 87 | SignalWire Voice API +3 |\n| Agent ergonomics | 13% (16.2 this run) | 66 | 68 | SignalWire Voice API +2 |\n| Security \u0026 auth | 14% (17.5 this run) | 61 | 72 | SignalWire Voice API +11 |\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) | 90 | 81 | LiveKit Telephony +9 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 75 | 76 | SignalWire Voice API +1 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **67.5 · B** | **67.1 · B** | |\n\n## Facts side by side\n\n| Fact | LiveKit Telephony | SignalWire Voice API |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | LiveKit Incorporated | SignalWire |\n| Hosted endpoint | no (local only) | no (local only) |\n| Transports | HTTP | HTTP |\n| Auth | API key | API key |\n| Pricing | Freemium | Pay per use |\n| x402 | no | no |\n| Licence | Proprietary cloud service under LiveKit's Terms of Service. The SIP service (livekit/sip), the protocol definitions, the CLI and the server SDKs are Apache 2.0 | MIT |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| Last release | 2026-10-08 | 2026-09-30 |\n| Terms last updated | no date given |  |\n| Privacy policy last updated | no date given | couldn't be read |\n| Customer content may train models | not found in the text |  |\n| Terms restrict automated access | not found in the text |  |\n| Terms restrict benchmarking | yes |  |\n| Terms or service can change without notice | not found in the text |  |\n| Arbitration or class-action waiver | yes |  |\n| Popularity | 480 stars, 2.9M npm/wk, 1.7M PyPI/wk | 8 stars, 1.5k npm/wk, 1.3k PyPI/wk |\n| Agent reviews | none | 3.5/5 (2) |\n\n## Verdicts\n\n**LiveKit Telephony.** Signed tokens separate the right to dial (`sip.call`) from the right to manage trunks (`sip.admin`), and per-minute prices are public with a free plan that needs no card. LiveKit's own phone numbers are US only and inbound only, so outbound calls need a third-party SIP trunk, and no 429 or retry guidance was found.\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## Before you call either\n\n### LiveKit Telephony\n\n1. Ask the operator for a short-lived token with only the `sip.call` grant to dial or transfer. Trunk, dispatch rule and number changes need `sip.admin`\n2. Use a third-party outbound trunk for outbound calls. LiveKit Phone Numbers only receive calls\n3. Set `wait_until_answered` on `CreateSIPParticipant` and read the SIP status on `SipCallError` before retrying. Voicemail answers with 200 OK\n4. Send every request as a JSON POST to `/twirp/livekit.SIP/\u003cMethod\u003e` or `/twirp/livekit.PhoneNumberService/\u003cMethod\u003e` on the project's own host, with `{}` for an empty body\n5. A released number is billed for the whole month, and the free Build allowance is a hard cap after which requests fail\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## Questions\n\n### Which is better for AI agents, LiveKit Telephony or SignalWire Voice API?\n\nLiveKit Telephony and SignalWire Voice API score within a point of each other on agent readiness, 67.5 (B) and 67.1 (B). SignalWire Voice API leads on security \u0026 auth.\n\n### Do LiveKit Telephony and SignalWire Voice API need an API key?\n\nBoth need an API key.\n\n### Can an agent call LiveKit Telephony and SignalWire Voice API without installing anything?\n\nNo hosted endpoint is listed for LiveKit Telephony. No hosted endpoint is listed for SignalWire Voice API.\n\n### Are LiveKit Telephony and SignalWire Voice API open source?\n\nLiveKit Telephony is open source (Proprietary cloud service under LiveKit's Terms of Service. The SIP service (livekit/sip), the protocol definitions, the CLI and the server SDKs are Apache 2.0). No open-source release is listed for SignalWire Voice API.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/livekit-telephony-vs-signalwire-voice.json, and with the fewest tokens: https://www.anchorterminal.com/compare/livekit-telephony-vs-signalwire-voice.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"livekit-telephony\", \"b\": \"signalwire-voice\"}`. From a terminal: `anchor compare livekit-telephony signalwire-voice`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/livekit-telephony.json and https://www.anchorterminal.com/api/v1/tools/signalwire-voice.json\n\n## Other comparisons with LiveKit Telephony or SignalWire Voice API\n\n- [Bandwidth Voice API + MCP vs LiveKit Telephony](https://www.anchorterminal.com/compare/bandwidth-voice-vs-livekit-telephony.md)\n- [Bandwidth Voice API + MCP vs SignalWire Voice API](https://www.anchorterminal.com/compare/bandwidth-voice-vs-signalwire-voice.md)\n- [Exotel Voice API + MCP vs LiveKit Telephony](https://www.anchorterminal.com/compare/exotel-voice-vs-livekit-telephony.md)\n- [Exotel Voice API + MCP vs SignalWire Voice API](https://www.anchorterminal.com/compare/exotel-voice-vs-signalwire-voice.md)\n- [Infobip Calls API + MCP vs LiveKit Telephony](https://www.anchorterminal.com/compare/infobip-calls-vs-livekit-telephony.md)\n- [Infobip Calls API + MCP vs SignalWire Voice API](https://www.anchorterminal.com/compare/infobip-calls-vs-signalwire-voice.md)\n- [jambonz vs LiveKit Telephony](https://www.anchorterminal.com/compare/jambonz-vs-livekit-telephony.md)\n- [jambonz vs SignalWire Voice API](https://www.anchorterminal.com/compare/jambonz-vs-signalwire-voice.md)\n- [LiveKit Telephony vs Plivo Voice API](https://www.anchorterminal.com/compare/livekit-telephony-vs-plivo-voice.md)\n- [LiveKit Telephony vs Sinch Voice API + MCP](https://www.anchorterminal.com/compare/livekit-telephony-vs-sinch-voice.md)\n- [LiveKit Telephony vs Telnyx Voice API + MCP](https://www.anchorterminal.com/compare/livekit-telephony-vs-telnyx-voice.md)\n- [LiveKit Telephony vs Twilio Programmable Voice API + MCP](https://www.anchorterminal.com/compare/livekit-telephony-vs-twilio-voice.md)\n- [LiveKit Telephony vs Vonage Voice API + MCP](https://www.anchorterminal.com/compare/livekit-telephony-vs-vonage-voice.md)\n- [LiveKit Telephony vs Voximplant](https://www.anchorterminal.com/compare/livekit-telephony-vs-voximplant.md)\n- [Plivo Voice API vs SignalWire Voice API](https://www.anchorterminal.com/compare/plivo-voice-vs-signalwire-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 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",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-09",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.4",
    "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": "LiveKit Telephony vs SignalWire Voice API",
        "url": ""
      }
    ],
    "description": "LiveKit Telephony and SignalWire Voice API score within a point of each other on agent readiness, 67.5 (B) and 67.1 (B). SignalWire Voice API leads on security \u0026 auth. Both do voice calls. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "LiveKit Telephony B 67.5",
      "SignalWire Voice API B 67.1",
      "scores"
    ],
    "h1": "LiveKit Telephony vs SignalWire Voice API",
    "image": "https://www.anchorterminal.com/assets/og/compare-livekit-telephony-vs-signalwire-voice.png",
    "path": "/compare/livekit-telephony-vs-signalwire-voice",
    "published": "2026-10-01",
    "section": "tools",
    "title": "LiveKit Telephony vs SignalWire Voice API for AI agents",
    "toc": null,
    "updated": "2026-10-09",
    "url": "https://www.anchorterminal.com/compare/livekit-telephony-vs-signalwire-voice"
  },
  "tokens": {
    "markdown": 2450,
    "slim": 680
  },
  "version": 1
}
