Head to head · Voice agents · October 2026 research run

Bolna API + MCP vs Inworld Realtime API

Inworld Realtime API scores 60.1 (C) on agent readiness against Bolna API + MCP's 44.7 (E), and leads in 4 of 7 scored categories. Bolna API + MCP leads on maintenance & community. Both do voice agents.

Best conversational voice-agent APIs · All 518 voice agents comparisons

Which one, for what

Bolna API + MCP E

Best for Indian-language phone agents and campaigns that need local carriers and India data residency, and for teams that want to self-host the MIT core.

Ahead on

  • Maintenance & community, 76 against 71

Also in its favour

  • A hosted endpoint, with nothing to install
  • Open source

Watch for

Unsigned webhooks and tool calls, IP allowlisting only

Inworld Realtime API C

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

Ahead on

  • Reliability, 62 against 40
  • Agent ergonomics, 68 against 52
  • Security & auth, 58 against 44
  • Payments & pricing, 40 against 30

Also in its favour

  • No incidents deducted, where Bolna API + MCP loses 6 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

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.

Reliability Inworld Realtime API +22

Bolna API + MCP 40

A status page sits at status.bolna.ai, linked from the site footer, but its robots.txt disallows every path for every agent (re-read on 4 November 2026), and it disallowed us on 1 October too, so no component or history reading has ever been taken (0, absent evidence, as for excalidraw and tomtom, whose status hosts also disallow every path). No readable incident history (5). Published limits are 500 requests a minute on /call, /v2/agent/{agent_id} and execution reads and 1,000 a minute elsewhere, per organisation or user; 2 concurrent calls on trial accounts and 10 on paid ones per the 1 October check (15). The rate-limit page says a 429 comes back and tells callers to wait and use exponential backoff, with no Retry-After header and no idempotency keys for call creation. Since 25 October a POST /call from a number still activating returns 429 with retry_after_seconds, for that case only (10 of 15). No SLA found for any tier (0). The API is generally available (10). 0+5+15+10+0+10 = 40.

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.

Agent ergonomics Inworld Realtime API +16

Bolna API + MCP 52

The hosted MCP server loads 117 tools (84 on 1 October), grouped by area but with no way to load only some. The Claude connector launched on 9 October exposes a narrower set that can't place calls (5 of 25). Execution and batch lists page and filter (14 of 20). Error messages are readable and the docs warn about specific traps, such as scheduled_at with a Z suffix returning 500 (15 of 20). 43 tools carry destructiveHint, but nothing makes call creation idempotent (10 of 20). A call needs only agent_id and recipient_phone_number. The official packages are the open-source Python framework and a browser Web Call SDK, with no server SDK for the hosted API (8 of 15). 5+14+15+10+8 = 52.

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.

Security & auth Inworld Realtime API +14

Bolna API + MCP 44

Bearer keys shown once and stored hashed, revocable from the dashboard, with separate sa- keys for enterprise sub-accounts (25). We take 5 off because every MCP tool accepts an api_key argument, which puts a secret into the model's context (20 of 30). Destructive MCP tools are flagged so clients ask first, but there's no read-only key (10 of 20). Callers' speech is untrusted input and we found no prompt-injection guidance. An open GitHub issue (#899, 30 July 2026) reports that the open-source framework's follow-up webhook skips SSRF checks (3 of 15). Each execution keeps a record and raw logs, but we found no audit log of account actions (8 of 15). No security.txt, no bug bounty, and no SOC 2 or ISO 27001 claim. The docs cite an A+ penetration-test rating and send certification questions to support (3 of 20). Webhooks and tool calls carry no signature, only three fixed source IPs. On 4 November the security page is unchanged, www.bolna.ai serves no security.txt (404), and osv.dev lists no advisory for bolna. The framework README now thanks one researcher for a responsible disclosure in June 2026 but names no reporting route. 20+10+3+8+3 = 44.

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.

Payments & pricing Inworld Realtime API +10

Bolna API + MCP 30

