{
  "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"
  },
  "tool": {
    "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"
      ],
      "breakdown": [
        {
          "key": "reliability",
          "name": "Reliability",
          "weight": 16,
          "effectiveWeight": 20,
          "score": 65,
          "points": 13,
          "reason": "Graded as a hosted service, LiveKit Cloud. Statuspage at status.livekit.io with SIP per region, Global SIP and US Phone Numbers as components (20). In the 90 days to 8 October the SIP incidents were all marked minor or none. Failed SIP transfers in US East ran about 72 minutes on 17 August, one-way audio on LiveKit Phone Numbers about 42 minutes on 2 September, and raised API latency on SIP twice on 15 September for about 70 minutes each. The two incidents marked major (2 and 15 September) hit the dashboard, analytics and billing API, not calls (20). The Server API limit is 1,000 requests a minute per project, with number limits of 100 on Ship and 300 on Scale (15). No 429, Retry-After, backoff or idempotency guidance was found for the SIP API (0). The pricing page lists 99.99% uptime for every plan, and section 2.5 of the terms calls such figures objectives with no credits outside a written Enterprise agreement, so no SLA is counted (0). The SIP API carries no beta label, though the warm transfer task in the Agents framework is marked beta, in Python only (10)."
        },
        {
          "key": "performance",
          "name": "Performance",
          "weight": 10,
          "effectiveWeight": 0,
          "pending": true,
          "points": 0,
          "reason": "Pending. Latency is measured per call by our probes, which haven't run yet, so this run doesn't score it. Its weight is shared across the assessed categories until the first probe window closes."
        },
        {
          "key": "schema",
          "name": "Schema \u0026 documentation",
          "weight": 13,
          "effectiveWeight": 16.25,
          "score": 84,
          "points": 13.65,
          "reason": "The contract is protobuf in livekit/protocol (17 SIP RPCs, 6 phone number RPCs), called as JSON over Twirp. No OpenAPI document was found, and we counted the protobuf files as the similar spec (25). llms.txt per docs section and every page as Markdown (10). Reference tables give each parameter's purpose, and the guides say when to use an inline trunk or a stored one (15 of 20). Typed fields with enums for transport, encryption and number status and required fields marked, with metadata as a free string (13 of 15). Examples in six languages and the CLI, a call outcome table and a troubleshooting guide by SIP code. No full list of Twirp errors was found, and the reference still shows `TransferSIPParticipant` returning an empty message where the protocol changelog says it now returns a response object (11 of 15). The Twirp path has no version. Changes are dated in livekit/sip release tags and the protocol `CHANGELOG.md`, with no cloud changelog page found (10 of 15)."
        },
        {
          "key": "ergonomics",
          "name": "Agent ergonomics",
          "weight": 13,
          "effectiveWeight": 16.25,
          "score": 66,
          "points": 10.73,
          "reason": "List calls take a limit and ID, number or status filters, with no field selection (15 of 25). A `Pagination` type with `after_id` and `limit` on the SIP list calls (18 of 20). `wait_until_answered` returns a `SipCallError` with the carrier's SIP status code, and the docs map codes to outcomes. Twirp errors are named only in passing (15 of 20). No idempotency key was found, so a retried `CreateSIPParticipant` can place a second call (3 of 20). A call needs a trunk, a number and a room name, and SIP clients ship in Go, JavaScript, Python, Ruby, Kotlin and Rust plus the `lk` CLI (15)."
        },
        {
          "key": "security",
          "name": "Security \u0026 auth",
          "weight": 14,
          "effectiveWeight": 17.5,
          "score": 61,
          "points": 10.68,
          "reason": "A project key and secret sign JWTs whose `sip` grant is `admin` or `call`, with a lifetime the signer sets. Keys rotate in the dashboard. The key pair itself can mint any grant, so scoping depends on the operator handing an agent a token and not the secret (25 of 30). `call` without `admin` is a least-privilege mode for dialling, inbound trunks can be limited by number, IP range or credentials, and no read-only grant or confirmation step for dialling or renting numbers was found (8 of 20). Calls carry untrusted caller speech, and no prompt-injection guidance was found in the telephony docs (5 of 15). The security overview says project configuration changes are logged, with export to a SIEM still on the roadmap, and the dashboard shows call logs (8 of 15). security.txt with a disclosure policy and safe harbour, a Hall of Fame with no cash bounty stated, SOC 2 Type II, six-monthly penetration tests, ISO 27001 in progress, and no published advisories on livekit/sip, livekit/livekit or livekit/livekit-cli (15 of 20)."
        },
        {
          "key": "payments",
          "name": "Payments \u0026 pricing",
          "weight": 10,
          "effectiveWeight": 12.5,
          "score": 40,
          "points": 5,
          "reason": "No x402, MPP or L402 found (0). Per-minute and per-number prices are public without a login, also as Markdown (20). The Build plan is free with no card and includes a US local number, 50 inbound minutes and 1,000 third-party SIP minutes a month (20). An account is created in a browser and `lk cloud auth` opens one, and no programmatic sign-up or key API was found (0)."
        },
        {
          "key": "tasks",
          "name": "Task success",
          "weight": 10,
          "effectiveWeight": 0,
          "pending": true,
          "points": 0,
          "reason": "Pending. Task success needs the category task suites run through each tool, which haven't run yet, so this run doesn't score it. Its weight is shared across the assessed categories until then. A data provider's data-quality score is published on its listing now and becomes half of this category when it's scored."
        },
        {
          "key": "maintenance",
          "name": "Maintenance \u0026 community",
          "weight": 7,
          "effectiveWeight": 8.75,
          "score": 90,
          "points": 7.88,
          "reason": "livekit-cli v2.19.0 was tagged on 8 October 2026 and livekit/sip v1.18.0 on 5 October (30). livekit/sip has 12 tags from v1.7.0 on 10 July to v1.18.0 (20). Of the 30 newest open issues and pull requests on livekit/sip, 22 have at least one comment. We read the counts and not who replied. Paid plans add email support and there is a community Slack (17 of 25). Current server SDKs, with livekit-server-sdk 2.19.1 on npm and livekit-api 1.2.1 on PyPI from 27 August 2026 (15). livekit/sip runs unit tests with the race detector and integration tests in CI and has Renovate configured. We did not see the latest run's result (8 of 10)."
        },
        {
          "key": "transparency",
          "name": "Transparency \u0026 trust",
          "weight": 7,
          "effectiveWeight": 8.75,
          "score": 75,
          "points": 6.56,
          "note": "editorial 69, provenance 81",
          "reason": "The SIP service, protocol, CLI and SDKs are Apache 2.0, and the security page says the same code runs on LiveKit Cloud. The cloud control plane and LiveKit Phone Numbers are closed, under clear terms (25 of 30). Terms, privacy policy and DPA all dated 6 October 2026 agree. The DPA lists retention by data category, user content is deleted after delivery unless recording is on, telemetry is kept up to 60 days and backups up to 30. Call detail records have no fixed period, and the sub-processor list names no telephony carrier for LiveKit Phone Numbers (22 of 30). No deprecation policy was found. Deprecated fields are flagged in the reference without dates, and the terms give 30 days' notice of changes to the agreement (5 of 20). The sub-processor list gives each entity, its activity and its country, all in the United States, with a way to subscribe to changes, and the docs list the SIP regions (17 of 20)."
        }
      ],
      "assessment": {
        "date": "2026-10-08",
        "basis": "public evidence",
        "confidence": "medium",
        "notes": {
          "ergonomics": "List calls take a limit and ID, number or status filters, with no field selection (15 of 25). A `Pagination` type with `after_id` and `limit` on the SIP list calls (18 of 20). `wait_until_answered` returns a `SipCallError` with the carrier's SIP status code, and the docs map codes to outcomes. Twirp errors are named only in passing (15 of 20). No idempotency key was found, so a retried `CreateSIPParticipant` can place a second call (3 of 20). A call needs a trunk, a number and a room name, and SIP clients ship in Go, JavaScript, Python, Ruby, Kotlin and Rust plus the `lk` CLI (15).",
          "maintenance": "livekit-cli v2.19.0 was tagged on 8 October 2026 and livekit/sip v1.18.0 on 5 October (30). livekit/sip has 12 tags from v1.7.0 on 10 July to v1.18.0 (20). Of the 30 newest open issues and pull requests on livekit/sip, 22 have at least one comment. We read the counts and not who replied. Paid plans add email support and there is a community Slack (17 of 25). Current server SDKs, with livekit-server-sdk 2.19.1 on npm and livekit-api 1.2.1 on PyPI from 27 August 2026 (15). livekit/sip runs unit tests with the race detector and integration tests in CI and has Renovate configured. We did not see the latest run's result (8 of 10).",
          "payments": "No x402, MPP or L402 found (0). Per-minute and per-number prices are public without a login, also as Markdown (20). The Build plan is free with no card and includes a US local number, 50 inbound minutes and 1,000 third-party SIP minutes a month (20). An account is created in a browser and `lk cloud auth` opens one, and no programmatic sign-up or key API was found (0).",
          "reliability": "Graded as a hosted service, LiveKit Cloud. Statuspage at status.livekit.io with SIP per region, Global SIP and US Phone Numbers as components (20). In the 90 days to 8 October the SIP incidents were all marked minor or none. Failed SIP transfers in US East ran about 72 minutes on 17 August, one-way audio on LiveKit Phone Numbers about 42 minutes on 2 September, and raised API latency on SIP twice on 15 September for about 70 minutes each. The two incidents marked major (2 and 15 September) hit the dashboard, analytics and billing API, not calls (20). The Server API limit is 1,000 requests a minute per project, with number limits of 100 on Ship and 300 on Scale (15). No 429, Retry-After, backoff or idempotency guidance was found for the SIP API (0). The pricing page lists 99.99% uptime for every plan, and section 2.5 of the terms calls such figures objectives with no credits outside a written Enterprise agreement, so no SLA is counted (0). The SIP API carries no beta label, though the warm transfer task in the Agents framework is marked beta, in Python only (10).",
          "schema": "The contract is protobuf in livekit/protocol (17 SIP RPCs, 6 phone number RPCs), called as JSON over Twirp. No OpenAPI document was found, and we counted the protobuf files as the similar spec (25). llms.txt per docs section and every page as Markdown (10). Reference tables give each parameter's purpose, and the guides say when to use an inline trunk or a stored one (15 of 20). Typed fields with enums for transport, encryption and number status and required fields marked, with metadata as a free string (13 of 15). Examples in six languages and the CLI, a call outcome table and a troubleshooting guide by SIP code. No full list of Twirp errors was found, and the reference still shows `TransferSIPParticipant` returning an empty message where the protocol changelog says it now returns a response object (11 of 15). The Twirp path has no version. Changes are dated in livekit/sip release tags and the protocol `CHANGELOG.md`, with no cloud changelog page found (10 of 15).",
          "security": "A project key and secret sign JWTs whose `sip` grant is `admin` or `call`, with a lifetime the signer sets. Keys rotate in the dashboard. The key pair itself can mint any grant, so scoping depends on the operator handing an agent a token and not the secret (25 of 30). `call` without `admin` is a least-privilege mode for dialling, inbound trunks can be limited by number, IP range or credentials, and no read-only grant or confirmation step for dialling or renting numbers was found (8 of 20). Calls carry untrusted caller speech, and no prompt-injection guidance was found in the telephony docs (5 of 15). The security overview says project configuration changes are logged, with export to a SIEM still on the roadmap, and the dashboard shows call logs (8 of 15). security.txt with a disclosure policy and safe harbour, a Hall of Fame with no cash bounty stated, SOC 2 Type II, six-monthly penetration tests, ISO 27001 in progress, and no published advisories on livekit/sip, livekit/livekit or livekit/livekit-cli (15 of 20).",
          "transparency": "The SIP service, protocol, CLI and SDKs are Apache 2.0, and the security page says the same code runs on LiveKit Cloud. The cloud control plane and LiveKit Phone Numbers are closed, under clear terms (25 of 30). Terms, privacy policy and DPA all dated 6 October 2026 agree. The DPA lists retention by data category, user content is deleted after delivery unless recording is on, telemetry is kept up to 60 days and backups up to 30. Call detail records have no fixed period, and the sub-processor list names no telephony carrier for LiveKit Phone Numbers (22 of 30). No deprecation policy was found. Deprecated fields are flagged in the reference without dates, and the terms give 30 days' notice of changes to the agreement (5 of 20). The sub-processor list gives each entity, its activity and its country, all in the United States, with a way to subscribe to changes, and the docs list the SIP regions (17 of 20)."
        },
        "sources": [
          {
            "what": "telephony docs index",
            "url": "https://docs.livekit.io/telephony/llms.txt",
            "seen": "2026-10-08"
          },
          {
            "what": "telephony introduction and SIP support table",
            "url": "https://docs.livekit.io/telephony.md",
            "seen": "2026-10-08"
          },
          {
            "what": "LiveKit Phone Numbers, limits and CLI",
            "url": "https://docs.livekit.io/telephony/start/phone-numbers.md",
            "seen": "2026-10-08"
          },
          {
            "what": "SIP API reference",
            "url": "https://docs.livekit.io/reference/telephony/sip-api.md",
            "seen": "2026-10-08"
          },
          {
            "what": "Phone Numbers API reference",
            "url": "https://docs.livekit.io/reference/telephony/phone-numbers-api.md",
            "seen": "2026-10-08"
          },
          {
            "what": "outbound calls, call outcomes and SipCallError",
            "url": "https://docs.livekit.io/telephony/making-calls/outbound-calls.md",
            "seen": "2026-10-08"
          },
          {
            "what": "cold transfer by SIP REFER",
            "url": "https://docs.livekit.io/telephony/features/transfers/cold.md",
            "seen": "2026-10-08"
          },
          {
            "what": "agent-assisted transfer (beta workflow)",
            "url": "https://docs.livekit.io/telephony/features/transfers/warm.md",
            "seen": "2026-10-08"
          },
          {
            "what": "answering machine detection",
            "url": "https://docs.livekit.io/telephony/features/answering-machine-detection.md",
            "seen": "2026-10-08"
          },
          {
            "what": "SIP region pinning",
            "url": "https://docs.livekit.io/telephony/features/region-pinning.md",
            "seen": "2026-10-08"
          },
          {
            "what": "Connectors API",
            "url": "https://docs.livekit.io/reference/telephony/connectors-api.md",
            "seen": "2026-10-08"
          },
          {
            "what": "SIP troubleshooting guide",
            "url": "https://docs.livekit.io/reference/telephony/troubleshooting.md",
            "seen": "2026-10-08"
          },
          {
            "what": "quotas, rate limits and metered resources",
            "url": "https://docs.livekit.io/deploy/admin/quotas-and-limits.md",
            "seen": "2026-10-08"
          },
          {
            "what": "access tokens and the SIP grant",
            "url": "https://docs.livekit.io/frontends/authentication/tokens.md",
            "seen": "2026-10-08"
          },
          {
            "what": "webhooks, signing and retries",
            "url": "https://docs.livekit.io/intro/basics/rooms-participants-tracks/webhooks-events.md",
            "seen": "2026-10-08"
          },
          {
            "what": "CLI install and project linking",
            "url": "https://docs.livekit.io/reference/developer-tools/livekit-cli.md",
            "seen": "2026-10-08"
          },
          {
            "what": "docs MCP server",
            "url": "https://docs.livekit.io/reference/developer-tools/docs-mcp.md",
            "seen": "2026-10-08"
          },
          {
            "what": "pricing as Markdown",
            "url": "https://livekit.com/pricing.md",
            "seen": "2026-10-08"
          },
          {
            "what": "terms of service, 6 October 2026",
            "url": "https://livekit.com/legal/terms-of-service",
            "seen": "2026-10-08"
          },
          {
            "what": "privacy policy, 6 October 2026",
            "url": "https://livekit.com/legal/privacy-policy",
            "seen": "2026-10-08"
          },
          {
            "what": "data processing addendum",
            "url": "https://livekit.com/legal/data-processing-addendum",
            "seen": "2026-10-08"
          },
          {
            "what": "sub-processor list, 10 September 2026",
            "url": "https://livekit.com/legal/sub-processors",
            "seen": "2026-10-08"
          },
          {
            "what": "security page and compliance",
            "url": "https://livekit.com/security",
            "seen": "2026-10-08"
          },
          {
            "what": "security overview",
            "url": "https://livekit.com/security/overview",
            "seen": "2026-10-08"
          },
          {
            "what": "vulnerability disclosure policy",
            "url": "https://livekit.com/security/policy",
            "seen": "2026-10-08"
          },
          {
            "what": "security.txt",
            "url": "https://livekit.com/.well-known/security.txt",
            "seen": "2026-10-08"
          },
          {
            "what": "robots.txt, no Content-Signal line",
            "url": "https://livekit.com/robots.txt",
            "seen": "2026-10-08"
          },
          {
            "what": "status incidents feed",
            "url": "https://status.livekit.io/api/v2/incidents.json",
            "seen": "2026-10-08"
          },
          {
            "what": "status components",
            "url": "https://status.livekit.io/api/v2/components.json",
            "seen": "2026-10-08"
          },
          {
            "what": "livekit/sip repository, tags and CI (shallow clone)",
            "url": "https://github.com/livekit/sip",
            "seen": "2026-10-08"
          },
          {
            "what": "livekit/sip stars, licence and open issues",
            "url": "https://api.github.com/repos/livekit/sip",
            "seen": "2026-10-08"
          },
          {
            "what": "livekit-cli tags (shallow clone)",
            "url": "https://github.com/livekit/livekit-cli",
            "seen": "2026-10-08"
          },
          {
            "what": "protocol definitions and changelog (shallow clone)",
            "url": "https://github.com/livekit/protocol",
            "seen": "2026-10-08"
          },
          {
            "what": "livekit/sip advisories, none published",
            "url": "https://api.github.com/repos/livekit/sip/security-advisories",
            "seen": "2026-10-08"
          },
          {
            "what": "npm weekly downloads, livekit-server-sdk",
            "url": "https://api.npmjs.org/downloads/point/last-week/livekit-server-sdk",
            "seen": "2026-10-08"
          },
          {
            "what": "PyPI recent downloads, livekit-api",
            "url": "https://pypistats.org/api/packages/livekit-api/recent",
            "seen": "2026-10-08"
          },
          {
            "what": "RDAP for livekit.com",
            "url": "https://rdap.org/domain/livekit.com",
            "seen": "2026-10-08"
          }
        ],
        "openQuestions": [
          "The lead gave livekit.io as the vendor's site. It now redirects to livekit.com, and the listing uses livekit.com",
          "Which carrier supplies LiveKit Phone Numbers. The sub-processor list of 10 September 2026 names none",
          "Whether unanswered or failed outbound attempts count as billed SIP minutes",
          "How long call detail records are kept. The terms say as long as law or carrier rules require",
          "Whether the SIP API returns 429 with a Retry-After header at the 1,000 requests a minute limit. No call was made to the API",
          "unchecked: trust.livekit.io, where the SOC 2 report and penetration test summaries sit behind an NDA request",
          "unchecked: the Enterprise agreement and its support and uptime SLA, which are not published",
          "unchecked: who answered the open issues on livekit/sip, and whether the latest CI run on its default branch passed",
          "unchecked: the Egress docs for recording a SIP call, so `voice.recording` is left out of the capabilities",
          "The npm and PyPI download counts are for the whole server SDKs, not for SIP use"
        ]
      },
      "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"
    },
    "notable": [
      "LiveKit Phone Numbers are US only and inbound only, and forwarding with `TransferSIPParticipant` is not yet supported on them (https://docs.livekit.io/telephony/start/phone-numbers.md)",
      "The SIP API has 17 RPCs and the Phone Numbers API 6, defined as protobuf in livekit/protocol and called as JSON over Twirp (https://github.com/livekit/protocol/blob/main/protobufs/livekit_sip.proto)",
      "Outbound trunk settings can be stored or passed inline on each `CreateSIPParticipant` call (https://docs.livekit.io/telephony/making-calls/outbound-calls.md)",
      "Answering machine detection classifies an outbound call as human, IVR, voicemail, unavailable or uncertain inside the Agents framework (https://docs.livekit.io/telephony/features/answering-machine-detection.md)",
      "The terms forbid emergency calls (911, 112) and benchmarking for competitive purposes without written consent (https://livekit.com/legal/terms-of-service)",
      "The server SDK download counts cover every LiveKit server API, of which SIP is one part",
      "LiveKit Agents, the framework that usually answers these calls, is a separate product and is not graded here"
    ],
    "area": "voice",
    "details": [
      {
        "label": "Countries with numbers",
        "value": "United States only for LiveKit Phone Numbers (local and toll-free, inbound only). Other countries through a third-party SIP trunk"
      },
      {
        "label": "SIP",
        "value": "Inbound and outbound trunks over UDP, TCP or TLS with SRTP. No SIP REGISTER, SIPREC or video. Tested with Twilio, Telnyx, Exotel, Plivo, Wavix, Sinch and didlogic"
      },
      {
        "label": "Media streams",
        "value": "Call audio joins a LiveKit room as a participant track over WebRTC. Connectors bridge Twilio calls over websockets and WhatsApp Business voice calls"
      },
      {
        "label": "Voice AI layer",
        "value": "LiveKit Agents joins the same room. Agent session minutes on LiveKit Cloud are $0.01 a minute past the plan allowance, with models billed separately"
      },
      {
        "label": "Recording",
        "value": "Through the separate Egress service, written to the customer's own S3, GCS or Azure bucket. Audio-only transcode from $0.005 a minute past the allowance on Ship"
      },
      {
        "label": "Transfer",
        "value": "`TransferSIPParticipant` sends SIP REFER for a cold transfer. Agent-assisted warm transfer runs through an Agents task marked beta, in Python only"
      },
      {
        "label": "Free tier",
        "value": "Build plan, $0, no card. 1 US local number, 50 inbound minutes and 1,000 third-party SIP minutes a month, as a hard cap"
      },
      {
        "label": "Rate limits",
        "value": "1,000 Server API requests a minute per project. 100 local numbers on Ship and 300 on Scale. Outbound ringing timeout capped at 80 seconds"
      },
      {
        "label": "SLA",
        "value": "99.99% uptime listed for every plan as an objective. The terms give no credits outside a written Enterprise agreement"
      },
      {
        "label": "Data retention",
        "value": "Telemetry up to 60 days by default. Call detail records kept as long as law or carrier rules require, with no fixed period stated"
      },
      {
        "label": "Regions",
        "value": "Global SIP endpoint by default. Region-pinned endpoints for aus, eu, india, japan, sa, uk and us. The pricing page lists region pinning for Scale and Enterprise"
      },
      {
        "label": "MCP server",
        "value": "Docs only, at https://docs.livekit.io/mcp. No MCP server for call control was found"
      }
    ],
    "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,
      "checks": [
        {
          "check": "Legal entity named",
          "value": "LiveKit Incorporated",
          "points": 20,
          "max": 20,
          "state": "ok"
        },
        {
          "check": "Domain age",
          "value": "livekit.com, registered 2000-02-24 (26 years)",
          "points": 15,
          "max": 15,
          "state": "ok"
        },
        {
          "check": "Endpoint on the vendor's domain",
          "value": " is not on livekit.com",
          "points": 0,
          "max": 15,
          "state": "no"
        },
        {
          "check": "Terms of service",
          "value": "read, states 6 of the 7 things a reader expects, and has 1 clause that costs points",
          "points": 7.1,
          "max": 10,
          "state": "part"
        },
        {
          "check": "Privacy policy",
          "value": "read, states 6 of the 8 things a reader expects",
          "points": 8.5,
          "max": 10,
          "state": "part"
        },
        {
          "check": "Status page",
          "value": "status.livekit.io",
          "points": 10,
          "max": 10,
          "state": "ok"
        },
        {
          "check": "Changelog",
          "value": "published",
          "points": 10,
          "max": 10,
          "state": "ok"
        },
        {
          "check": "security.txt",
          "value": "valid",
          "points": 10,
          "max": 10,
          "state": "ok"
        }
      ],
      "policies": [
        {
          "kind": "terms",
          "url": "https://livekit.com/legal/terms-of-service",
          "state": "read",
          "readAt": "2026-10-08",
          "words": 6708,
          "points": 7.1,
          "max": 10,
          "expected": [
            {
              "key": "terms.date",
              "label": "Gives the date it was last updated",
              "found": false
            },
            {
              "key": "terms.law",
              "label": "Names the governing law or courts",
              "found": true,
              "quote": "This Agreement shall be governed by the laws of the State of California without regard to its conflict of laws provisions.",
              "says": "The law of the State of California"
            },
            {
              "key": "terms.liability",
              "label": "States a limit on its liability",
              "found": true,
              "quote": "…(A) LIVEKIT'S AND CUSTOMER'S TOTAL LIABILITY FOR DAMAGES ARISING OUT OF OR RELATING TO THIS AGREEMENT IS LIMITED TO THE GREATER OF THE FEES PAID AND PAYABLE BY CUSTOMER UNDER THIS AGREEMENT DURING THE 12-MONTH PERIOD BEFORE THE EVENT GIVING RISE TO LIABILITY AND ONE THOUSAND DOLLARS ($1,000);",
              "says": "Capped at the greater of $1,000 and the fees paid in the 12 months before the claim"
            },
            {
              "key": "terms.termination",
              "label": "Says how the agreement or account can be ended",
              "found": true,
              "quote": "LiveKit may monitor and block use of the Services if it detects violations and may suspend or reclaim numbers or resources where required."
            },
            {
              "key": "terms.changes",
              "label": "Says how changes to the terms are announced",
              "found": true,
              "quote": "In the event of a claim or threatened claim under this Section by a third party, LiveKit may, at its sole option, (i) revise the Services so that they are no longer infringing, (ii) obtain the right for Customer to continue using the Services, or (iii) terminate this Agreement upon 10 days' notice.",
              "says": "Gives 10 days of notice before a change"
            },
            {
              "key": "terms.use",
              "label": "Lists what users may not do",
              "found": true,
              "quote": "Customer may not use the Services if Customer is a person barred from receiving the Services under the laws of the United States or other countries, including the country in which Customer is resident or from which Customer uses the Services."
            },
            {
              "key": "terms.sla",
              "label": "Refers to a service level or uptime commitment",
              "found": true,
              "quote": "Any availability or uptime targets published on LiveKit's pricing or documentation pages are service objectives only and do not entitle Customer to service credits, refunds, or other remedies unless expressly set forth in a separate written agreement with LiveKit for Enterprise customers."
            }
          ],
          "toKnow": [
            {
              "key": "terms.benchmark",
              "label": "Restricts benchmarking or competitive use",
              "found": true,
              "quote": "to build a competing product or service, or benchmark for competitive purposes, without LiveKit's",
              "costsPoints": true
            },
            {
              "key": "terms.cutoff",
              "label": "Says access can be ended without notice or for any reason",
              "found": true,
              "quote": "LiveKit may terminate the Services under the Build subscription plan at any time."
            },
            {
              "key": "terms.arbitration",
              "label": "Requires arbitration or waives class actions",
              "found": true,
              "quote": "Any dispute arising out of or relating to this Agreement will be resolved by final and binding arbitration administered by the American Arbitration Association under its Commercial Arbitration Rules before one arbitrator in Santa Clara County, California, in English."
            }
          ],
          "notes": [
            {
              "date": "2026-10-08",
              "text": "Use of the Services for a use case classed as high-risk under the EU AI Act needs LiveKit's prior written consent.",
              "quote": "as high-risk under the AI Act, Customer must first obtain LiveKit's prior written consent and"
            },
            {
              "date": "2026-10-08",
              "text": "Third-party providers reached through the Services may train on data under their own terms, except providers used through LiveKit Inference.",
              "quote": "Provider through the Services. Third-Party Service Providers may train on data as set forth in their"
            },
            {
              "date": "2026-10-08",
              "text": "The customer must export its data before termination, and LiveKit is not responsible for storing customer data afterwards.",
              "quote": "After termination, LiveKit is not responsible for storing any Customer Data."
            }
          ]
        },
        {
          "kind": "privacy",
          "url": "https://livekit.com/legal/privacy-policy",
          "state": "read",
          "readAt": "2026-10-08",
          "words": 3558,
          "points": 8.5,
          "max": 10,
          "expected": [
            {
              "key": "privacy.date",
              "label": "Gives the date it was last updated",
              "found": false
            },
            {
              "key": "privacy.collected",
              "label": "Says what personal data is collected",
              "found": true,
              "quote": "This privacy policy (the “Privacy Policy”) explains how we collect, use, and disclose information from users of our Services (“Users”)."
            },
            {
              "key": "privacy.retention",
              "label": "Says how long data is kept",
              "found": true,
              "quote": "We retain Voice Samples for up to twelve (12) months;",
              "says": "Names a period of twelve months"
            },
            {
              "key": "privacy.processors",
              "label": "Says who else receives the data",
              "found": true,
              "quote": "This Privacy Policy does not apply to the extent we process information in the role of a processor or service provider on behalf of our customers (for example, your company when you use our tools at https://cloud.livekit.io/ or a third-party platform that uses our technology to power their AI agents)."
            },
            {
              "key": "privacy.sale",
              "label": "Says whether personal data is sold or shared for advertising",
              "found": false
            },
            {
              "key": "privacy.rights",
              "label": "Says what rights people have over their data",
              "found": true,
              "quote": "This means we have a legitimate interest that does not outweigh your privacy rights."
            },
            {
              "key": "privacy.contact",
              "label": "Gives a privacy contact",
              "found": true,
              "quote": "If you learn that a child has provided us with Personal Data in violation of this Privacy Policy, then you may alert us at privacy@livekit.io.",
              "says": "privacy@livekit.io"
            },
            {
              "key": "privacy.transfers",
              "label": "Says where data is transferred or stored",
              "found": true,
              "quote": "Data Privacy Framework, the UK Extension to the EU-U.S.",
              "says": "Relies on the Data Privacy Framework"
            }
          ],
          "notes": [
            {
              "date": "2026-10-08",
              "text": "The policy covers LiveKit's website and does not apply where LiveKit processes data as a processor for customers, such as through cloud.livekit.io.",
              "quote": "This Privacy Policy does not apply to the extent we process information in the role of a processor or service provider on behalf of our customers"
            }
          ]
        }
      ]
    },
    "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-09T10:41:47.741400325Z"
      },
      "updatedAt": "2026-10-09T10:41:47.741400325Z"
    }
  }
}
