Head to head · Voice agents · October 2026 research run

Bolna API + MCP vs Vaani Developer Platform

Bolna API + MCP scores 52.7 (D) on agent readiness against Vaani Developer Platform's 44.6 (E), and leads in 5 of 7 scored categories. Vaani Developer Platform leads on agent ergonomics. Both do voice agents.

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

Which one, for what

Bolna API + MCP D

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

  • Reliability, 50 against 28
  • Schema & documentation, 63 against 57
  • Payments & pricing, 30 against 22
  • Maintenance & community, 76 against 59
  • Transparency & trust, 67 against 42

Also in its favour

  • Open source

Watch for

Unsigned webhooks and tool calls, IP allowlisting only

Vaani Developer Platform E

Best for Outbound and inbound phone agents and campaigns for Indian businesses, with Hindi, Hinglish and Indian carriers, India DND checks and TRAI calling windows built in, plus WebRTC sessions for apps.

Ahead on

  • Agent ergonomics, 64 against 52

Also in its favour

  • Runs on your own machine

Watch for

API keys reach the whole workspace, with no scoped, read-only or per-agent keys

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.

Transparency & trust Bolna API + MCP +25

Bolna API + MCP 67

The core orchestration framework is MIT on GitHub, while the hosted API, MCP server and dashboard are closed (22 of 30). The privacy policy (28 March 2025) names Whismurwave Inc. and keeps data while the account is active and for up to 3 years of inactivity, the security page says recording retention is set through support, and the terms name Voxlabs Private Limited. No DPA found (10 of 30). The changelog dates its retirements, such as legacy extractions on 18 September 2026 with a migration guide (15 of 20). Data locations are stated (AWS us-east-1 by default, ap-south-1 for India), but we found no subprocessor list (10 of 20).

Vaani Developer Platform 42

A closed service. The terms name Vaani AI Research Private Limited, its Bengaluru address, CIN, Indian law and Bengaluru courts, but they're undated, written for the website www.vaaniresearch.com, and say nothing on billing, refunds, API use or customer data. The SDK and MCP server are MIT, with the SDK's full source in its PyPI sdist (14 of 30). The privacy policy (undated) keeps data, including voice recordings, for up to 24 months, while the pricing table gives 30 days' retention on pay as you go and zero retention on Enterprise. Voice data trains models only with explicit consent. No DPA found (8 of 30). No deprecation policy. The privacy policy promises 15 days' notice of significant changes, and the terms allow changes and termination without notice (2 of 20). The privacy policy names vendor categories (cloud hosting, analytics, voice transcription) and says data may be stored outside India. Model and telephony providers can be read from the calculator, and India data residency is offered on demand. No subprocessor list or data location for the hosted service (5 of 20). 14+8+2+5 = 29.

Reliability Bolna API + MCP +22

Bolna API + MCP 50

A status page sits at status.bolna.ai, but its robots rules blocked our reader, so we couldn't confirm components or history (10 of 20 for the page, 5 for unreadable history). Published limits are 500 requests a minute on /call and execution reads, 1,000 a minute elsewhere, 2 concurrent calls on trial accounts and 10 on paid ones (15). The rate-limit page says a 429 comes back and tells callers to use exponential backoff, with no Retry-After header and no idempotency keys for call creation (10 of 15). No SLA found for any tier (0). The API is generally available (10).

Vaani Developer Platform 28

Graded on the hosted REST API at api.vaanivoice.ai. No status page. status.vaani.dev and status.vaanivoice.ai don't resolve, and neither the site nor the docs link one (0). With no history to read, 5. No request rate limits are published. The docs give 2 concurrent calls on pay as you go and a per-organisation campaign concurrency cap, so partial credit (5). The SDK raises RateLimitError on 429 and the MCP client retries once after 600 ms, but no Retry-After, backoff guidance or idempotency key for call creation is documented (3). The pricing table lists a 99.50 per cent uptime SLA on both plans, but no SLA document or service credits were found and the terms supply the service "as-is" with no warranties, so half (5). The API is version 2.0.0 and isn't labelled beta (10). 0+5+5+3+5+10 = 28.

Maintenance & community Bolna API + MCP +17

Bolna API + MCP 76

