Head to head · Voice agents · October 2026 research run
Inworld Realtime API vs LiveKit Agents
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.
Best conversational voice-agent APIs · All 518 voice agents comparisons
Which one, for what
Best for Teams moving off OpenAI's Realtime API who want a choice of LLM and Inworld voices.
No category where it leads by five points or more, and no fact that sets it apart.
Watch for
No per-minute price. A session's cost depends on STT, LLM tokens and TTS characters, and interrupted segments are still billed
Best 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 in its favour
- Agent-ready, a grade of BB or better
- Free to start without a card
- Open source
Watch for
The turn-detector models are under a proprietary licence that forbids use outside LiveKit Agents and training other models on their output
Why the edge
Each category where one leads by five points or more, with the reason behind each side's score from its assessment. The numbers are in the table below; this is what they stand for.
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).
Score by category
| Category | Weight this run | Inworld Realtime API | LiveKit Agents | Edge |
|---|---|---|---|---|
| Reliability | 16%20 | 62 | 67 | LiveKit Agents +5 |
| Performance | 10%pending | pending | pending | not scored in this run |
| Schema & documentation | 13%16.2 | 60 | 81 | LiveKit Agents +21 |
| Agent ergonomics | 13%16.2 | 68 | 80 | LiveKit Agents +12 |
| Security & auth | 14%17.5 | 58 | 62 | LiveKit Agents +4 |
| Payments & pricing | 10%12.5 | 40 | 60 | LiveKit Agents +20 |
| Task success | 10%pending | pending | pending | not scored in this run |
| Maintenance & community | 7%8.8 | 71 | 87 | LiveKit Agents +16 |
| Transparency & trust | 7%8.8 | 63 | 82 | LiveKit Agents +19 |
| Negative events | ≤15 | 0 | 0 | |
| Total | C 60.1/100 | BB 72.7/100 |
Facts side by side
| Fact | Inworld Realtime API | LiveKit Agents |
|---|---|---|
| Kind | HTTP API | Agent framework |
| Vendor | Inworld AI | LiveKit Incorporated |
| Hosted endpoint | no (local only) | no (local only) |
| Transports | websocket, HTTP | |
| Auth | API key | API key |
| Pricing | Pay per use | Free |
| Price for voice agents | $25 per 1M characters | $0.005 per minute of audio |
| x402 | no | no |
| 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 |
| Read-only variant documented | no | no |
| llms.txt | yes | yes |
| 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 |
| Customer content may train models | not found in the text | not found in the text |
| Terms restrict automated access | not found in the text | not found in the text |
| Terms restrict benchmarking | not found in the text | yes |
| Terms or service can change without notice | not found in the text | not found in the text |
| 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) |
How the scores have moved
Inworld Realtime API
No score change since it was listed.
Verdicts
Inworld Realtime API
Inworld's Realtime API speaks OpenAI's Realtime protocol over WebSocket or WebRTC, with a choice of LLM, client-side tools and dated release notes. Cost is the sum of STT, LLM and TTS usage with no per-minute price, there is no machine-readable event schema, and status history couldn't be read.
LiveKit Agents
An Apache-2.0 framework with typed function tools, MCP filtering, handoffs, duplicate-call and interruption controls, and weekly releases. It needs a LiveKit server, and the default turn detector's models are under a proprietary licence limited to this framework. No approval primitive or prompt-injection guidance was found.
Before you call either
Inworld Realtime API
- Set the auto follow-up off if your client sends its own
response.createafter a tool result, or replies double - Read
response.doneusage as an estimate and mute input audio when nobody speaks, since STT bills every second sent - Use
response.speakfor fixed greetings, which skips the LLM - Treat
unsupported_fielderrors as warnings and keep the session open - Mint browser session tokens on your server and never ship the Basic credential to a client
LiveKit Agents
- Set
LIVEKIT_URL,LIVEKIT_API_KEYandLIVEKIT_API_SECRETbefore starting. Every agent joins a LiveKit room, on LiveKit Cloud or a self-hosted server - Pass
inference.TurnDetector(version="v1-mini")to keep turn detection local, and readMODEL_LICENSEbefore using LiveKit's turn models anywhere but LiveKit Agents - Pass
record=False, or a dict per category, tosession.start()if audio, transcripts, traces and logs must not reach LiveKit Cloud - Call
context.disallow_interruptions()first in tools that write, and seton_duplicate="reject"or"confirm". Duplicates are matched by tool name only, not arguments - Wrap MCP servers in
mcp.MCPToolsetwithallowed_tools(Python only). Themcp_serversparameter is deprecated
Questions
Which is better for AI agents, Inworld Realtime API or LiveKit Agents?
LiveKit Agents scores 72.7 (BB) on agent readiness against Inworld Realtime API's 60.1 (C), and leads in every scored category.
Can an agent call Inworld Realtime API and LiveKit Agents without installing anything?
No hosted endpoint is listed for Inworld Realtime API. No hosted endpoint is listed for LiveKit Agents.
Are Inworld Realtime API and LiveKit Agents open source?
No open-source release is listed for Inworld Realtime API. LiveKit Agents is open source (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).
Other comparisons with Inworld Realtime API or LiveKit Agents
- Amazon Nova 2 Sonic vs Inworld Realtime API
- Amazon Nova 2 Sonic vs LiveKit Agents
- AssemblyAI Voice Agent API vs Inworld Realtime API
- AssemblyAI Voice Agent API vs LiveKit Agents
- Bland AI API + MCP vs Inworld Realtime API
- Bland AI API + MCP vs LiveKit Agents
- Bolna API + MCP vs Inworld Realtime API
- Bolna API + MCP vs LiveKit Agents
- Deepgram Voice Agent API vs Inworld Realtime API
- Deepgram Voice Agent API vs LiveKit Agents
- ElevenLabs Agents API + MCP vs Inworld Realtime API
- ElevenLabs Agents API + MCP vs LiveKit Agents
- fone.me vs Inworld Realtime API
- fone.me vs LiveKit Agents
- Gemini Live API vs Inworld Realtime API
- Gemini Live API vs LiveKit Agents
- GPT-Live vs Inworld Realtime API
- Harmony.ai vs Inworld Realtime API
- Harmony.ai vs LiveKit Agents
- Hume EVI (Empathic Voice Interface) vs Inworld Realtime API
- Hume EVI (Empathic Voice Interface) vs LiveKit Agents
- Inworld Realtime API vs OpenAI Realtime API
- Inworld Realtime API vs Pipecat
- Inworld Realtime API vs PlaceCall
- Inworld Realtime API vs Retell AI API + MCP
- Inworld Realtime API vs Rime Prism
- Inworld Realtime API vs Synthflow API + MCP
- Inworld Realtime API vs Ultravox Realtime API
- Inworld Realtime API vs Vaani Developer Platform
- Inworld Realtime API vs Vapi API + MCP
- Inworld Realtime API vs Vocily AI
- Inworld Realtime API vs Vogent API
- LiveKit Agents vs OpenAI Realtime API
- LiveKit Agents vs Pipecat
- LiveKit Agents vs PlaceCall
- LiveKit Agents vs Retell AI API + MCP
- LiveKit Agents vs Rime Prism
- LiveKit Agents vs Synthflow API + MCP
- LiveKit Agents vs Ultravox Realtime API
- LiveKit Agents vs Vaani Developer Platform
- LiveKit Agents vs Vapi API + MCP
- LiveKit Agents vs Vocily AI
- LiveKit Agents vs Vogent API
- CueLight vs Inworld Realtime API
- CueLight vs LiveKit Agents
- Inworld Realtime API vs Pipecat PhoneLLM
- LiveKit Agents vs Pipecat PhoneLLM
- GPT-Live vs LiveKit Agents
Machine-readable
- This page as Markdown
/compare/inworld-realtime-vs-livekit-agents.md· slim.min.md· JSON.json(or sendAccept: text/markdown) - Each listing in full
/api/v1/tools/inworld-realtime.json·/api/v1/tools/livekit-agents.json - From a terminal
anchor compare inworld-realtime livekit-agents(the CLI) - Over MCP
compare_tools {"a": "inworld-realtime", "b": "livekit-agents"}at/mcp, no key