# Inworld Realtime API vs LiveKit Agents (slim)

> LiveKit Agents scores 72.7 (BB) to Inworld Realtime's 60.1 (C) for voice agents. Prices, MCP, x402, uptime and agent notes side by side.

- Full: https://www.anchorterminal.com/compare/inworld-realtime-vs-livekit-agents.md (~6,200 tokens) · this version ~3,380 tokens · JSON https://www.anchorterminal.com/compare/inworld-realtime-vs-livekit-agents.json · canonical https://www.anchorterminal.com/compare/inworld-realtime-vs-livekit-agents
- 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 Agents scores 72.7 (BB) on agent readiness against Inworld Realtime API's 60.1 (C), and leads in every scored category. Both do voice agents.

- Inworld Realtime API: C 60.1, rank #671 of 1510 · https://www.anchorterminal.com/tools/inworld-realtime.min.md
- LiveKit Agents: BB 72.7, rank #120 of 1510 · https://www.anchorterminal.com/tools/livekit-agents.min.md
- Inworld Realtime API, good for Teams moving off OpenAI's Realtime API who want a choice of LLM and Inworld voices.
- LiveKit Agents, good for Teams writing their own voice agents in Python or Node.js who want to choose every model and run on their own servers or LiveKit Cloud. Ahead on Reliability, 67 against 62; Schema & documentation, 81 against 60; Agent ergonomics, 80 against 68; Payments & pricing, 60 against 40; Maintenance & community, 87 against 71; Transparency & trust, 82 against 63. Also Agent-ready, a grade of BB or better; Free to start without a card; Open source.

| Category | Inworld Realtime API | LiveKit Agents |
| --- | --- | --- |
| Reliability (16%) | 62 | 67 |
| Performance (10%) | pending | pending |
| Schema & documentation (13%) | 60 | 81 |
| Agent ergonomics (13%) | 68 | 80 |
| Security & auth (14%) | 58 | 62 |
| Payments & pricing (10%) | 40 | 60 |
| Task success (10%) | pending | pending |
| Maintenance & community (7%) | 71 | 87 |
| Transparency & trust (7%) | 63 | 82 |

| Fact (where they differ) | Inworld Realtime API | LiveKit Agents |
| --- | --- | --- |
| Kind | HTTP API | Agent framework |
| Vendor | Inworld AI | LiveKit Incorporated |
| Transports | websocket, HTTP |  |
| Pricing | Pay per use | Free |
| Price for voice agents | $25 per 1M characters | $0.005 per minute of audio |
| Licence | none | Apache-2.0 for the framework and plugins. The turn-detector models are under LiveKit's proprietary model licence (`MODEL_LICENSE`), which limits them to use with LiveKit Agents. LiveKit Cloud and LiveKit Inference are closed services under LiveKit's terms |
| Tools exposed | 0 | none |
| Last release | 2026-10-16 | 2026-10-28 |
| Terms last updated | 2025-06-11 | no date given |
| Privacy policy last updated | 2026-01-18 | no date given |
| Terms restrict benchmarking | not found in the text | yes |
| Arbitration or class-action waiver | not found in the text | yes |
| Popularity | none | 820k npm/wk, 1.1M PyPI/wk |
| Agent reviews | none | 3/5 (4) |

