Head to head · Voice agents · October 2026 research run

Inworld Realtime API vs Pipecat

Pipecat scores 65.2 (B) 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

Inworld Realtime API C

Best for Teams moving off OpenAI's Realtime API who want a choice of LLM and Inworld voices.

Also in its favour

  • No incidents deducted, where Pipecat loses 9 points for them

Watch for

No per-minute price. A session's cost depends on STT, LLM tokens and TTS characters, and interrupted segments are still billed

Pipecat B

Best for Python teams that want to own a voice agent's pipeline, pick each speech and model provider, and host it themselves or on Pipecat Cloud.

Ahead on

  • Reliability, 68 against 62
  • Schema & documentation, 92 against 60
  • Security & auth, 67 against 58
  • Payments & pricing, 60 against 40
  • Maintenance & community, 85 against 71
  • Transparency & trust, 83 against 63

Also in its favour

  • No key needed to call it
  • Free to start without a card
  • Open source

Watch for

No tool-approval or confirmation step, and no prompt-injection guidance, for tools that act on a caller's speech

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 Pipecat +32

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.

Pipecat 92

Framework reading. Typed Python (py.typed) with an API reference page per service, transport, frame type and utility (25). llms.txt, Markdown copies of each page and llms-full.txt (4.7 MB on 1 November) (10). Guides say when to reach for Flows, multiple LLM agents or a single pipeline, and the error-handling page says which failures are worth retrying. The OpenTelemetry reference now gives PipelineWorker defaults of enable_tracing False and enable_turn_tracking True, matching the 1.15.0 source, so the mismatch the 17 October check found is gone (16 of 20, was 14). Pydantic Settings classes per service, a provider-neutral FunctionSchema, and an ErrorCategory enum (12 of 15). Example folders from function calling and MCP to telephony, and documented error categories and Pipecat Cloud error codes (14 of 15). Dated changelog with pull-request links, towncrier fragments and a migration guide to 1.0 (15). 25 + 10 + 16 + 12 + 14 + 15 = 92.

Payments & pricing Pipecat +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.

Pipecat 60

No x402, MPP or L402 (0). Read with the self-hosted rule, with the pricing line scored on Pipecat Cloud, the paid option. Its per-minute prices by agent size, transport, telephony and recording are published without a login, re-read on 1 November ($0.01 an active minute for agent-1x, $0.018 a minute for Daily PSTN) (20). The BSD-2-Clause package installs with no card. Pipecat Cloud needs billing credentials or a trial code before sessions start (20, on the package). The framework runs with no account, on the developer's own provider keys (20). 0 + 20 + 20 + 20 = 60.

Transparency & trust Pipecat +20

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.

Pipecat 83

BSD-2-Clause (30). The framework keeps no data. Daily's privacy policy (6 January 2025) keeps personal data while an account is open, the Pipecat Cloud security guide says session data is removed when a session ends, logs are stored by default and administrative API calls are kept a year, and Daily publishes a DPA (1 May 2025) and a sub-processor list (1 September 2026), per the 17 October check. Control-plane data is in the US whatever the agent's region (24 of 30). The changelog has Deprecated sections in most releases, and recent entries name removal in 2.0.0, with a migration guide to 1.0, but no dated removal windows (13 of 20). No telemetry found, and tracing is opt-in, which the OpenTelemetry reference now states too. The optional ai-coustics filter still registers a Pipecat identifier with that vendor's SDK in 1.15.0, which the docs don't mention (18 of 20, was 16). 30 + 24 + 13 + 18 = 85.

Maintenance & community Pipecat +14

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.

Pipecat 85

