{
  "data": {
    "a": {
      "slug": "assemblyai-voice-agent",
      "name": "AssemblyAI Voice Agent API",
      "vendor": "AssemblyAI, Inc.",
      "vendorUrl": "https://www.assemblyai.com",
      "kind": "http-api",
      "category": "voice-agents",
      "summary": "AssemblyAI's Voice Agent API runs a spoken conversation over one WebSocket, combining its own speech-to-text, language model and text-to-speech. Agents are stored through a REST API and reached from a browser, a server or an inbound Twilio SIP number.",
      "url": "https://www.anchorterminal.com/tools/assemblyai-voice-agent",
      "markdownUrl": "https://www.anchorterminal.com/tools/assemblyai-voice-agent.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/assemblyai-voice-agent.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/assemblyai-voice-agent.json",
      "dns": "assemblyai-voice-agent.grade.anchorterminal.com",
      "repo": "https://github.com/AssemblyAI/voice-agent-starter-python",
      "license": "Proprietary service under AssemblyAI's Terms of Service. The two starter repositories on GitHub carry no licence file",
      "transports": [
        "http"
      ],
      "remoteUrl": "wss://agents.assemblyai.com/v1/ws",
      "packages": [],
      "auth": "api-key",
      "authNotes": "Self-serve API key from the dashboard, sent in the `Authorization` header on REST calls and on the WebSocket upgrade, with or without a `Bearer` prefix. Keys belong to a project and can be created and deleted in the dashboard (2 on the free plan, 4 on pay as you go, 25 on a contract). No scopes or expiry were found. Browser clients use a one-time token from `GET /v1/token`, redeemable within 1 to 600 seconds and passed as the `token` query parameter.",
      "pricing": "usage",
      "pricingNotes": "No Voice Agent API price was found on AssemblyAI's pricing page or in its billing docs on 2 November 2026. On 9 October both gave $4.50 an hour ($0.075 a minute), billed per second from socket open to session end, covering speech-to-text, the managed model, speech output and recordings. The $50 new-account credit is now listed for speech-to-text, Speech Understanding and Guardrails only. LLM Gateway tokens and Twilio carrier minutes are billed separately (https://www.assemblyai.com/pricing, https://www.assemblyai.com/docs/billing-and-pricing, checked 2026-11-02).",
      "priceSummary": "Pay per use",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the Voice Agent docs, the two API description files, the billing docs or the pricing page. Payment is by card into a prepaid balance (checked 2026-10-09).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-09"
      },
      "docsUrl": "https://www.assemblyai.com/docs/voice-agents/voice-agent-api",
      "llmsTxt": "https://www.assemblyai.com/docs/llms.txt",
      "openapi": "https://www.assemblyai.com/docs/api-reference/specs/voice-agent-api.yaml",
      "capabilities": [
        "voice.agent",
        "voice.pipeline",
        "voice.tools",
        "voice.telephony"
      ],
      "tags": [
        "hosted",
        "closed-source",
        "llms-txt",
        "webhooks",
        "streaming",
        "pipeline",
        "python",
        "javascript",
        "status-page",
        "soc2"
      ],
      "lastRelease": "2026-09-16",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 56.4,
        "grade": "C",
        "agentReady": false,
        "rank": 743,
        "ranked": true,
        "rankOf": 1266,
        "categoryRank": 16,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 72,
          "maintenance": 64,
          "payments": 0,
          "reliability": 65,
          "schema": 83,
          "security": 55,
          "transparency": 68
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "low",
          "date": "2026-11-02"
        },
        "negative": -3,
        "negativeNotes": [
          "2026-09-01: AssemblyAI's changelog entry \"Fix: Reader Role Permissions Enforced for API Tokens\" says dashboard users with the Reader role could create, edit and delete API tokens, the keys that also open Voice Agent sessions. A released fix of a described flaw with no advisory takes -3, read as assemblyai-stt on the same entry (https://www.assemblyai.com/changelog)"
        ],
        "verdict": "The socket has an AsyncAPI file, typed error codes with retry advice and a 30-second resume window, and the status feed shows only partial realtime incidents since August. On 2 November AssemblyAI's pricing page and billing docs no longer listed the API or its rate, no concurrent-session limit is published, and telephony is inbound only.",
        "bestFor": "A developer who wants one managed pipeline at a flat rate and is content with AssemblyAI's own speech models and voices, with an optional model of their own.",
        "strengths": [
          "AsyncAPI 3.0 file for the socket, an OpenAPI file for the token endpoint, and a Markdown copy of every Voice Agent docs page",
          "Session errors carry a code, a message and sometimes the offending field, and the docs name the three codes that are safe to retry",
          "HTTP tool header values are write-only and encrypted at rest, and tool calls are limited to public `https` hosts with redirects refused",
          "Every session is stored with a stereo recording, a JSON timeline of turns and tool calls, and signed webhooks with a delivery history",
          "Pre-connect requests (16 September 2026) can look up an inbound caller before the call is answered"
        ],
        "weaknesses": [
          "No Voice Agent API price on the pricing page or in the billing docs on 2 November 2026, and the free credit no longer names it",
          "No number is published for the concurrent-session limit that the `concurrency_exceeded` error enforces",
          "status.assemblyai.com lists the Asynchronous API, Streaming API and LLM Gateway, with no Voice Agent component",
          "Telephony is inbound only, over a SIP trunk on a Twilio account the customer owns",
          "API keys have no scopes or expiry, and opting out of model training needs a paid plan"
        ],
        "agentNotes": [
          "Send `session.end` before closing the socket. Without it the session stays resumable, and billed, for 30 seconds",
          "Retry only `at_capacity`, `concurrency_exceeded` and `internal_error`, with backoff. Every other session error code is fatal",
          "Send `tool.result` inside the `reply.done` handler, not straight after `tool.call`",
          "Mint a one-time token with `GET /v1/token` for browser clients and never ship the API key to a page",
          "Deduplicate webhooks on `event_id`, and verify `X-AAI-Signature` against the raw body bytes because a 401 is not retried"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 4,
        "avgRating": 3.5,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "low",
            "grade": "C",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 56.4
          }
        ],
        "editorialScores": {
          "ergonomics": 72,
          "maintenance": 64,
          "payments": 0,
          "reliability": 65,
          "schema": 83,
          "security": 55,
          "transparency": 51
        },
        "provenanceScore": 84,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-02",
            "maintenance": "2026-11-02",
            "payments": "2026-11-02",
            "reliability": "2026-11-02",
            "schema": "2026-11-02",
            "security": "2026-11-02",
            "transparency": "2026-11-02"
          },
          "last": "2026-11-02",
          "lastMoved": "2026-11-02",
          "oldest": "2026-11-02",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "install": "git clone https://github.com/AssemblyAI/voice-agent-starter-python",
        "http": "curl -X POST https://agents.assemblyai.com/v1/agents \\\n  -H \"Authorization: $ASSEMBLYAI_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"name\": \"Support Assistant\", \"system_prompt\": \"You are a friendly support agent.\", \"greeting\": \"Hi, how can I help?\", \"voice\": {\"voice_id\": \"alba\"}}'",
        "claudeCode": "claude mcp add --transport http --scope user assemblyai-docs https://mcp.assemblyai.com/docs"
      },
      "letme": {
        "capability": "https://letme.dev/voice.agent",
        "tool": "https://letme.dev/assemblyai-voice-agent"
      },
      "sameCompany": [
        "assemblyai-stt"
      ],
      "area": "voice",
      "provenance": {
        "legalEntity": "AssemblyAI, Inc.",
        "domain": "assemblyai.com",
        "domainRegistered": "2016-12-24",
        "endpointOnVendorDomain": true,
        "terms": "https://www.assemblyai.com/legal/terms-of-service",
        "privacy": "https://www.assemblyai.com/legal/privacy-policy",
        "statusPage": "https://status.assemblyai.com",
        "changelog": "https://www.assemblyai.com/changelog",
        "securityTxt": "unknown",
        "checked": "2026-11-02",
        "notes": [
          "www.assemblyai.com's robots.txt disallows /.well-known, so security.txt wasn't read and securityTxt stays unknown.",
          "The subprocessor list at /legal/subprocessors redirects to app.vanta.com, whose robots.txt disallows every path.",
          "status.assemblyai.com disallows /api/ and /embed/; history.atom was read."
        ],
        "score": 84
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/assemblyai-voice-agent.json",
      "live": {
        "slug": "assemblyai-voice-agent",
        "probe": {
          "target": "wss://agents.assemblyai.com/v1/ws",
          "method": "get",
          "lastAt": "2026-11-02T15:06:31.600354091Z",
          "lastOk": false,
          "lastStatus": 0,
          "lastMs": 0,
          "lastNote": "unsupported protocol scheme \"wss\"",
          "authRequired": false,
          "uptime24h": 0,
          "uptime30d": 0,
          "p50ms24h": 0,
          "p95ms24h": 0,
          "samples24h": 249,
          "samples30d": 6006,
          "days": [
            {
              "date": "2026-10-09",
              "probes": 85,
              "ok": 0
            },
            {
              "date": "2026-10-10",
              "probes": 247,
              "ok": 0
            },
            {
              "date": "2026-10-11",
              "probes": 247,
              "ok": 0
            },
            {
              "date": "2026-10-12",
              "probes": 247,
              "ok": 0
            },
            {
              "date": "2026-10-13",
              "probes": 248,
              "ok": 0
            },
            {
              "date": "2026-10-14",
              "probes": 249,
              "ok": 0
            },
            {
              "date": "2026-10-15",
              "probes": 253,
              "ok": 0
            },
            {
              "date": "2026-10-16",
              "probes": 252,
              "ok": 0
            },
            {
              "date": "2026-10-17",
              "probes": 253,
              "ok": 0
            },
            {
              "date": "2026-10-18",
              "probes": 256,
              "ok": 0
            },
            {
              "date": "2026-10-19",
              "probes": 255,
              "ok": 0
            },
            {
              "date": "2026-10-20",
              "probes": 252,
              "ok": 0
            },
            {
              "date": "2026-10-21",
              "probes": 253,
              "ok": 0
            },
            {
              "date": "2026-10-22",
              "probes": 253,
              "ok": 0
            },
            {
              "date": "2026-10-23",
              "probes": 248,
              "ok": 0
            },
            {
              "date": "2026-10-24",
              "probes": 251,
              "ok": 0
            },
            {
              "date": "2026-10-25",
              "probes": 250,
              "ok": 0
            },
            {
              "date": "2026-10-26",
              "probes": 252,
              "ok": 0
            },
            {
              "date": "2026-10-27",
              "probes": 249,
              "ok": 0
            },
            {
              "date": "2026-10-28",
              "probes": 251,
              "ok": 0
            },
            {
              "date": "2026-10-29",
              "probes": 249,
              "ok": 0
            },
            {
              "date": "2026-10-30",
              "probes": 248,
              "ok": 0
            },
            {
              "date": "2026-10-31",
              "probes": 251,
              "ok": 0
            },
            {
              "date": "2026-11-01",
              "probes": 249,
              "ok": 0
            },
            {
              "date": "2026-11-02",
              "probes": 158,
              "ok": 0
            }
          ],
          "outages": [
            {
              "start": "2026-10-09T15:42:56.660671906Z",
              "end": "0001-01-01T00:00:00Z",
              "note": "unsupported protocol scheme \"wss\""
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.assemblyai.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-11-02T15:05:54.128881296Z"
        },
        "githubStars": 3,
        "securityTxt": {
          "url": "https://assemblyai.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-11-01T15:42:23.001870715Z"
        },
        "llmsTxt": {
          "url": "https://www.assemblyai.com/docs/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-11-01T15:12:59.363374148Z"
        },
        "domain": {
          "domain": "assemblyai.com",
          "registered": "2016-12-24",
          "source": "https://rdap.verisign.com/com/v1/domain/assemblyai.com",
          "checkedAt": "2026-11-01T14:13:09.893972788Z"
        },
        "pages": [
          {
            "url": "https://www.assemblyai.com/docs/billing-and-pricing",
            "kind": "pricing",
            "status": 304,
            "checkedAt": "2026-11-02T07:29:57.464347617Z",
            "changedAt": "2026-11-01T06:56:52.359628539Z",
            "fingerprint": "d24129346eb4"
          }
        ],
        "github": {
          "repo": "assemblyai/voice-agent-starter-python",
          "checkedAt": "2026-11-02T08:31:58.26657978Z",
          "stars": 3,
          "archived": false,
          "issuesEnabled": true,
          "pushedAt": "2026-08-16T07:35:00Z",
          "openIssues": 0,
          "openPRs": 0,
          "issuesOpened90d": 0,
          "issuesClosed90d": 0,
          "prsMerged90d": 0
        },
        "updatedAt": "2026-11-02T15:06:31.600354091Z"
      }
    },
    "answer": "AssemblyAI Voice Agent API scores 56.4 (C) on agent readiness against Vaani Developer Platform's 44.6 (E), and leads in 6 of 7 scored categories. Vaani Developer Platform leads on payments \u0026 pricing.",
    "b": {
      "slug": "vaani-voice",
      "name": "Vaani Developer Platform",
      "vendor": "Vaani AI Research Private Limited",
      "vendorUrl": "https://www.vaani.dev",
      "kind": "http-api",
      "category": "voice-agents",
      "summary": "Vaani is a hosted voice-agent platform from Bengaluru for outbound and inbound phone calls, browser WebRTC sessions and calling campaigns. Agents reach it through a REST API, a Python SDK and a local MCP server.",
      "url": "https://www.anchorterminal.com/tools/vaani-voice",
      "markdownUrl": "https://www.anchorterminal.com/tools/vaani-voice.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/vaani-voice.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/vaani-voice.json",
      "dns": "vaani-voice.grade.anchorterminal.com",
      "license": "Proprietary 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",
      "transports": [
        "http",
        "stdio"
      ],
      "remoteUrl": "https://api.vaanivoice.ai",
      "packages": [
        {
          "registry": "pypi",
          "name": "vaani-sdk"
        },
        {
          "registry": "npm",
          "name": "vaani-research-mcp"
        }
      ],
      "auth": "api-key",
      "authNotes": "An API key (`vaani_...`) sent as the `X-API-Key` header, created by a signed-in user in the dashboard under Settings, API Keys. Keys are shown once, several can be active, and rotation means creating a new one and deleting the old one. Every key reaches the whole workspace, with no per-agent, read-only or scoped keys. The live-captions WebSocket URL carries its own short-lived token in the query string, bound to one call (24 hours by default). Campaign webhooks are signed with HMAC-SHA256 over a timestamp and the body.",
      "pricing": "usage",
      "pricingNotes": "Pay as you go from a prepaid wallet. The Vaani platform fee is ₹1 ($0.02) a minute, with telephony, speech recognition, the language model and the voice billed on top at the providers' unit rates shown in the calculator. The page's illustrative production stack comes to ₹5.66 a minute. A phone number is ₹600 ($10) a month, extra concurrency ₹2,000 for 5 lines a month, and the plan includes 2 concurrent calls. Warm transfers (₹0.50) and two other add-ons are free under an early launch offer. Bringing your own provider keys needs Enterprise, which is priced on request. No free credit or trial allowance is stated (https://www.vaani.dev/pricing, checked 2026-11-02).",
      "priceSummary": "$10 / mo",
      "where": "both",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the docs (llms-full.txt), the OpenAPI file, the pricing page or the SDK and MCP source. Access starts with an email sign-up and a dashboard key, and calls are paid from a prepaid wallet (checked 2026-11-02).",
        "endpoints": []
      },
      "toolCount": 9,
      "popularity": {
        "githubStars": null,
        "npmWeekly": 14,
        "pypiWeekly": 19,
        "asOf": "2026-11-02"
      },
      "docsUrl": "https://docs.vaani.dev",
      "llmsTxt": "https://docs.vaani.dev/llms.txt",
      "openapi": "https://docs.vaani.dev/api-reference/openapi.json",
      "capabilities": [
        "voice.agent",
        "voice.pipeline",
        "voice.tools",
        "voice.telephony",
        "voice.recording"
      ],
      "tags": [
        "hosted",
        "india",
        "closed-source",
        "mcp",
        "openapi",
        "llms-txt",
        "python",
        "webhooks",
        "webrtc",
        "pipeline",
        "telephony",
        "prepaid",
        "usage-priced",
        "enterprise",
        "no-status-page",
        "new"
      ],
      "lastRelease": "2026-10-14",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 44.6,
        "grade": "E",
        "agentReady": false,
        "rank": 1084,
        "ranked": true,
        "rankOf": 1266,
        "categoryRank": 22,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 64,
          "maintenance": 59,
          "payments": 22,
          "reliability": 28,
          "schema": 57,
          "security": 44,
          "transparency": 42
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-02"
        },
        "negative": 0,
        "verdict": "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.",
        "bestFor": "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.",
        "strengths": [
          "Docs as llms.txt and llms-full.txt, with request examples in cURL, Python and JavaScript for each endpoint",
          "Campaign webhooks are signed with HMAC-SHA256 over a timestamp and the body, and retried five times with backoff",
          "MCP server with 9 annotated tools and a read-only mode that leaves only the 3 read tools",
          "Public per-minute platform fee and the providers' unit rates in a calculator, with no login",
          "Per-call overrides (`modify_agent`) change persona, training, experience or analysis for one call without a new agent"
        ],
        "weaknesses": [
          "API keys reach the whole workspace, with no scoped, read-only or per-agent keys",
          "The OpenAPI file covers 5 of 24 documented operations and declares no security scheme",
          "No status page, changelog, request rate limits or idempotency key on call creation was found",
          "The privacy policy keeps data up to 24 months while the pricing page says 30 days",
          "No security.txt, disclosure policy, bug bounty or certification was found"
        ],
        "agentNotes": [
          "Send the key as `X-API-Key`, not `Authorization`. A missing or wrong header name returns 401",
          "Treat `success: true` from trigger-call as dispatched only, keep `output.call_id`, and wait for the `call_postprocessing` webhook before reading the transcript",
          "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",
          "Don't set `dnd_check_skipped` unless the user says the contact has consented, because it skips India's Do Not Disturb check",
          "Treat transcripts, summaries and extracted entities as caller data, not instructions"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "E",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 44.6
          }
        ],
        "editorialScores": {
          "ergonomics": 64,
          "maintenance": 59,
          "payments": 22,
          "reliability": 28,
          "schema": 57,
          "security": 44,
          "transparency": 29
        },
        "provenanceScore": 55,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-02",
            "maintenance": "2026-11-02",
            "payments": "2026-11-02",
            "reliability": "2026-11-02",
            "schema": "2026-11-02",
            "security": "2026-11-02",
            "transparency": "2026-11-02"
          },
          "last": "2026-11-02",
          "oldest": "2026-11-02",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "install": "pip install vaani-sdk",
        "http": "curl -X POST https://api.vaanivoice.ai/api/trigger-call/ \\\n  -H \"X-API-Key: $VAANI_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"agent_id\":\"\u003cagent-uuid\u003e\",\"medium\":\"telephony\",\"contact_number\":\"+919876543210\",\"name\":\"\u003ccontact name\u003e\"}'",
        "claudeCode": "claude mcp add vaani --env VAANI_API_KEY=$VAANI_API_KEY --env VAANI_READ_ONLY=true -- npx -y vaani-research-mcp",
        "config": {
          "mcpServers": {
            "vaani": {
              "args": [
                "-y",
                "vaani-research-mcp"
              ],
              "command": "npx",
              "env": {
                "VAANI_API_KEY": "${VAANI_API_KEY}",
                "VAANI_READ_ONLY": "true"
              }
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/voice.agent",
        "tool": "https://letme.dev/vaani-voice"
      },
      "area": "voice",
      "unitPrices": [
        {
          "item": "Platform fee, pay as you go",
          "unit": "call-minute",
          "usd": 0.02,
          "note": "₹1 a minute. Telephony, speech recognition, LLM and voice billed on top at provider rates"
        },
        {
          "item": "Phone number rental",
          "unit": "month",
          "usd": 10,
          "note": "₹600 a month, varies by country"
        },
        {
          "item": "Warm transfer",
          "unit": "tx",
          "usd": 0.01,
          "note": "₹0.50 a transfer, free under the early launch offer. The transferred leg's telephony is extra"
        }
      ],
      "provenance": {
        "legalEntity": "Vaani AI Research Private Limited (Bengaluru, India, CIN U62099KA2025PTC201212)",
        "domain": "vaani.dev",
        "domainRegistered": "2026-10-02",
        "domainNote": "vaani.dev is a new brand domain, registered on 2 October 2026 per RDAP. The API and docs host vaanivoice.ai was registered on 11 March 2026, and the company domain vaaniresearch.com on 18 July 2024.",
        "endpointOnVendorDomain": true,
        "terms": "https://www.vaani.dev/legal/terms",
        "privacy": "https://www.vaani.dev/legal/privacy",
        "statusPage": "",
        "changelog": "",
        "securityTxt": "none",
        "checked": "2026-11-02",
        "notes": [
          "The terms and privacy policy name Vaani AI Research Private Limited, registered under Indian law at 17, 2nd Floor, 7th Main Road, II Stage, Hoysala Nagar, Indiranagar, Bengaluru 560038, with Indian law and Bengaluru courts. The terms footer gives the CIN U62099KA2025PTC201212. Neither page carries a date.",
          "The terms are written for the website www.vaaniresearch.com and cover acceptable use, liability and termination without notice. They say nothing about billing, refunds, API use or customer data.",
          "No security.txt on www.vaani.dev or www.vaaniresearch.com (404). status.vaani.dev and status.vaanivoice.ai don't resolve and no status page is linked.",
          "No changelog or release notes page was found in the docs or on the site. PyPI and npm release dates are the only dated record.",
          "docs.vaani.dev's robots.txt allows crawling and carries Content-Signal ai-train=yes, search=yes, ai-input=yes. www.vaani.dev and www.vaaniresearch.com answer robots.txt with 404."
        ],
        "score": 55
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/vaani-voice.json",
      "live": {
        "slug": "vaani-voice",
        "probe": {
          "target": "https://api.vaanivoice.ai",
          "method": "get",
          "lastAt": "2026-11-02T15:07:03.611312147Z",
          "lastOk": true,
          "lastStatus": 200,
          "lastMs": 724,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 711,
          "p95ms24h": 804,
          "samples24h": 41,
          "samples30d": 41,
          "days": [
            {
              "date": "2026-11-02",
              "probes": 41,
              "ok": 41
            }
          ]
        },
        "updatedAt": "2026-11-02T15:07:03.611312147Z"
      }
    },
    "edges": [
      {
        "by": 37,
        "category": "reliability",
        "leads": "assemblyai-voice-agent",
        "name": "Reliability",
        "reasons": {
          "a": "Scored with the hosted lines. Statuspage at status.assemblyai.com with component history, read from history.atom on 2 November, but its components are the Asynchronous API, Streaming API and LLM Gateway and none is the Voice Agent API (15 of 20). Thirteen incidents from 4 August to 2 November 2026 (14 August to 28 October) and none names the Voice Agent API. Four touch the realtime speech-to-text it runs on, all partial. New EU streaming sessions were refused for 12 minutes on 19 August, with 30 minutes of added latency on the US endpoint on 25 August, two hours of rejected Universal-3.6 Pro Realtime sessions on the US endpoint on 6 October (the EU endpoint unaffected), and some Real-time sessions failing with 502 after a temporary-token change on 28 October until it was rolled back. Whether agent sessions were affected isn't stated. Read as minor incidents touching the product, as assemblyai-stt reads the same feed (20, was 15, which isn't a checklist value). A per-account concurrent-session limit is enforced and no figure is published for it (0 of 15). The events reference (re-read on 2 November) names `at_capacity`, `concurrency_exceeded` and `internal_error` as the only retryable codes and says to reconnect with backoff, and sessions resume for 30 seconds. Webhooks carry a stable `event_id`. No idempotency key on `POST /v1/agents` (10 of 15). A Service Level Agreement of 99.9 per cent a month with credits, written against an Order Form, per the 9 October check (10). No beta label on the Voice Agent pages (10). 15+20+0+10+10+10 = 65.",
          "b": "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."
        },
        "scores": {
          "a": 65,
          "b": 28
        }
      },
      {
        "by": 26,
        "category": "schema",
        "leads": "assemblyai-voice-agent",
        "name": "Schema \u0026 documentation",
        "reasons": {
          "a": "An AsyncAPI 3.0 file describes the socket and an OpenAPI 3.0.3 file the token endpoint. No description file was found for the agents, sessions and webhook REST endpoints, and the AsyncAPI file lacks `language_codes`, `voice_focus`, `transcript.agent.delta` and `is_error`, which the docs added on 23 July 2026 (19 of 25). llms.txt, a Markdown copy of each page and a docs MCP server (10). Operations and fields say what they are for and when to use them, such as when to choose `hold` over `interactive` execution (17 of 20). Enums, ranges and defaults on audio encoding, turn detection and timeouts. Tool `parameters` are a JSON Schema the server does not validate at `session.update` (12 of 15). Examples in cURL, Python and JavaScript, and tables of session error codes with close codes (13 of 15). A dated public changelog tagged by product and a `/v1` path, with no written versioning policy found (12 of 15).",
          "b": "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."
        },
        "scores": {
          "a": 83,
          "b": 57
        }
      },
      {
        "by": 26,
        "category": "transparency",
        "leads": "assemblyai-voice-agent",
        "name": "Transparency \u0026 trust",
        "reasons": {
          "a": "A closed service with a clear service agreement. The starter repositories have no licence file (15 of 30). The Terms of Service grant a licence to train on Customer Data by default, the opt-out needs a paid plan, and the retention page gives periods for streaming, sync, dictation, asynchronous and LLM Gateway data but none for Voice Agent sessions, which are recorded and stored. A DPA is published and the privacy policy states Data Privacy Framework certification (14 of 30). The changelog dates deprecations ahead of time, such as the 11 July 2026 notice of a change on 7 August, and the terms promise reasonable prior notice of major changes. No written deprecation policy was found (12 of 20). The subprocessor list at /legal/subprocessors redirects to a Vanta trust centre whose robots.txt disallows every path, so it is unread. US and EU endpoints are mentioned, with no EU host named for the Voice Agent API in the pages read (10 of 20). 15+14+12+10 = 51.",
          "b": "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."
        },
        "scores": {
          "a": 68,
          "b": 42
        }
      },
      {
        "by": 22,
        "category": "payments",
        "leads": "vaani-voice",
        "name": "Payments \u0026 pricing",
        "reasons": {
          "a": "No x402, MPP or L402 (0 of 40). On 2 November the pricing page lists speech-to-text, dictation, text-to-speech and LLM Gateway prices but no Voice Agent API price, and the billing docs have no Voice Agent section. The $4.50 an hour rate the 9 October check read on both is no longer published, and no other price page was found (0, was 20). The billing docs now say new accounts' $50 of credit applies to pre-recorded and real-time speech-to-text, Speech Understanding and Guardrails, without naming the Voice Agent API, where on 9 October they said it was covered (0, was 20). A person has to sign up in a browser to get the first key, and no key-creation API was found (0). 0+0+0+0 = 0.",
          "b": "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."
        },
        "scores": {
          "a": 0,
          "b": 22
        }
      },
      {
        "by": 11,
        "category": "security",
        "leads": "assemblyai-voice-agent",
        "name": "Security \u0026 auth",
        "reasons": {
          "a": "Plain API keys per project, created and deleted in the dashboard, with no scopes or expiry found (20 of 30). Browser clients pass a token in the `token` query parameter. We took no deduction because the token is one-time and redeemable for at most 600 seconds, which is a judgement call, as for assemblyai-stt. A read-only Reader role exists for dashboard members but not for keys. HTTP tool header values are write-only and encrypted at rest, tool calls go only to public `https` hosts with redirects refused, and the docs show how to gate tools by conversation state. No built-in confirmation step before a tool that writes (10 of 20). Caller speech and tool results reach a model. Tool arguments are drawn only from user turns and tool results since 26 August 2026 and tool responses are capped, but no prompt-injection guidance was found (8 of 15). Sessions keep a timeline with tool calls, webhook deliveries are logged per session, usage is broken down by key, and the dashboard has activity logs (12 of 15). The security page states a SOC 2 Type 2 report (per the 9 October check, not re-read on 2 November), the trust centre is on app.vanta.com, whose robots.txt disallows every path, and no bug bounty, disclosure policy or public advisory was found. www.assemblyai.com's robots.txt closes `/.well-known`, so security.txt is unread. Read as assemblyai-stt on the same evidence, a SOC 2 claim with no disclosure route (5, was 12). 20+10+8+12+5 = 55.",
          "b": "Plain revocable API keys, shown once, several active at a time and rotated by creating a new key and deleting the old one. Every key reaches the whole workspace, with no scoped, read-only or per-agent keys (20). Campaign webhooks are signed with HMAC-SHA256 over a timestamp and the body, with a five-minute replay window in the example (+2). The live-captions URL carries a call-bound token in the query string for 24 hours by default, the documented way for browsers to connect, so 3 off as a judgement call, less than the full 10 because it isn't the account key (19 of 30). The MCP server has a read-only mode and destructive annotations, and its docs, tool descriptions and bundled prompt say to confirm the number and agent with the user before a call. The API itself has no read-only key and nothing stops a call without confirmation (12 of 20). The tool returns transcripts, summaries and entities drawn from callers' speech. No guidance on treating them as untrusted data was found. Agent guardrails exist for the voice agent's own replies (3 of 15). Each call keeps a record in call history and call details, and keys are labelled so calls can be traced to a key, but no account or key audit log is documented (7 of 15). No security.txt (404 on both domains), disclosure policy, bug bounty or certification. vaaniresearch.com marks its security standards \"In Progress\", the pricing page lists HIPAA compliance on Enterprise with no report or BAA found, and the privacy policy promises breach notice in line with applicable law (3 of 20). 19+12+3+7+3 = 44."
        },
        "scores": {
          "a": 55,
          "b": 44
        }
      },
      {
        "by": 8,
        "category": "ergonomics",
        "leads": "assemblyai-voice-agent",
        "name": "Agent ergonomics",
        "reasons": {
          "a": "Scored as an API. Events are small typed JSON, HTTP tool responses are capped at 8 KiB before they reach the model, and the session list leaves artefacts out (18 of 25). `GET /v1/sessions` pages by `cursor` with `limit` from 1 to 200 and filters on `status` and `agent_id` (18 of 20). Errors carry `code`, `message` and sometimes `param`, and REST validation errors name the field (17 of 20). No idempotency keys on REST writes. Sessions resume within 30 seconds, webhooks dedupe on `event_id`, and `hold` mode silences the agent during long tools (10 of 20). An agent needs three fields (`name`, `system_prompt`, `voice`). The official Python and Node SDKs have no Voice Agent client, so callers write JSON over a socket or start from the two starter repositories (9 of 15).",
          "b": "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."
        },
        "scores": {
          "a": 72,
          "b": 64
        }
      }
    ],
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "AssemblyAI, Inc.",
        "b": "Vaani AI Research Private Limited",
        "name": "Vendor"
      },
      {
        "a": "wss://agents.assemblyai.com/v1/ws",
        "b": "https://api.vaanivoice.ai",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP",
        "b": "HTTP, stdio",
        "name": "Transports"
      },
      {
        "a": "API key",
        "b": "API key",
        "name": "Auth"
      },
      {
        "a": "Pay per use",
        "b": "Pay per use",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Proprietary service under AssemblyAI's Terms of Service. The two starter repositories on GitHub carry no licence file",
        "b": "Proprietary 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",
        "name": "Licence"
      },
      {
        "a": "none",
        "b": "9",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "yes",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-09-16",
        "b": "2026-10-14",
        "name": "Last release"
      },
      {
        "a": "2026-07-01",
        "b": "no date given",
        "name": "Terms last updated"
      },
      {
        "a": "2026-05-26",
        "b": "no date given",
        "name": "Privacy policy last updated"
      },
      {
        "a": "yes, with an opt-out",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Terms restrict automated access"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "none",
        "b": "14 npm/wk, 19 PyPI/wk",
        "name": "Popularity"
      },
      {
        "a": "3.5/5 (4)",
        "b": "none",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "AssemblyAI Voice Agent API scores 56.4 (C) on agent readiness against Vaani Developer Platform's 44.6 (E), and leads in 6 of 7 scored categories. Vaani Developer Platform leads on payments \u0026 pricing.",
        "question": "Which is better for AI agents, AssemblyAI Voice Agent API or Vaani Developer Platform?"
      },
      {
        "answer": "Both need an API key.",
        "question": "Do AssemblyAI Voice Agent API and Vaani Developer Platform need an API key?"
      },
      {
        "answer": "Yes. AssemblyAI Voice Agent API has a hosted endpoint at wss://agents.assemblyai.com/v1/ws and Vaani Developer Platform at https://api.vaanivoice.ai.",
        "question": "Can an agent call AssemblyAI Voice Agent API and Vaani Developer Platform without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 65 against 28",
          "Schema \u0026 documentation, 83 against 57",
          "Agent ergonomics, 72 against 64",
          "Security \u0026 auth, 55 against 44",
          "Maintenance \u0026 community, 64 against 59",
          "Transparency \u0026 trust, 68 against 42"
        ],
        "also": null,
        "goodFor": "A developer who wants one managed pipeline at a flat rate and is content with AssemblyAI's own speech models and voices, with an optional model of their own.",
        "slug": "assemblyai-voice-agent",
        "watchFor": "No Voice Agent API price on the pricing page or in the billing docs on 2 November 2026, and the free credit no longer names it"
      },
      {
        "aheadOn": [
          "Payments \u0026 pricing, 22 against 0"
        ],
        "also": [
          "Runs on your own machine",
          "No incidents deducted, where AssemblyAI Voice Agent API loses 3 points for them"
        ],
        "goodFor": "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.",
        "slug": "vaani-voice",
        "watchFor": "API keys reach the whole workspace, with no scoped, read-only or per-agent keys"
      }
    ],
    "history": {
      "assemblyai-voice-agent": [
        {
          "causes": [
            "pricing",
            "correction"
          ],
          "date": "2026-11-02",
          "delta": -8.2,
          "from": 64.6,
          "fromGrade": "B",
          "to": 56.4,
          "toGrade": "C"
        },
        {
          "causes": [
            "method"
          ],
          "date": "2026-10-27",
          "delta": 0.2,
          "from": 64.4,
          "fromGrade": "B",
          "to": 64.6,
          "toGrade": "B"
        }
      ],
      "vaani-voice": null
    },
    "job": {
      "capability": "voice.agent",
      "name": "Voice agents"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/assemblyai-voice-agent-vs-bland-ai.json",
        "title": "AssemblyAI Voice Agent API vs Bland AI API + MCP",
        "url": "https://www.anchorterminal.com/compare/assemblyai-voice-agent-vs-bland-ai"
      },
      {
        "json": "https://www.anchorterminal.com/compare/assemblyai-voice-agent-vs-bolna.json",
        "title": "AssemblyAI Voice Agent API vs Bolna API + MCP",
        "url": "https://www.anchorterminal.com/compare/assemblyai-voice-agent-vs-bolna"
      },
      {
        "json": "https://www.anchorterminal.com/compare/assemblyai-voice-agent-vs-deepgram-voice-agent.json",
        "title": "AssemblyAI Voice Agent API vs Deepgram Voice Agent API",
        "url": "https://www.anchorterminal.com/compare/assemblyai-voice-agent-vs-deepgram-voice-agent"
      },
      {
        "json": "https://www.anchorterminal.com/compare/assemblyai-voice-agent-vs-elevenlabs-agents.json",
        "title": "AssemblyAI Voice Agent API vs ElevenLabs Agents API + MCP",
        "url": "https://www.anchorterminal.com/compare/assemblyai-voice-agent-vs-elevenlabs-agents"
      },
      {
        "json": "https://www.anchorterminal.com/compare/assemblyai-voice-agent-vs-gemini-live.json",
        "title": "AssemblyAI Voice Agent API vs Gemini Live API",
        "url": "https://www.anchorterminal.com/compare/assemblyai-voice-agent-vs-gemini-live"
      },
      {
        "json": "https://www.anchorterminal.com/compare/assemblyai-voice-agent-vs-gpt-live.json",
        "title": "AssemblyAI Voice Agent API vs GPT-Live",
        "url": "https://www.anchorterminal.com/compare/assemblyai-voice-agent-vs-gpt-live"
      },
      {
        "json": "https://www.anchorterminal.com/compare/assemblyai-voice-agent-vs-harmony-ai.json",
        "title": "AssemblyAI Voice Agent API vs Harmony.ai",
        "url": "https://www.anchorterminal.com/compare/assemblyai-voice-agent-vs-harmony-ai"
      },
      {
        "json": "https://www.anchorterminal.com/compare/assemblyai-voice-agent-vs-hume-evi.json",
        "title": "AssemblyAI Voice Agent API vs Hume EVI (Empathic Voice Interface)",
        "url": "https://www.anchorterminal.com/compare/assemblyai-voice-agent-vs-hume-evi"
      },
      {
        "json": "https://www.anchorterminal.com/compare/assemblyai-voice-agent-vs-livekit-agents.json",
        "title": "AssemblyAI Voice Agent API vs LiveKit Agents",
        "url": "https://www.anchorterminal.com/compare/assemblyai-voice-agent-vs-livekit-agents"
      },
      {
        "json": "https://www.anchorterminal.com/compare/assemblyai-voice-agent-vs-openai-realtime.json",
        "title": "AssemblyAI Voice Agent API vs OpenAI Realtime API",
        "url": "https://www.anchorterminal.com/compare/assemblyai-voice-agent-vs-openai-realtime"
      },
      {
        "json": "https://www.anchorterminal.com/compare/assemblyai-voice-agent-vs-pipecat.json",
        "title": "AssemblyAI Voice Agent API vs Pipecat",
        "url": "https://www.anchorterminal.com/compare/assemblyai-voice-agent-vs-pipecat"
      },
      {
        "json": "https://www.anchorterminal.com/compare/assemblyai-voice-agent-vs-placecall.json",
        "title": "AssemblyAI Voice Agent API vs PlaceCall",
        "url": "https://www.anchorterminal.com/compare/assemblyai-voice-agent-vs-placecall"
      },
      {
        "json": "https://www.anchorterminal.com/compare/assemblyai-voice-agent-vs-retell-ai.json",
        "title": "AssemblyAI Voice Agent API vs Retell AI API + MCP",
        "url": "https://www.anchorterminal.com/compare/assemblyai-voice-agent-vs-retell-ai"
      },
      {
        "json": "https://www.anchorterminal.com/compare/assemblyai-voice-agent-vs-rime-prism.json",
        "title": "AssemblyAI Voice Agent API vs Rime Prism",
        "url": "https://www.anchorterminal.com/compare/assemblyai-voice-agent-vs-rime-prism"
      },
      {
        "json": "https://www.anchorterminal.com/compare/assemblyai-voice-agent-vs-synthflow.json",
        "title": "AssemblyAI Voice Agent API vs Synthflow API + MCP",
        "url": "https://www.anchorterminal.com/compare/assemblyai-voice-agent-vs-synthflow"
      },
      {
        "json": "https://www.anchorterminal.com/compare/assemblyai-voice-agent-vs-ultravox.json",
        "title": "AssemblyAI Voice Agent API vs Ultravox Realtime API",
        "url": "https://www.anchorterminal.com/compare/assemblyai-voice-agent-vs-ultravox"
      },
      {
        "json": "https://www.anchorterminal.com/compare/assemblyai-voice-agent-vs-vapi.json",
        "title": "AssemblyAI Voice Agent API vs Vapi API + MCP",
        "url": "https://www.anchorterminal.com/compare/assemblyai-voice-agent-vs-vapi"
      },
      {
        "json": "https://www.anchorterminal.com/compare/assemblyai-voice-agent-vs-vocily.json",
        "title": "AssemblyAI Voice Agent API vs Vocily AI",
        "url": "https://www.anchorterminal.com/compare/assemblyai-voice-agent-vs-vocily"
      },
      {
        "json": "https://www.anchorterminal.com/compare/assemblyai-voice-agent-vs-vogent.json",
        "title": "AssemblyAI Voice Agent API vs Vogent API",
        "url": "https://www.anchorterminal.com/compare/assemblyai-voice-agent-vs-vogent"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bland-ai-vs-vaani-voice.json",
        "title": "Bland AI API + MCP vs Vaani Developer Platform",
        "url": "https://www.anchorterminal.com/compare/bland-ai-vs-vaani-voice"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bolna-vs-vaani-voice.json",
        "title": "Bolna API + MCP vs Vaani Developer Platform",
        "url": "https://www.anchorterminal.com/compare/bolna-vs-vaani-voice"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deepgram-voice-agent-vs-vaani-voice.json",
        "title": "Deepgram Voice Agent API vs Vaani Developer Platform",
        "url": "https://www.anchorterminal.com/compare/deepgram-voice-agent-vs-vaani-voice"
      },
      {
        "json": "https://www.anchorterminal.com/compare/elevenlabs-agents-vs-vaani-voice.json",
        "title": "ElevenLabs Agents API + MCP vs Vaani Developer Platform",
        "url": "https://www.anchorterminal.com/compare/elevenlabs-agents-vs-vaani-voice"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gemini-live-vs-vaani-voice.json",
        "title": "Gemini Live API vs Vaani Developer Platform",
        "url": "https://www.anchorterminal.com/compare/gemini-live-vs-vaani-voice"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gpt-live-vs-vaani-voice.json",
        "title": "GPT-Live vs Vaani Developer Platform",
        "url": "https://www.anchorterminal.com/compare/gpt-live-vs-vaani-voice"
      },
      {
        "json": "https://www.anchorterminal.com/compare/harmony-ai-vs-vaani-voice.json",
        "title": "Harmony.ai vs Vaani Developer Platform",
        "url": "https://www.anchorterminal.com/compare/harmony-ai-vs-vaani-voice"
      },
      {
        "json": "https://www.anchorterminal.com/compare/hume-evi-vs-vaani-voice.json",
        "title": "Hume EVI (Empathic Voice Interface) vs Vaani Developer Platform",
        "url": "https://www.anchorterminal.com/compare/hume-evi-vs-vaani-voice"
      },
      {
        "json": "https://www.anchorterminal.com/compare/livekit-agents-vs-vaani-voice.json",
        "title": "LiveKit Agents vs Vaani Developer Platform",
        "url": "https://www.anchorterminal.com/compare/livekit-agents-vs-vaani-voice"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openai-realtime-vs-vaani-voice.json",
        "title": "OpenAI Realtime API vs Vaani Developer Platform",
        "url": "https://www.anchorterminal.com/compare/openai-realtime-vs-vaani-voice"
      },
      {
        "json": "https://www.anchorterminal.com/compare/pipecat-vs-vaani-voice.json",
        "title": "Pipecat vs Vaani Developer Platform",
        "url": "https://www.anchorterminal.com/compare/pipecat-vs-vaani-voice"
      },
      {
        "json": "https://www.anchorterminal.com/compare/placecall-vs-vaani-voice.json",
        "title": "PlaceCall vs Vaani Developer Platform",
        "url": "https://www.anchorterminal.com/compare/placecall-vs-vaani-voice"
      },
      {
        "json": "https://www.anchorterminal.com/compare/retell-ai-vs-vaani-voice.json",
        "title": "Retell AI API + MCP vs Vaani Developer Platform",
        "url": "https://www.anchorterminal.com/compare/retell-ai-vs-vaani-voice"
      },
      {
        "json": "https://www.anchorterminal.com/compare/rime-prism-vs-vaani-voice.json",
        "title": "Rime Prism vs Vaani Developer Platform",
        "url": "https://www.anchorterminal.com/compare/rime-prism-vs-vaani-voice"
      },
      {
        "json": "https://www.anchorterminal.com/compare/synthflow-vs-vaani-voice.json",
        "title": "Synthflow API + MCP vs Vaani Developer Platform",
        "url": "https://www.anchorterminal.com/compare/synthflow-vs-vaani-voice"
      },
      {
        "json": "https://www.anchorterminal.com/compare/ultravox-vs-vaani-voice.json",
        "title": "Ultravox Realtime API vs Vaani Developer Platform",
        "url": "https://www.anchorterminal.com/compare/ultravox-vs-vaani-voice"
      },
      {
        "json": "https://www.anchorterminal.com/compare/vaani-voice-vs-vapi.json",
        "title": "Vaani Developer Platform vs Vapi API + MCP",
        "url": "https://www.anchorterminal.com/compare/vaani-voice-vs-vapi"
      },
      {
        "json": "https://www.anchorterminal.com/compare/vaani-voice-vs-vocily.json",
        "title": "Vaani Developer Platform vs Vocily AI",
        "url": "https://www.anchorterminal.com/compare/vaani-voice-vs-vocily"
      },
      {
        "json": "https://www.anchorterminal.com/compare/vaani-voice-vs-vogent.json",
        "title": "Vaani Developer Platform vs Vogent API",
        "url": "https://www.anchorterminal.com/compare/vaani-voice-vs-vogent"
      },
      {
        "json": "https://www.anchorterminal.com/compare/assemblyai-voice-agent-vs-cuelight.json",
        "title": "AssemblyAI Voice Agent API vs CueLight",
        "url": "https://www.anchorterminal.com/compare/assemblyai-voice-agent-vs-cuelight"
      },
      {
        "json": "https://www.anchorterminal.com/compare/assemblyai-voice-agent-vs-pipecat-phonellm.json",
        "title": "AssemblyAI Voice Agent API vs Pipecat PhoneLLM",
        "url": "https://www.anchorterminal.com/compare/assemblyai-voice-agent-vs-pipecat-phonellm"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cuelight-vs-vaani-voice.json",
        "title": "CueLight vs Vaani Developer Platform",
        "url": "https://www.anchorterminal.com/compare/cuelight-vs-vaani-voice"
      },
      {
        "json": "https://www.anchorterminal.com/compare/pipecat-phonellm-vs-vaani-voice.json",
        "title": "Pipecat PhoneLLM vs Vaani Developer Platform",
        "url": "https://www.anchorterminal.com/compare/pipecat-phonellm-vs-vaani-voice"
      }
    ],
    "panel": null,
    "scores": [
      {
        "assemblyai-voice-agent": 65,
        "by": 37,
        "edge": "assemblyai-voice-agent",
        "key": "reliability",
        "name": "Reliability",
        "vaani-voice": 28,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "assemblyai-voice-agent": 83,
        "by": 26,
        "edge": "assemblyai-voice-agent",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "vaani-voice": 57,
        "weight": 13
      },
      {
        "assemblyai-voice-agent": 72,
        "by": 8,
        "edge": "assemblyai-voice-agent",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "vaani-voice": 64,
        "weight": 13
      },
      {
        "assemblyai-voice-agent": 55,
        "by": 11,
        "edge": "assemblyai-voice-agent",
        "key": "security",
        "name": "Security \u0026 auth",
        "vaani-voice": 44,
        "weight": 14
      },
      {
        "assemblyai-voice-agent": 0,
        "by": 22,
        "edge": "vaani-voice",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "vaani-voice": 22,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "assemblyai-voice-agent": 64,
        "by": 5,
        "edge": "assemblyai-voice-agent",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "vaani-voice": 59,
        "weight": 7
      },
      {
        "assemblyai-voice-agent": 68,
        "by": 26,
        "edge": "assemblyai-voice-agent",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "vaani-voice": 42,
        "weight": 7
      }
    ],
    "summary": "AssemblyAI Voice Agent API scores 56.4 (C) on agent readiness against Vaani Developer Platform's 44.6 (E), and leads in 6 of 7 scored categories. Vaani Developer Platform leads on payments \u0026 pricing. Both do voice agents.",
    "tasks": null,
    "tutorials": [],
    "verdicts": {
      "assemblyai-voice-agent": "The socket has an AsyncAPI file, typed error codes with retry advice and a 30-second resume window, and the status feed shows only partial realtime incidents since August. On 2 November AssemblyAI's pricing page and billing docs no longer listed the API or its rate, no concurrent-session limit is published, and telephony is inbound only.",
      "vaani-voice": "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."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/assemblyai-voice-agent-vs-vaani-voice",
    "json": "https://www.anchorterminal.com/compare/assemblyai-voice-agent-vs-vaani-voice.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/assemblyai-voice-agent-vs-vaani-voice.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/assemblyai-voice-agent-vs-vaani-voice.min.md"
  },
  "markdown": "AssemblyAI Voice Agent API scores 56.4 (C) on agent readiness against Vaani Developer Platform's 44.6 (E), and leads in 6 of 7 scored categories. Vaani Developer Platform leads on payments \u0026 pricing. Both do voice agents.\n\n- AssemblyAI Voice Agent API: grade C, 56.4/100, rank #743 of 1266. Markdown https://www.anchorterminal.com/tools/assemblyai-voice-agent.md · JSON https://www.anchorterminal.com/api/v1/tools/assemblyai-voice-agent.json\n- Vaani Developer Platform: grade E, 44.6/100, rank #1084 of 1266. Markdown https://www.anchorterminal.com/tools/vaani-voice.md · JSON https://www.anchorterminal.com/api/v1/tools/vaani-voice.json\n- Best conversational voice-agent APIs: https://www.anchorterminal.com/best/voice-agents/index.md\n- All 447 voice agents comparisons: https://www.anchorterminal.com/compare/voice-agents/index.md\n\n## Which one, for what\n\n### AssemblyAI Voice Agent API (C)\n\nGood for: A developer who wants one managed pipeline at a flat rate and is content with AssemblyAI's own speech models and voices, with an optional model of their own.\n\nAhead on:\n- Reliability, 65 against 28\n- Schema \u0026 documentation, 83 against 57\n- Agent ergonomics, 72 against 64\n- Security \u0026 auth, 55 against 44\n- Maintenance \u0026 community, 64 against 59\n- Transparency \u0026 trust, 68 against 42\n\nWatch for: No Voice Agent API price on the pricing page or in the billing docs on 2 November 2026, and the free credit no longer names it\n\n### Vaani Developer Platform (E)\n\nGood 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.\n\nAhead on:\n- Payments \u0026 pricing, 22 against 0\n\nAlso in its favour:\n- Runs on your own machine\n- No incidents deducted, where AssemblyAI Voice Agent API loses 3 points for them\n\nWatch for: API keys reach the whole workspace, with no scoped, read-only or per-agent keys\n\n\n## Why the edge\n\n### Reliability: AssemblyAI Voice Agent API +37\n\n- AssemblyAI Voice Agent API (65): Scored with the hosted lines. Statuspage at status.assemblyai.com with component history, read from history.atom on 2 November, but its components are the Asynchronous API, Streaming API and LLM Gateway and none is the Voice Agent API (15 of 20). Thirteen incidents from 4 August to 2 November 2026 (14 August to 28 October) and none names the Voice Agent API. Four touch the realtime speech-to-text it runs on, all partial. New EU streaming sessions were refused for 12 minutes on 19 August, with 30 minutes of added latency on the US endpoint on 25 August, two hours of rejected Universal-3.6 Pro Realtime sessions on the US endpoint on 6 October (the EU endpoint unaffected), and some Real-time sessions failing with 502 after a temporary-token change on 28 October until it was rolled back. Whether agent sessions were affected isn't stated. Read as minor incidents touching the product, as assemblyai-stt reads the same feed (20, was 15, which isn't a checklist value). A per-account concurrent-session limit is enforced and no figure is published for it (0 of 15). The events reference (re-read on 2 November) names `at_capacity`, `concurrency_exceeded` and `internal_error` as the only retryable codes and says to reconnect with backoff, and sessions resume for 30 seconds. Webhooks carry a stable `event_id`. No idempotency key on `POST /v1/agents` (10 of 15). A Service Level Agreement of 99.9 per cent a month with credits, written against an Order Form, per the 9 October check (10). No beta label on the Voice Agent pages (10). 15+20+0+10+10+10 = 65.\n- 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.\n\n### Schema \u0026 documentation: AssemblyAI Voice Agent API +26\n\n- AssemblyAI Voice Agent API (83): An AsyncAPI 3.0 file describes the socket and an OpenAPI 3.0.3 file the token endpoint. No description file was found for the agents, sessions and webhook REST endpoints, and the AsyncAPI file lacks `language_codes`, `voice_focus`, `transcript.agent.delta` and `is_error`, which the docs added on 23 July 2026 (19 of 25). llms.txt, a Markdown copy of each page and a docs MCP server (10). Operations and fields say what they are for and when to use them, such as when to choose `hold` over `interactive` execution (17 of 20). Enums, ranges and defaults on audio encoding, turn detection and timeouts. Tool `parameters` are a JSON Schema the server does not validate at `session.update` (12 of 15). Examples in cURL, Python and JavaScript, and tables of session error codes with close codes (13 of 15). A dated public changelog tagged by product and a `/v1` path, with no written versioning policy found (12 of 15).\n- 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.\n\n### Transparency \u0026 trust: AssemblyAI Voice Agent API +26\n\n- AssemblyAI Voice Agent API (68): A closed service with a clear service agreement. The starter repositories have no licence file (15 of 30). The Terms of Service grant a licence to train on Customer Data by default, the opt-out needs a paid plan, and the retention page gives periods for streaming, sync, dictation, asynchronous and LLM Gateway data but none for Voice Agent sessions, which are recorded and stored. A DPA is published and the privacy policy states Data Privacy Framework certification (14 of 30). The changelog dates deprecations ahead of time, such as the 11 July 2026 notice of a change on 7 August, and the terms promise reasonable prior notice of major changes. No written deprecation policy was found (12 of 20). The subprocessor list at /legal/subprocessors redirects to a Vanta trust centre whose robots.txt disallows every path, so it is unread. US and EU endpoints are mentioned, with no EU host named for the Voice Agent API in the pages read (10 of 20). 15+14+12+10 = 51.\n- 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.\n\n### Payments \u0026 pricing: Vaani Developer Platform +22\n\n- AssemblyAI Voice Agent API (0): No x402, MPP or L402 (0 of 40). On 2 November the pricing page lists speech-to-text, dictation, text-to-speech and LLM Gateway prices but no Voice Agent API price, and the billing docs have no Voice Agent section. The $4.50 an hour rate the 9 October check read on both is no longer published, and no other price page was found (0, was 20). The billing docs now say new accounts' $50 of credit applies to pre-recorded and real-time speech-to-text, Speech Understanding and Guardrails, without naming the Voice Agent API, where on 9 October they said it was covered (0, was 20). A person has to sign up in a browser to get the first key, and no key-creation API was found (0). 0+0+0+0 = 0.\n- 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.\n\n### Security \u0026 auth: AssemblyAI Voice Agent API +11\n\n- AssemblyAI Voice Agent API (55): Plain API keys per project, created and deleted in the dashboard, with no scopes or expiry found (20 of 30). Browser clients pass a token in the `token` query parameter. We took no deduction because the token is one-time and redeemable for at most 600 seconds, which is a judgement call, as for assemblyai-stt. A read-only Reader role exists for dashboard members but not for keys. HTTP tool header values are write-only and encrypted at rest, tool calls go only to public `https` hosts with redirects refused, and the docs show how to gate tools by conversation state. No built-in confirmation step before a tool that writes (10 of 20). Caller speech and tool results reach a model. Tool arguments are drawn only from user turns and tool results since 26 August 2026 and tool responses are capped, but no prompt-injection guidance was found (8 of 15). Sessions keep a timeline with tool calls, webhook deliveries are logged per session, usage is broken down by key, and the dashboard has activity logs (12 of 15). The security page states a SOC 2 Type 2 report (per the 9 October check, not re-read on 2 November), the trust centre is on app.vanta.com, whose robots.txt disallows every path, and no bug bounty, disclosure policy or public advisory was found. www.assemblyai.com's robots.txt closes `/.well-known`, so security.txt is unread. Read as assemblyai-stt on the same evidence, a SOC 2 claim with no disclosure route (5, was 12). 20+10+8+12+5 = 55.\n- Vaani Developer Platform (44): Plain revocable API keys, shown once, several active at a time and rotated by creating a new key and deleting the old one. Every key reaches the whole workspace, with no scoped, read-only or per-agent keys (20). Campaign webhooks are signed with HMAC-SHA256 over a timestamp and the body, with a five-minute replay window in the example (+2). The live-captions URL carries a call-bound token in the query string for 24 hours by default, the documented way for browsers to connect, so 3 off as a judgement call, less than the full 10 because it isn't the account key (19 of 30). The MCP server has a read-only mode and destructive annotations, and its docs, tool descriptions and bundled prompt say to confirm the number and agent with the user before a call. The API itself has no read-only key and nothing stops a call without confirmation (12 of 20). The tool returns transcripts, summaries and entities drawn from callers' speech. No guidance on treating them as untrusted data was found. Agent guardrails exist for the voice agent's own replies (3 of 15). Each call keeps a record in call history and call details, and keys are labelled so calls can be traced to a key, but no account or key audit log is documented (7 of 15). No security.txt (404 on both domains), disclosure policy, bug bounty or certification. vaaniresearch.com marks its security standards \"In Progress\", the pricing page lists HIPAA compliance on Enterprise with no report or BAA found, and the privacy policy promises breach notice in line with applicable law (3 of 20). 19+12+3+7+3 = 44.\n\n### Agent ergonomics: AssemblyAI Voice Agent API +8\n\n- AssemblyAI Voice Agent API (72): Scored as an API. Events are small typed JSON, HTTP tool responses are capped at 8 KiB before they reach the model, and the session list leaves artefacts out (18 of 25). `GET /v1/sessions` pages by `cursor` with `limit` from 1 to 200 and filters on `status` and `agent_id` (18 of 20). Errors carry `code`, `message` and sometimes `param`, and REST validation errors name the field (17 of 20). No idempotency keys on REST writes. Sessions resume within 30 seconds, webhooks dedupe on `event_id`, and `hold` mode silences the agent during long tools (10 of 20). An agent needs three fields (`name`, `system_prompt`, `voice`). The official Python and Node SDKs have no Voice Agent client, so callers write JSON over a socket or start from the two starter repositories (9 of 15).\n- 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.\n\n## Score by category\n\n| Category | Weight | AssemblyAI Voice Agent API | Vaani Developer Platform | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 65 | 28 | AssemblyAI Voice Agent API +37 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 83 | 57 | AssemblyAI Voice Agent API +26 |\n| Agent ergonomics | 13% (16.2 this run) | 72 | 64 | AssemblyAI Voice Agent API +8 |\n| Security \u0026 auth | 14% (17.5 this run) | 55 | 44 | AssemblyAI Voice Agent API +11 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 0 | 22 | Vaani Developer Platform +22 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 64 | 59 | AssemblyAI Voice Agent API +5 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 68 | 42 | AssemblyAI Voice Agent API +26 |\n| Negative events | ≤15 | -3 | 0 | |\n| **Total** | | **56.4 · C** | **44.6 · E** | |\n\n## Facts side by side\n\n| Fact | AssemblyAI Voice Agent API | Vaani Developer Platform |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | AssemblyAI, Inc. | Vaani AI Research Private Limited |\n| Hosted endpoint | `wss://agents.assemblyai.com/v1/ws` | `https://api.vaanivoice.ai` |\n| Transports | HTTP | HTTP, stdio |\n| Auth | API key | API key |\n| Pricing | Pay per use | Pay per use |\n| x402 | no | no |\n| Licence | Proprietary service under AssemblyAI's Terms of Service. The two starter repositories on GitHub carry no licence file | Proprietary 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 |\n| Tools exposed | none | 9 |\n| Read-only variant documented | no | yes |\n| llms.txt | yes | yes |\n| Last release | 2026-09-16 | 2026-10-14 |\n| Terms last updated | 2026-07-01 | no date given |\n| Privacy policy last updated | 2026-05-26 | no date given |\n| Customer content may train models | yes, with an opt-out | not found in the text |\n| Terms restrict automated access | yes | not found in the text |\n| Terms restrict benchmarking | yes | not found in the text |\n| Terms or service can change without notice | not found in the text | yes |\n| Arbitration or class-action waiver | not found in the text | not found in the text |\n| Popularity | none | 14 npm/wk, 19 PyPI/wk |\n| Agent reviews | 3.5/5 (4) | none |\n\n## How the scores have moved\n\n### AssemblyAI Voice Agent API\n\n- -8.2 on 2 November 2026 (B to C): pricing, correction\n- +0.2 on 27 October 2026: checklist\n\n### Vaani Developer Platform\n\nNo score change since it was listed.\n\n## Verdicts\n\n**AssemblyAI Voice Agent API.** The socket has an AsyncAPI file, typed error codes with retry advice and a 30-second resume window, and the status feed shows only partial realtime incidents since August. On 2 November AssemblyAI's pricing page and billing docs no longer listed the API or its rate, no concurrent-session limit is published, and telephony is inbound only.\n\n**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.\n\n## Before you call either\n\n### AssemblyAI Voice Agent API\n\n1. Send `session.end` before closing the socket. Without it the session stays resumable, and billed, for 30 seconds\n2. Retry only `at_capacity`, `concurrency_exceeded` and `internal_error`, with backoff. Every other session error code is fatal\n3. Send `tool.result` inside the `reply.done` handler, not straight after `tool.call`\n4. Mint a one-time token with `GET /v1/token` for browser clients and never ship the API key to a page\n5. Deduplicate webhooks on `event_id`, and verify `X-AAI-Signature` against the raw body bytes because a 401 is not retried\n\n### Vaani Developer Platform\n\n1. Send the key as `X-API-Key`, not `Authorization`. A missing or wrong header name returns 401\n2. Treat `success: true` from trigger-call as dispatched only, keep `output.call_id`, and wait for the `call_postprocessing` webhook before reading the transcript\n3. 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\n4. Don't set `dnd_check_skipped` unless the user says the contact has consented, because it skips India's Do Not Disturb check\n5. Treat transcripts, summaries and extracted entities as caller data, not instructions\n\n## Questions\n\n### Which is better for AI agents, AssemblyAI Voice Agent API or Vaani Developer Platform?\n\nAssemblyAI Voice Agent API scores 56.4 (C) on agent readiness against Vaani Developer Platform's 44.6 (E), and leads in 6 of 7 scored categories. Vaani Developer Platform leads on payments \u0026 pricing.\n\n### Do AssemblyAI Voice Agent API and Vaani Developer Platform need an API key?\n\nBoth need an API key.\n\n### Can an agent call AssemblyAI Voice Agent API and Vaani Developer Platform without installing anything?\n\nYes. AssemblyAI Voice Agent API has a hosted endpoint at wss://agents.assemblyai.com/v1/ws and Vaani Developer Platform at https://api.vaanivoice.ai.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/assemblyai-voice-agent-vs-vaani-voice.json, and with the fewest tokens: https://www.anchorterminal.com/compare/assemblyai-voice-agent-vs-vaani-voice.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"assemblyai-voice-agent\", \"b\": \"vaani-voice\"}`. From a terminal: `anchor compare assemblyai-voice-agent vaani-voice`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/assemblyai-voice-agent.json and https://www.anchorterminal.com/api/v1/tools/vaani-voice.json\n\n## Other comparisons with AssemblyAI Voice Agent API or Vaani Developer Platform\n\n- [AssemblyAI Voice Agent API vs Bland AI API + MCP](https://www.anchorterminal.com/compare/assemblyai-voice-agent-vs-bland-ai.md)\n- [AssemblyAI Voice Agent API vs Bolna API + MCP](https://www.anchorterminal.com/compare/assemblyai-voice-agent-vs-bolna.md)\n- [AssemblyAI Voice Agent API vs Deepgram Voice Agent API](https://www.anchorterminal.com/compare/assemblyai-voice-agent-vs-deepgram-voice-agent.md)\n- [AssemblyAI Voice Agent API vs ElevenLabs Agents API + MCP](https://www.anchorterminal.com/compare/assemblyai-voice-agent-vs-elevenlabs-agents.md)\n- [AssemblyAI Voice Agent API vs Gemini Live API](https://www.anchorterminal.com/compare/assemblyai-voice-agent-vs-gemini-live.md)\n- [AssemblyAI Voice Agent API vs GPT-Live](https://www.anchorterminal.com/compare/assemblyai-voice-agent-vs-gpt-live.md)\n- [AssemblyAI Voice Agent API vs Harmony.ai](https://www.anchorterminal.com/compare/assemblyai-voice-agent-vs-harmony-ai.md)\n- [AssemblyAI Voice Agent API vs Hume EVI (Empathic Voice Interface)](https://www.anchorterminal.com/compare/assemblyai-voice-agent-vs-hume-evi.md)\n- [AssemblyAI Voice Agent API vs LiveKit Agents](https://www.anchorterminal.com/compare/assemblyai-voice-agent-vs-livekit-agents.md)\n- [AssemblyAI Voice Agent API vs OpenAI Realtime API](https://www.anchorterminal.com/compare/assemblyai-voice-agent-vs-openai-realtime.md)\n- [AssemblyAI Voice Agent API vs Pipecat](https://www.anchorterminal.com/compare/assemblyai-voice-agent-vs-pipecat.md)\n- [AssemblyAI Voice Agent API vs PlaceCall](https://www.anchorterminal.com/compare/assemblyai-voice-agent-vs-placecall.md)\n- [AssemblyAI Voice Agent API vs Retell AI API + MCP](https://www.anchorterminal.com/compare/assemblyai-voice-agent-vs-retell-ai.md)\n- [AssemblyAI Voice Agent API vs Rime Prism](https://www.anchorterminal.com/compare/assemblyai-voice-agent-vs-rime-prism.md)\n- [AssemblyAI Voice Agent API vs Synthflow API + MCP](https://www.anchorterminal.com/compare/assemblyai-voice-agent-vs-synthflow.md)\n- [AssemblyAI Voice Agent API vs Ultravox Realtime API](https://www.anchorterminal.com/compare/assemblyai-voice-agent-vs-ultravox.md)\n- [AssemblyAI Voice Agent API vs Vapi API + MCP](https://www.anchorterminal.com/compare/assemblyai-voice-agent-vs-vapi.md)\n- [AssemblyAI Voice Agent API vs Vocily AI](https://www.anchorterminal.com/compare/assemblyai-voice-agent-vs-vocily.md)\n- [AssemblyAI Voice Agent API vs Vogent API](https://www.anchorterminal.com/compare/assemblyai-voice-agent-vs-vogent.md)\n- [Bland AI API + MCP vs Vaani Developer Platform](https://www.anchorterminal.com/compare/bland-ai-vs-vaani-voice.md)\n- [Bolna API + MCP vs Vaani Developer Platform](https://www.anchorterminal.com/compare/bolna-vs-vaani-voice.md)\n- [Deepgram Voice Agent API vs Vaani Developer Platform](https://www.anchorterminal.com/compare/deepgram-voice-agent-vs-vaani-voice.md)\n- [ElevenLabs Agents API + MCP vs Vaani Developer Platform](https://www.anchorterminal.com/compare/elevenlabs-agents-vs-vaani-voice.md)\n- [Gemini Live API vs Vaani Developer Platform](https://www.anchorterminal.com/compare/gemini-live-vs-vaani-voice.md)\n- [GPT-Live vs Vaani Developer Platform](https://www.anchorterminal.com/compare/gpt-live-vs-vaani-voice.md)\n- [Harmony.ai vs Vaani Developer Platform](https://www.anchorterminal.com/compare/harmony-ai-vs-vaani-voice.md)\n- [Hume EVI (Empathic Voice Interface) vs Vaani Developer Platform](https://www.anchorterminal.com/compare/hume-evi-vs-vaani-voice.md)\n- [LiveKit Agents vs Vaani Developer Platform](https://www.anchorterminal.com/compare/livekit-agents-vs-vaani-voice.md)\n- [OpenAI Realtime API vs Vaani Developer Platform](https://www.anchorterminal.com/compare/openai-realtime-vs-vaani-voice.md)\n- [Pipecat vs Vaani Developer Platform](https://www.anchorterminal.com/compare/pipecat-vs-vaani-voice.md)\n- [PlaceCall vs Vaani Developer Platform](https://www.anchorterminal.com/compare/placecall-vs-vaani-voice.md)\n- [Retell AI API + MCP vs Vaani Developer Platform](https://www.anchorterminal.com/compare/retell-ai-vs-vaani-voice.md)\n- [Rime Prism vs Vaani Developer Platform](https://www.anchorterminal.com/compare/rime-prism-vs-vaani-voice.md)\n- [Synthflow API + MCP vs Vaani Developer Platform](https://www.anchorterminal.com/compare/synthflow-vs-vaani-voice.md)\n- [Ultravox Realtime API vs Vaani Developer Platform](https://www.anchorterminal.com/compare/ultravox-vs-vaani-voice.md)\n- [Vaani Developer Platform vs Vapi API + MCP](https://www.anchorterminal.com/compare/vaani-voice-vs-vapi.md)\n- [Vaani Developer Platform vs Vocily AI](https://www.anchorterminal.com/compare/vaani-voice-vs-vocily.md)\n- [Vaani Developer Platform vs Vogent API](https://www.anchorterminal.com/compare/vaani-voice-vs-vogent.md)\n- [AssemblyAI Voice Agent API vs CueLight](https://www.anchorterminal.com/compare/assemblyai-voice-agent-vs-cuelight.md)\n- [AssemblyAI Voice Agent API vs Pipecat PhoneLLM](https://www.anchorterminal.com/compare/assemblyai-voice-agent-vs-pipecat-phonellm.md)\n- [CueLight vs Vaani Developer Platform](https://www.anchorterminal.com/compare/cuelight-vs-vaani-voice.md)\n- [Pipecat PhoneLLM vs Vaani Developer Platform](https://www.anchorterminal.com/compare/pipecat-phonellm-vs-vaani-voice.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "attributionRequired": true,
    "credit": "CC BY 4.0, credit Anchor Terminal and link the page or API address you took it from (https://www.anchorterminal.com/terms/#data)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-11-02",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.7",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run",
    "terms": "https://www.anchorterminal.com/terms/#data"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "AssemblyAI Voice Agent API vs Vaani Developer Platform",
        "url": ""
      }
    ],
    "description": "AssemblyAI Voice Agent scores 56.4 (C) to Vaani Developer Platform's 44.6 (E) for voice agents. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "AssemblyAI Voice Agent API C 56.4",
      "Vaani Developer Platform E 44.6",
      "scores"
    ],
    "h1": "AssemblyAI Voice Agent API vs Vaani Developer Platform",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/assemblyai-voice-agent-vs-vaani-voice",
    "published": "2026-10-01",
    "section": "tools",
    "title": "AssemblyAI Voice Agent vs Vaani Developer Platform (2026)",
    "toc": null,
    "updated": "2026-11-02",
    "url": "https://www.anchorterminal.com/compare/assemblyai-voice-agent-vs-vaani-voice"
  },
  "tokens": {
    "markdown": 6950,
    "slim": 4280
  },
  "version": 1
}