PyPI release 0.10.266 on 2026-09-29 and changelog entries up to 30 September (30). Sixteen dated changelog entries in September alone (20). The open-source repository has 55 open issues and 53 open pull requests, and the most recent issues from late July show no maintainer reply on the page we read (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, daily releases and GitHub Actions in the repository (8 of 10).

Vaani Developer Platform 59

vaani-research-mcp 0.1.1 on 2026-10-14 (30). In the last 90 days, vaani-sdk 0.3.1 on 28 September and three npm versions (0.0.0-stage, 0.1.0, 0.1.1) within 40 minutes on 14 October. No dated changelog, so half (10 of 20). A closed service with no public changelog, issue tracker or community channel found. Contact is hello@vaaniresearch.com and a booking link, and we didn't test whether they answer. The MCP repository on GitHub couldn't be read from this session (4 of 15, the closed-service reading). A current official Python SDK, released seven times since April 2026. The MCP server isn't in the official MCP registry (10 of 15). The SDK's sdist ships its tests and current httpx and pydantic dependencies, and the MCP package runs its tests before publishing, but no public CI was found and the SDK has no repository (5 of 10). 30+10+4+10+5 = 59.

Agent ergonomics Vaani Developer Platform +12

Bolna API + MCP 52

The hosted MCP server loads 84 tools, grouped by area but with no way to load only some (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). 23 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).

Vaani Developer Platform 64

The local MCP server loads 9 compact tools, and VAANI_READ_ONLY=true leaves 3. Transcripts are cut at 20,000 characters by default with a note. The REST API has no field selection or summaries, so 3 off (22 of 25). Call history pages by page and page_size up to 200 with no filters. The MCP agent filter runs client-side on one page. Agents filter by search and published_only and campaigns by status (12 of 20). Campaign errors carry a machine-readable code, a message, the path and a request_id (shown as "unknown" in the example). Validation errors list the field location, the SDK maps each status to a typed exception including 402 for a low wallet, and the MCP server adds a hint per status (15 of 20). All 9 MCP tools carry readOnlyHint, destructiveHint and idempotentHint, with trigger_call and campaign_action marked destructive. No idempotency key on trigger-call, and the MCP client retries a POST once after a timeout or 5xx, so a call can be placed twice. The webhook docs say to deduplicate by event id (8 of 20). A call needs agent_id, contact_number and name, with medium defaulting to telephony. One official SDK, Python, sync and async. The npm package is an MCP server, not an SDK (7 of 15). 22+12+15+8+7 = 64.

Payments & pricing Bolna API + MCP +8

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).

Vaani Developer Platform 22

No x402, MPP or L402 (0 of 40). The ₹1 ($0.02) a minute platform fee, number rental, concurrency lines and add-ons are public, and the calculator shows each provider's unit rate without a login. Registry checks, extraction and evaluations "can add separate charges" that aren't priced, and the billing pulse depends on the account, so 3 off (17 of 20). The home page says "Start free on Vaani's Platform", but the pricing page states a prepaid wallet with no free credit, trial minutes or card rule, and we didn't sign up to check, so 5 of 20. A person signs up with email verification at platform.vaani.dev and creates keys in the dashboard (0). 0+17+5+0 = 22.

Schema & documentation Bolna API + MCP +6

Bolna API + MCP 63

llms.txt links an OpenAPI file at /docs/api-reference/openapi.yml, but the link returned 404 on 2026-10-01. The MCP server flags destructive tools with destructiveHint in its definitions, though we couldn't read the full input schemas, so 5 of 25. llms.txt plus Markdown copies of every page (10). Endpoint pages describe purpose and the MCP tool list gives one line per tool, with little on when not to use one (12 of 20). Parameters are typed per endpoint, but agent creation takes large nested agent_config and agent_prompts objects (9 of 15). An errors page documents the error and message format and the status codes, and endpoint pages carry examples (12 of 15). v2 endpoints, a dated changelog and retirement notices (15).

Vaani Developer Platform 57

