# 46elks Voice API vs LiveKit Telephony (slim)

> LiveKit Telephony scores 67.6 (B) to 46elks Voice's 44.4 (E) for phone calls. Prices, MCP, x402, uptime and agent notes side by side.

- Full: https://www.anchorterminal.com/compare/46elks-vs-livekit-telephony.md (~5,400 tokens) · this version ~3,280 tokens · JSON https://www.anchorterminal.com/compare/46elks-vs-livekit-telephony.json · canonical https://www.anchorterminal.com/compare/46elks-vs-livekit-telephony
- Index: https://www.anchorterminal.com/llms.txt · API: https://www.anchorterminal.com/api/v1/index.json · MCP: https://www.anchorterminal.com/mcp · Updated: 2026-11-07
- Licence: CC BY 4.0, credit Anchor Terminal and link this page (https://www.anchorterminal.com/terms/#data)

LiveKit Telephony scores 67.6 (B) on agent readiness against 46elks Voice API's 44.4 (E), and leads in every scored category. Both do phone calls.

- 46elks Voice API: E 44.4, rank #1203 of 1486 · https://www.anchorterminal.com/tools/46elks.min.md
- LiveKit Telephony: B 67.6, rank #312 of 1486 · https://www.anchorterminal.com/tools/livekit-telephony.min.md
- 46elks Voice API, good for European teams that want EU-resident calling and numbers with a simple REST API and a WebSocket bridge to an AI agent. Also A hosted endpoint, with nothing to install.
- LiveKit Telephony, good 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. Ahead on Reliability, 65 against 47; Schema & documentation, 84 against 66; Agent ergonomics, 66 against 51; Security & auth, 61 against 40; Payments & pricing, 40 against 20; Maintenance & community, 90 against 12; Transparency & trust, 76 against 62. Also Open source.

| Category | 46elks Voice API | LiveKit Telephony |
| --- | --- | --- |
| Reliability (16%) | 47 | 65 |
| Performance (10%) | pending | pending |
| Schema & documentation (13%) | 66 | 84 |
| Agent ergonomics (13%) | 51 | 66 |
| Security & auth (14%) | 40 | 61 |
| Payments & pricing (10%) | 20 | 40 |
| Task success (10%) | pending | pending |
| Maintenance & community (7%) | 12 | 90 |
| Transparency & trust (7%) | 62 | 76 |

| Fact (where they differ) | 46elks Voice API | LiveKit Telephony |
| --- | --- | --- |
| Vendor | 46elks AB | LiveKit Incorporated |
| Hosted endpoint | `https://api.46elks.com/a1` | no (local only) |
| Transports | HTTP, websocket | HTTP |
| Pricing | Pay per use | Freemium |
| Price for phone calls | $0.017 per minute of call | not published |
| Licence | Proprietary service under the 46elks Terms of Service (effective 12 March 2024). Example code and the Swagger file are in the public 46elks-getting-started repository | 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 |
| Last release | none | 2026-10-28 |
| Terms last updated | 2024-03-12 | no date given |
| Privacy policy last updated | 2018-05-20 | no date given |
| Terms restrict benchmarking | not found in the text | yes |
| Terms or service can change without notice | yes | not found in the text |
| Arbitration or class-action waiver | not found in the text | yes |
| Popularity | none | 480 stars, 2.9M npm/wk, 1.7M PyPI/wk |
| Agent reviews | none | 2.8/5 (4) |

Why the edge:
- Maintenance & community, LiveKit Telephony +78: 46elks Voice API 12 (No changelog, release notes or dated API change was found, the sitemap's newest blog post is from 2014, and the Swagger file predates Realtime Voice (0). No dated changes in the 90 days from 8 August (0). Support by phone and email on workdays with a typical 60-minute response stated, and 24/7 error reporting (10 of 15). No official SDK (0). The public examples repository answers, but its history wasn't read (2 of 10). 0+0+10+0+2 = 12.); LiveKit Telephony 90 (livekit/sip v1.22.0 was tagged on 28 October 2026, livekit-server-sdk 2.19.2 on 22 October and livekit-cli v2.19.2 on 22 October (30). livekit/sip has 14 tags in the 90 days from 3 August, v1.9.0 (5 August) to v1.22.0, and livekit-cli 9 (20). Of the 30 newest open issues and pull requests on livekit/sip, 22 had at least one comment, per the 8 October check, not re-read on 1 November because GitHub's API answers 403. Paid plans add email support and there is a community Slack (17 of 25). Current server SDKs, livekit-server-sdk 2.19.2 (22 October), livekit-api 1.2.2 (16 October) and server-sdk-go v2.19.0 (8 October), by their repository tags (15). livekit/sip runs unit tests with the race detector and integration tests in CI, has Renovate configured and took four security dependency bumps on 13 October. We did not see the latest run's result (8 of 10). 30 + 20 + 17 + 15 + 8 = 90.)
- Security & auth, LiveKit Telephony +21: 46elks Voice API 40 (HTTP Basic credentials per account, with separate credentials per subaccount and no scopes found (18 of 30). Subaccounts separate traffic, with no read-only credential or confirmation for paid actions (6 of 20). Callers' speech, DTMF and SMS replies reach the agent as untrusted input. The docs show how to verify callback origin, with no prompt-injection guidance (5 of 15). Call, SMS and recording history through the API for 90 days (8 of 15). A registered Swedish telecom operator, but no security.txt (404), disclosure policy, bug bounty or certification was found (3 of 20). 18+6+5+8+3 = 40.); LiveKit Telephony 61 (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 OSV advisories for livekit-server-sdk, livekit-api, server-sdk-go, livekit/sip, livekit-server or livekit/protocol on 1 November. security.txt has no Expires field. The same programme reading as LiveKit's agents framework (15 of 20). 25 + 8 + 5 + 8 + 15 = 61.)
- Payments & pricing, LiveKit Telephony +20: 46elks Voice API 20 (No x402, MPP or L402 (0). Per-minute prices by destination are public without login, also in kronor, with incoming calls free (20). No free credit; only SMS to the test number +46700000000 costs nothing, and accounts are prepaid or invoiced against a deposit (0). A person signs up in a browser and copies the credentials (0). 0+20+0+0 = 20.); LiveKit Telephony 40 (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, LiveKit Telephony +18: 46elks Voice API 47 (Graded on the hosted REST and Realtime Voice APIs with the hosted lines. A status page exists, linked from 46elks.com/status on UptimeRobot (20). It draws its data by script from a path its robots.txt disallows, so no history was readable (5). SMS sending speed is documented in the FAQ, but no limit for calls, numbers or WebSocket sessions was found (5 of 15). llms.txt says to retry 5xx with exponential backoff and not to retry 4xx unchanged, with no Retry-After or idempotency for `POST /calls` (7 of 15). The SLA page commits to support hours and 24/7 error reporting with no uptime figure, and extended SLAs are by sales (0). Voice and Realtime Voice carry no beta label (10). 20+5+5+7+0+10 = 47.); LiveKit Telephony 65 (Graded as a hosted service, LiveKit Cloud. Statuspage at status.livekit.io lists Global SIP, US Phone Numbers and SIP in 15 regions as components (20). In the 90 days to 1 November every SIP incident read as partial or short. Failed SIP transfers for a small percentage of calls in US East on 17 August (15:48 to 16:08 and 17:24 to 18:05 UTC), one-way audio on LiveKit Phone Numbers for calls from T-Mobile and AT&T on 2 September, raised SIP API latency on 15 September (about a minute from 16:11 UTC and ten minutes from 21:11 UTC), about 14% of outbound and 5% of inbound calls failing in US West on 16 October (14:49 to 15:58 UTC), and failed inbound SIP calls and about 10% of `CreateSIPParticipant` requests failing in US East on 28 October (23:30 to 23:58 UTC). Each hit one region, one carrier path or a share of calls, so each is minor. The 15 September Cloud Dashboard and billing API outage left RTC and SIP unaffected, per its own text (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 or backoff guidance was found in the docs. The server SDKs retry failed requests in another region and send an `X-Livekit-Request-Id` key on each attempt, but that is in their code and changelogs, not documented as rate-limit handling (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, per the 8 October check, 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). 20 + 20 + 15 + 0 + 0 + 10 = 65.)
- Schema & documentation, LiveKit Telephony +18: 46elks Voice API 66 (A Swagger 2.0 file with 28 operations is linked from the docs, but it covers no Realtime Voice messages and isn't versioned with the API (18 of 25). An llms.txt written for agents, with a task-to-endpoint table and webhook payloads, while docs pages are HTML (10). Each docs page explains parameters and when webhooks fire, such as `voice_start` loading only once a call connects (14 of 20). Form-encoded parameters with types in the Swagger file and few enums (9 of 15). Examples in many languages and a JSON error shape, with no error list (10 of 15). The `/a1/` path, with no changelog found (5 of 15). 18+10+14+9+10+5 = 66.); LiveKit Telephony 84 (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, 42 telephony pages on 1 November, 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 on 1 November where the protocol changelog says it 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).)
- Agent ergonomics, LiveKit Telephony +15: 46elks Voice API 51 (Compact JSON responses, and call actions returned as small JSON objects (18 of 25). History endpoints list calls and recordings, with paging parameters not confirmed (10 of 20). Errors carry `error` and `detail` (12 of 20). No idempotency key on `POST /calls` or number allocation (3 of 20). Three required fields to place a call, no official SDK, examples in 12 or more languages (8 of 15). 18+10+12+3+8 = 51.); LiveKit Telephony 66 (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). The Go, Node.js and Python server SDKs attach an `X-Livekit-Request-Id` key to every server API call and keep it across their own failover retries, which their changelogs say is so the server can deduplicate them (Go from 24 July, livekit-server-sdk 2.19.0 on 9 September, livekit-api 1.2.1 on 27 August). That is the SDKs' stated purpose, not documented server behaviour. The API docs don't mention the key, the open-source LiveKit server read on 1 November never takes it from the request, and its `CreateSIPParticipant` path mints a fresh call ID each time, so a retried dial isn't shown to be safe (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). 15 + 18 + 15 + 3 + 15 = 66.)