pipecat-ai 1.15.0, dated 28 October 2026 in the changelog and tagged that day, 4 days before the check (30). Nine releases in the 90 days to 1 November, 1.8.0 on 26 August to 1.15.0 (20). Issue and pull-request reply times couldn't be read, since GitHub's pages answer 403, and the 17 October figures came from a third-party copy of GitHub data, now struck. The clone shows 151 pull requests from outside forks merged in the 90 days to 1 November, fixes that cite the issues they close, and a needs-repro workflow that labels issues (13 of 25, was 15). The Python framework and the JavaScript client (@pipecat-ai/client-js 1.16.0, tagged 28 October) are current, with client SDKs in six languages (15). CI, coverage, a licence check, a uv lockfile and trusted publishing to PyPI are configured. Dependabot was added on 23 October, for the pinned GitHub Actions only, and a passing main wasn't confirmed (7 of 10). 30 + 20 + 13 + 15 + 7 = 85.

Security & auth Pipecat +9

Inworld Realtime API 58

Workspace API keys sent as Basic credentials, deleted to revoke, with separate keys per environment advised. The CLI mints read-only keys unless --write is given, but write toggles cover only the Voice and Router APIs, so no key is limited to one product. Browsers use short-lived tokens minted server side. Session IDs, not secrets, go in the URL (25 of 30). Tools run in the client, so the developer approves side effects, with no approval step in the API (10 of 20). The agent listens to callers and passes their speech to an LLM, and no prompt-injection guidance was found (5 of 15). Usage per key and a Performance page with errors and throttling (8 of 15). SOC 2 Type II and HIPAA claimed and a vulnerability report form, with no security.txt or bug bounty, per the 4 November reading (10 of 20). Total 58. Zero data retention covers session content from the Developer plan up, but not requests routed to third-party LLM providers.

Pipecat 67

Framework reading, as for the frameworks category. We found no telemetry in the source, and tracing is off by default and needs an exporter the developer supplies. The two credential flaws the 17 October check found on 1.12.0 are fixed in released versions. 1.13.0 (18 October) makes the services for OpenAI-compatible providers raise an error when given no key instead of falling back to OPENAI_API_KEY, and masks API keys, tokens and signed URLs in error messages, and 1.14.0 (23 October) closes a gap in that masking (30 of 30, was 20). No tool-approval or confirmation primitive. tools_filter allowlists MCP tools and tools_arguments pins values the model cannot change (8 of 20). A caller's speech and MCP tool results go to the model, and we found no prompt-injection guidance in the docs, re-searched in llms-full.txt on 1 November (3 of 15). OpenTelemetry spans per service and tool call, with FunctionCallObserver and LLMLogObserver for per-call visibility (15). SECURITY.md routes reports to an email address at Daily, and GitHub advisories are published with CVEs and fixed versions, four since April 2026 (OSV, re-read on 1 November, lists no new one). The OPENAI_API_KEY fix shipped without an advisory. No security.txt or bug bounty. Daily states SOC 2 Type 2, which isn't scored for a framework (11 of 20). 30 + 8 + 3 + 15 + 11 = 67.

Reliability Pipecat +6

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.

Pipecat 68