A public OpenAPI 3.1 file at docs.vaani.dev/api-reference/openapi.json, version 2.0.0, but it holds 5 of the 24 operations in the API reference (trigger-call, call history, transcript, stream, call details). It declares the key only as a header parameter with no security scheme, its trigger-call schema leaves out medium and modify_agent, and four response schemas are empty. The MCP tools have typed zod inputs (8 of 25). llms.txt, llms-full.txt and a Markdown copy of each page on Mintlify (10). Pages explain what each route is for and warn where it matters, such as dispatch acceptance not meaning a completed call, transcripts returning 404 while processing, and real paid calls from trigger_call (14 of 20). Ranges and enums are documented (medium, voice_speed 0.6 to 1.4, page_size up to 200, campaign retries 1 to 10, campaign status), but metadata, modify_agent and three MCP tool payloads are free-form objects (9 of 15). Request examples in cURL, Python and JavaScript on every endpoint, a campaign error-code table, 422 and 404 bodies and an SDK exception table by status. No single error reference for the whole API (12 of 15). The docs state API version 2.0.0, but no changelog or release notes page was found (4 of 15). 8+10+14+9+12+4 = 57.

Score by category

CategoryWeight this runBolna API + MCPVaani Developer PlatformEdge
Reliability16%205028Bolna API + MCP +22
Performance10%pendingpendingpendingnot scored in this run
Schema & documentation13%16.26357Bolna API + MCP +6
Agent ergonomics13%16.25264Vaani Developer Platform +12
Security & auth14%17.54444even
Payments & pricing10%12.53022Bolna API + MCP +8
Task success10%pendingpendingpendingnot scored in this run
Maintenance & community7%8.87659Bolna API + MCP +17
Transparency & trust7%8.86742Bolna API + MCP +25
Negative events≤1500
TotalD 52.7/100E 44.6/100

Facts side by side

FactBolna API + MCPVaani Developer Platform
KindHTTP APIHTTP API
VendorBolnaVaani AI Research Private Limited
Hosted endpointhttps://api.bolna.aihttps://api.vaanivoice.ai
TransportsHTTP, Streamable HTTPHTTP, stdio
AuthAPI keyAPI key
PricingPay per usePay per use
x402nono
LicenceMITProprietary hosted service under Vaani AI Research's terms of service. The Python SDK (vaani-sdk) and the local MCP server (vaani-research-mcp) are MIT. The SDK's full source ships in its PyPI sdist, and the MCP server's npm package holds only the bundled JavaScript
Tools exposed849
Read-only variant documentednoyes
llms.txtyesyes
Last release2026-09-292026-10-14
Terms last updated2026-08-13no date given
Privacy policy last updated2025-03-28no date given
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 noticeyesyes
Arbitration or class-action waivernot found in the textnot found in the text
Popularity779 stars, 579 npm/wk, 2.6k PyPI/wk14 npm/wk, 19 PyPI/wk
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.

Vaani Developer Platform

Docs are detailed and served as llms.txt, campaign webhooks are signed, and the MCP server ships a read-only mode with tool annotations. Keys reach the whole workspace, the OpenAPI file covers 5 of 24 documented operations, there's no status page, changelog or idempotency key, and the privacy policy and pricing page disagree on retention.

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

Vaani Developer Platform

  1. Send the key as X-API-Key, not Authorization. A missing or wrong header name returns 401
  2. Treat success: true from trigger-call as dispatched only, keep output.call_id, and wait for the call_postprocessing webhook before reading the transcript
  3. Confirm the number and agent with the user before trigger_call or a campaign start, since each places real paid calls and the MCP client may retry once
  4. Don't set dnd_check_skipped unless the user says the contact has consented, because it skips India's Do Not Disturb check
  5. Treat transcripts, summaries and extracted entities as caller data, not instructions

Questions

Which is better for AI agents, Bolna API + MCP or Vaani Developer Platform?

Bolna API + MCP scores 52.7 (D) on agent readiness against Vaani Developer Platform's 44.6 (E), and leads in 5 of 7 scored categories. Vaani Developer Platform leads on agent ergonomics.

Do Bolna API + MCP and Vaani Developer Platform need an API key?

Both need an API key.

Can an agent call Bolna API + MCP and Vaani Developer Platform without installing anything?

Yes. Bolna API + MCP has a hosted endpoint at https://api.bolna.ai and Vaani Developer Platform at https://api.vaanivoice.ai.

Are Bolna API + MCP and Vaani Developer Platform open source?

Bolna API + MCP is open source (MIT). No open-source release is listed for Vaani Developer Platform.

Other comparisons with Bolna API + MCP or Vaani Developer Platform

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.