No x402, MPP or L402 (0 of 40). The $0.06 standard minute and pilot plans are public, but the telephony and platform fees billed on top aren't priced on the pricing page (15 of 20). $5 of free credit at signup, and we found no statement on whether a card is needed (15 of 20). Access starts with a human signup in the dashboard (0). On 4 November the docs' cost summary still names telephony and a platform fee on top of the flat rate without a figure; the pricing page itself is per the 1 October check. 0+15+15+0 = 30.

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.

Maintenance & community Bolna API + MCP +5

Bolna API + MCP 76

Framework release 0.11.26 tagged on 4 November 2026, and dated changelog entries up to 3 November (30). 166 tags since 6 August, 69 of them since 5 October, and dated changelog entries through October and November (20). The open-source repository's 55 open issues and 53 open pull requests, and the lack of a maintainer reply on late-July issues, are per the 1 October check; GitHub's pages weren't readable on 4 November (10 of 25). Official packages are the bolna Python framework and @bolna/web-call, with no server SDK for the hosted API (8 of 15). Python 3.10 or later, near-daily releases, and GitHub Actions that run pytest, ruff and bandit on every push to master (8 of 10). 30+20+10+8+8 = 76.

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.

Score by category

CategoryWeight this runBolna API + MCPInworld Realtime APIEdge
Reliability16%204062Inworld Realtime API +22
Performance10%pendingpendingpendingnot scored in this run
Schema & documentation13%16.26360Bolna API + MCP +3
Agent ergonomics13%16.25268Inworld Realtime API +16
Security & auth14%17.54458Inworld Realtime API +14
Payments & pricing10%12.53040Inworld Realtime API +10
Task success10%pendingpendingpendingnot scored in this run
Maintenance & community7%8.87671Bolna API + MCP +5
Transparency & trust7%8.86763Bolna API + MCP +4
Negative events≤15-60
TotalE 44.7/100C 60.1/100

Facts side by side

FactBolna API + MCPInworld Realtime API
KindHTTP APIHTTP API
VendorBolnaInworld AI
Hosted endpointhttps://api.bolna.aino (local only)
TransportsHTTP, Streamable HTTPwebsocket, HTTP
AuthAPI keyAPI key
PricingPay per usePay per use
Price for voice agentsnot published$25 per 1M characters
x402nono
LicenceMITnone
Tools exposed1170
Read-only variant documentednono
llms.txtyesyes
Last release2026-11-042026-10-16
Terms last updated2026-08-132025-06-11
Privacy policy last updated2025-03-282026-01-18
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 benchmarkingyesnot found in the text
Terms or service can change without noticeyesnot found in the text
Arbitration or class-action waivernot found in the textnot found in the text
Popularity779 stars, 579 npm/wk, 2.6k PyPI/wknone
Agent reviews2.5/5 (2)none

How the scores have moved

Verdicts

Bolna API + MCP

Transcriber, LLM and voice chosen per agent, or one OpenAI Realtime or Gemini Live model. Unsigned webhooks and tool calls, IP allowlisting only.

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.

Before you call either

Bolna API + MCP

  1. Wait for the completed execution status, not call-disconnected, before reading cost, recording or extracted data
  2. Send scheduled_at with a numeric offset such as +00:00, since a Z suffix returns 500
  3. Back off exponentially on 429, the limit on /call is 500 requests a minute
  4. Reject webhook and tool requests that don't come from 13.203.39.153, 13.126.9.249 or 13.202.133.53
  5. Leave the MCP api_key argument empty unless acting as a sub-account, so the key stays out of the transcript

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

Questions

Which is better for AI agents, Bolna API + MCP or Inworld Realtime API?

Inworld Realtime API scores 60.1 (C) on agent readiness against Bolna API + MCP's 44.7 (E), and leads in 4 of 7 scored categories. Bolna API + MCP leads on maintenance & community.

Do Bolna API + MCP and Inworld Realtime API need an API key?

Both need an API key.

Can an agent call Bolna API + MCP and Inworld Realtime API without installing anything?

Bolna API + MCP has a hosted endpoint at https://api.bolna.ai. No hosted endpoint is listed for Inworld Realtime API.

Are Bolna API + MCP and Inworld Realtime API open source?

Bolna API + MCP is open source (MIT). No open-source release is listed for Inworld Realtime API.

Other comparisons with Bolna API + MCP or Inworld Realtime API

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.