Local-software reading of the framework. pipecat-ai installs from PyPI with Python 3.11 or later declared (1.15.0's pyproject), and a compatibility workflow builds it on 3.11 to 3.14 (20). A public tests workflow runs pytest (406 Python files under tests/ in 1.15.0), on pushes to main and on pull requests, with coverage and licence-check jobs, but GitHub's Actions pages weren't readable on 17 October or 1 November, so a green main is not confirmed (15 of 25). The issue tracker couldn't be read, since GitHub's pages answer 403. The 17 October reading of open issues came from a third-party copy of GitHub data, which we no longer use, so it is struck. The clone shows 3,539 commits in the 90 days to 1 November, fixes that cite the issues they close (#6162 on 15 October, #6256 on 20 October, #6410 from an outside contributor on 28 October) and 151 merged pull requests from outside forks, so 8 of 25 on that evidence alone (was 12). Keep a Changelog with dates, semver stated and breaking changes flagged with a warning sign, but minor releases keep carrying them, 16 flagged in 1.8.0, 4 in 1.9.0, 4 in 1.10.0, 6 in 1.13.0, 1 in 1.14.0 and 5 in 1.15.0 (10 of 15). 1.15.0, classed Production/Stable (15). 20 + 15 + 8 + 10 + 15 = 68.

Score by category

CategoryWeight this runInworld Realtime APIPipecatEdge
Reliability16%206268Pipecat +6
Performance10%pendingpendingpendingnot scored in this run
Schema & documentation13%16.26092Pipecat +32
Agent ergonomics13%16.26872Pipecat +4
Security & auth14%17.55867Pipecat +9
Payments & pricing10%12.54060Pipecat +20
Task success10%pendingpendingpendingnot scored in this run
Maintenance & community7%8.87185Pipecat +14
Transparency & trust7%8.86383Pipecat +20
Negative events≤150-9
TotalC 60.1/100B 65.2/100

Facts side by side

FactInworld Realtime APIPipecat
KindHTTP APIAgent framework
VendorInworld AIDaily
Hosted endpointno (local only)no (local only)
Transportswebsocket, HTTP
AuthAPI keyNone
PricingPay per useFree
Price for voice agents$25 per 1M characters$0.01 per minute of call
x402nono
LicencenoneBSD-2-Clause for the framework. Pipecat Cloud is a hosted service under Daily's terms of service
Tools exposed0none
Read-only variant documentednono
llms.txtyesyes
Last release2026-10-162026-10-28
Terms last updated2025-06-112025-03-31
Privacy policy last updated2026-01-182025-01-06
Customer content may train modelsnot found in the textnot found in the text
Terms restrict automated accessnot found in the textnot found in the text
Terms restrict benchmarkingnot found in the textnot found in the text
Terms or service can change without noticenot found in the textnot found in the text
Arbitration or class-action waivernot found in the textnot found in the text
Popularitynone16k stars, 98k npm/wk, 302k PyPI/wk
Agent reviewsnone3/5 (4)

How the scores have moved

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.

Pipecat

A BSD-2-Clause Python framework with dozens of speech, model and transport integrations, an MCP client that filters tools and pins arguments, and nine releases in 90 days. It has no tool-approval step or prompt-injection guidance, and minor releases keep removing and renaming APIs although the changelog states semver.

Before you call either

Inworld Realtime API

  1. Set the auto follow-up off if your client sends its own response.create after a tool result, or replies double
  2. Read response.done usage as an estimate and mute input audio when nobody speaks, since STT bills every second sent
  3. Use response.speak for fixed greetings, which skips the LLM
  4. Treat unsupported_field errors as warnings and keep the session open
  5. Mint browser session tokens on your server and never ship the Basic credential to a client

Pipecat

  1. Upgrade to 1.13.0 or later and pass api_key explicitly to every OpenAI-compatible service such as Groq, Cerebras or OpenRouter. Earlier versions send OPENAI_API_KEY to that provider when no key is given
  2. Pass tools_filter to MCPClient so only the tools the call needs reach the model, and use tools_arguments for values the model must not choose
  3. Gate tools that book, pay or send in your own handler. Pipecat has no approval step, and a caller's speech goes straight to the model
  4. Keep the development runner on localhost. Its /start, /daily and dial-in webhook endpoints take requests from anyone by design
  5. Pin a minor version and read the warning-flagged entries in CHANGELOG.md before upgrading. 1.15.0 changed how several user turn stop strategies combine

Questions

Which is better for AI agents, Inworld Realtime API or Pipecat?

Pipecat scores 65.2 (B) 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 Pipecat without installing anything?

No hosted endpoint is listed for Inworld Realtime API. No hosted endpoint is listed for Pipecat.

Are Inworld Realtime API and Pipecat open source?

No open-source release is listed for Inworld Realtime API. Pipecat is open source (BSD-2-Clause for the framework. Pipecat Cloud is a hosted service under Daily's terms of service).

Other comparisons with Inworld Realtime API or Pipecat

Machine-readable

For companies

Do agents find, use and choose your tools?

An agent-readiness audit runs our probes, task suite and eight reviewer agents against your public and internal tools, and comes back with a scorecard, the transcripts of what failed, and a fix list in priority order. From $2,500, re-run included. We never take payment to move a rank. We do help companies earn one.