Why the edge:
- Schema & documentation, LiveKit Agents +21: Inworld Realtime API 60 (No AsyncAPI or other machine-readable file for the socket, and the spec paths redirect (0). llms.txt, Markdown twins and a docs MCP server (10). The overview, OpenAI migration guide, `providerData` reference and the billing page's account of how a session is counted say what to use when (16 of 20). The reference lists every client and server event with field types and required marks, as text rather than a schema (12 of 15). JavaScript and Python example projects and an error event with `type`, `code` and `param`, without a list of codes (9 of 15). Dated release notes with affected clients and required actions, but no API version beyond `/v1` (13 of 15). Total 60.); LiveKit Agents 81 (Library reading. A typed Python package (`py.typed`, mypy in CI) with a Python and Node.js API reference on docs.livekit.io. The reference llms.txt link to the Python reference's Markdown still returns 404 on 1 November (22 of 25). llms.txt with section indexes, `.md` on every page, llms-full.txt and a docs MCP server (10). Pages say when to use a realtime model or a pipeline, when to choose `v1` or `v1-mini`, when to disallow interruptions and how to gate critical actions, and mark MCP as Python only (16 of 20). Function tools take their schema from typed signatures and docstrings, raw JSON Schema is accepted, and argument validation failures go back to the model as `ToolError` (13 of 15). 15 example folders in the repository after provider-specific examples were removed on 27 October, 39 recipes, and an events and error-handling reference (13 of 15). No changelog in the repository or docs, release notes only on GitHub, and the quickstart's `agent.py` still ends with `agents.cli.run_app(server)`, which the framework marks as deprecated, still so on 1 November (7 of 15).)
- Payments & pricing, LiveKit Agents +20: Inworld Realtime API 40 (No x402, MPP or L402 (0). No per-session price, but each billed part (STT per hour, TTS per character, LLM per token) is priced publicly (20). On-Demand includes free STT and TTS allowances and lists no payment method, though some premium LLMs need a card on file (20). A person signs up in a browser before a key exists (0). Total 40.); LiveKit Agents 60 (No x402, MPP or L402 (0 of 40). Read with the rule for open-source software that has a paid hosted option. LiveKit Cloud publishes per-minute prices for agent sessions and recordings and per-unit prices for every LiveKit Inference model without a login (20). The Apache-2.0 packages install with no card, and LiveKit Cloud's Build plan is $0 with no card (20). The framework and a LiveKit server can both run self-hosted with no account or sign-up (20).)
- Transparency & trust, LiveKit Agents +19: Inworld Realtime API 63 (Closed service with clear terms naming Theai, Inc. dba Inworld AI (15). The ZDR page says what a session keeps and that third-party LLM requests aren't covered, but the terms and privacy notice disagree on training (12 of 30). Release notes flag potentially breaking changes with the clients affected and what to do, without stating a notice period (14 of 20). US headquarters with EU and India residency on Enterprise, and no sub-processor list in the docs, while sessions may route to third-party LLM providers (10 of 20). Total 51.); LiveKit Agents 82 (Apache-2.0 for the framework and its 81 plugin packages. The turn-detector models are under LiveKit's proprietary model licence, and the core package now requires `livekit-local-inference`, installed from PyPI with its source outside the repository, which runs the local `v1-mini` model that the turn-detector docs place under the same model licence. The README calls the project "Fully open-source" and names the model licence in its licence section, and `MODEL_LICENSE` itself calls LiveKit Agents a proprietary framework (20 of 30). The terms, the observability docs and the pricing page agree on 30-day observability retention, zero data retention for LiveKit Inference and no training on customer data, and a DPA and sub-processor list are published. The privacy policy (15 October 2026) excludes data LiveKit processes for customers. The pricing page lists LiveKit Inference models from Fish Audio, Gradium and Speechmatics, which the sub-processor list of 10 September 2026 does not name (22 of 30). Deprecations are flagged in code and docs (`mcp_servers`, `cli.run_app`, the text turn-detector plugin), mostly without dates. One warning names 30 April 2026 for removing `api_version` and is still in 1.8.10 on 1 November, and 2.0.0b1 has no migration notes we could find (9 of 20). What reaches LiveKit is documented with opt-outs (`record`, `TurnDetector(version="v1-mini")`), and the sub-processor list names each entity and country (17 of 20).)
- Maintenance & community, LiveKit Agents +16: Inworld Realtime API 71 (Release note of 16 October 2026 (`cache_transcript`), 21 days ago (30). Three dated Realtime entries in the 90 days from 8 August, on 14 September, 23 September and 16 October (20). Discord and support@inworld.ai, with no evidence of answers read (8 of 15). Works with OpenAI's Realtime clients and the CLI is current at 1.5.0, but there is no Inworld Realtime SDK (8 of 15). CLI on npm under MIT, CI not read (5 of 10). Total 71.); LiveKit Agents 87 (`livekit-agents` 1.8.10 tagged on 28 October 2026, after 1.8.9 on 23 October (30). 18 tagged releases in the 90 days to 1 November, from 1.6.8 on 3 August to 1.8.10, counted from the repository's tags since PyPI didn't answer from our shell on 1 November, and `@livekit/agents` 1.9.4 (24 October) and 1.9.5 (28 October) in livekit/agents-js (20). Issue and pull request reply times weren't read, because GitHub's pages answer 403, and the earlier figures, taken from a third-party copy of GitHub data, are struck. In the clone, 147 of the 200 newest commits (11 to 31 October) came from about 80 authors with addresses outside livekit.io, bots aside, and every one of the 200 landed as a numbered pull request. CODEOWNERS sends every change to the agent-devs team, a workflow requests that team's review on pull requests from the repository's own branches, and the issue form points questions to LiveKit's community forum, with a Slack linked from the README (15 of 25). Python 1.8.10 and Node.js 1.9.5 were both tagged on 28 October (15). Renovate, a uv lockfile that holds new dependencies back seven days, security bumps of aiohttp (22 October) and nltk (27 October), pinned actions and CI on every push, with the pass state unconfirmed (7 of 10). 30 + 20 + 15 + 15 + 7 = 87.)
- Agent ergonomics, LiveKit Agents +12: Inworld Realtime API 68 (Scored as an API. Conversation history defaults to the last 100 items, can be trimmed, and can be cached on Anthropic models, and every `response.done` carries a `usage` block (18 of 25). No lists to page. Output controls are modalities, turn detection settings, optional transcription and `response.speak` (12 of 20). Error events follow OpenAI's `type` and `code` shape, unsupported fields come back as non-fatal `unsupported_field` warnings, and `item_not_found` names the bad parameter (14 of 20). Tools run on the client and a follow-up response starts automatically after a tool result. Nothing covers side effects of a tool call cut off by an interruption (12 of 20). Works with OpenAI Realtime clients after changing the URL and key, with no Inworld Realtime SDK (12 of 15). Total 68.); LiveKit Agents 80 (Framework reading. An MCP server is about ten lines with `mcp.MCPToolset`, with `allowed_tools`, `filter_tools()` and a `tool_result_resolver` to trim results before they reach the model, but Python only (20 of 25). Tools can be added, removed or replaced per agent and per state, flags such as `IGNORE_ON_ENTER` hide a tool at the greeting, and handoffs swap the active toolset (16 of 20). `ToolError` returns a message the model can act on, invalid arguments come back as a `ToolError` naming the tool, and by default a session closes only after more than three unrecoverable STT, LLM or TTS errors of one kind (17 of 20). Interrupted tools finish in the background and keep their result in history, `disallow_interruptions()` protects tools that write, and `on_duplicate` can reject, replace or confirm a second call. Duplicates are matched by tool name only, and there are no idempotency keys (14 of 20). `AgentSession` supplies VAD and a turn detector by default and LiveKit Inference takes model strings with one key, in Python and Node.js, but every agent needs a LiveKit server and three environment variables (13 of 15).)
- Reliability, LiveKit Agents +5: Inworld Realtime API 62 (Hosted reading of the checklist. status.inworld.ai is a public status page (20), with history we couldn't read, as on inworld-tts (5). Concurrent sessions are published per plan, 10 on On-Demand up to 1,000 on Growth (15). The rate limits page gives exponential backoff with jitter and Retry-After on longer windows, and sessions emit `rate_limits.updated`, with nothing on reconnecting a dropped session (12 of 15). An SLA appears only in the Enterprise column, with no terms (0). No preview or beta label on the Realtime API (10). 20 + 5 + 15 + 12 + 0 + 10 = 62.); LiveKit Agents 67 (Graded as a framework with the local-software lines, since LiveKit Cloud is optional and not graded. Official packages on PyPI (Python 3.10 to 3.14 declared) and npm (Node.js 20 or later per the docs) (20). Public workflows run on every push to main and on pull requests. Unit tests on Linux with Python 3.12 over 310 test files on 1 November, ruff, and mypy on Python 3.10 and 3.13, with a small blockguard suite on Linux, macOS and Windows. GitHub's pages and API weren't readable from our session, so a passing main is not confirmed (15 of 25). Open issues and reply times weren't read, because GitHub's pages answer 403, and the earlier issue figures, taken from a third-party copy of GitHub data, are struck. In a clone of main, the 200 newest commits run from 11 to 31 October 2026 and 104 of them are fixes, among them an Inference STT socket that hung when silently dropped (#8023) and an avatar plugin's error handler that crashed (#7498). None names the issue it closes and there is no changelog, so whether reported crashes and regressions get handled can't be seen (10 of 25). No CHANGELOG file. Release notes are on GitHub, which we couldn't read, and the repository's release-notes script asks for Breaking changes and Security sections. Migration guides exist for 0.x to 1.0, AGENTS.md makes patch bumps the default, and 2.0.0b1 was tagged on 12 October and the docs' migration guides still stop at Python 0.x to 1.0 and Node.js 1.x to 1.5 on 1 November (7 of 15). 1.8.10, stable since 1.0 (15).)
