A voice AI API that leaves your telephony alone
The Dvaarik Voice API runs the hard part of a phone agent — hearing, thinking, speaking and knowing when to stop talking — behind a single WebSocket. You keep your own carrier, numbers and prompt: stream PCM16 call audio in, get the agent's speech back out, with transcripts and turn events on the same socket. Pricing is prepaid from ₹1.50 per minute with no subscription, no seats and no minimum, across up to 23 Indian languages.
What does the API actually handle?
A voice agent is four hard problems stacked on each other. You get all four behind one socket, tuned on real Indian phone calls.
Hearing
Streaming speech recognition tuned for Indian accents and code-mixed speech on 8 kHz phone audio — the band where generic models degrade most.
Thinking
Your prompt, run on a fast model, with the integration unchanged when the model behind it changes.
Speaking
Natural voices streamed back sentence by sentence, so the reply starts before the whole answer is generated.
Turn-taking
Barge-in detection that survives background noise, endpointing that knows when a caller has finished, and graceful hangups. This is the part that takes months to get right.
How does an integration work?
- 01POST your prompt, language, grade and voice. You get back a single-use WebSocket URL, valid for five minutes.
- 02Point your telephony provider's media stream at that URL — Twilio, Plivo, Exotel, or a SIP trunk behind your own gateway. Browser and app audio work identically.
- 03Play back the PCM16 frames that return, and drop your buffer the moment an interrupted event arrives.
- 04The call is metered against your prepaid balance when it ends. Nothing else is billed.
The full protocol — endpoints, events, close codes, billing rules — is documented at developers.dvaarik.com/docs.
What you would otherwise build
Assembling this from separate recognition, model and speech-synthesis vendors is possible. The pieces that consume the months are rarely the ones people budget for:
- Streaming speech recognition that holds up on 8 kHz Indian phone audio
- An endpointer that knows a caller has finished rather than merely paused
- Barge-in detection that is not fooled by traffic, a television, or a crying child
- Sentence-level speech synthesis so the reply starts before the full answer exists
- Buffer management on interruption, or the caller hears a sentence the agent abandoned
- Per-call metering, prepaid balance enforcement and concurrency limits
What does it cost?
Prepaid balance, drawn down as calls complete. Whole-minute billing, rounded up. No subscription, no seats, and nothing charged for the minutes you do not use.
| Grade | Price | Languages | Notes |
|---|---|---|---|
| Essential | ₹1.50/min | 10 Indian languages | Best price. No Telugu on this grade. |
| Standard | ₹2/min | 23 Indian languages | Natural multilingual voices. |
| Studio HD | ₹3/min | 23 Indian languages | Studio-quality and expressive. |
| Premium | ₹3.75/min | 11 Indian languages | Native Indic voices. |
Top-ups start at ₹100. Calls cap at ten minutes, and concurrency rises with usage — 5 concurrent calls from any top-up, 20 at ₹25,000 lifetime spend, 50 at ₹1,00,000. Live rates and the voice catalogue are at developers.dvaarik.com/pricing.
Which telephony providers can you bring?
Any provider that can hand you call audio over a WebSocket, which is all of the major ones. Dvaarik publishes a working adapter for each of the carriers below, so the number stays yours, the trunk stays yours, and the per-minute connectivity stays on your carrier's bill. We charge for the voice, not the line.
| Provider | What it streams | Status | Guide |
|---|---|---|---|
| Twilio | JSON, base64 μ-law | From vendor docs | Twilio guide |
| SignalWire | Twilio-compatible | From vendor docs | SignalWire guide |
| Plivo | JSON, base64 L16 or μ-law | From vendor docs | Plivo guide |
| Exotel | JSON snake_case, base64 L16 | Running live | Exotel guide |
| FreJun / Teler | JSON, base64 PCM16 chunks | Running live | FreJun / Teler guide |
| Vonage | Raw binary PCM16 | From vendor docs | Vonage guide |
| Telnyx | JSON, base64 RTP | From vendor docs | Telnyx guide |
| jambonz (SIP trunks) | Binary PCM16 | From vendor docs | jambonz (SIP trunks) guide |
| Anything else | Raw PCM16 over WebSocket | From vendor docs | Anything else guide |
Running live means Dvaarik carries real calls on that adapter every day. From vendor docs means the adapter follows the provider's published reference and has been reviewed, but we have not put a paid call through it ourselves — so it is labelled that way rather than dressed up. Holding a SIP trunk instead of a CPaaS account? Put jambonz in front of it; Dvaarik runs no SIP stack, which keeps telecom licensing where it belongs.
Skip the carrier plumbing entirely
Every telephony provider speaks a different dialect of streaming audio, and they disagree about the most important message in a phone agent: the one that flushes queued playback when a caller interrupts. Twilio wants {"event":"clear"}, Plivo wants clearAudio, Vonage keys it on action instead of event, and jambonz calls it killAudio. Getting that wrong is why callers hear an agent talking over them.
We published that week of work as Setu — an MIT-licensed bridge for Twilio, SignalWire, Plivo, Exotel, Vonage, Telnyx, jambonz and raw PCM16 sources. One command, npx @dvaarik/setu, and your carrier is bridged. Its engine interface is public, so it works with any voice backend rather than only ours, and a complete Python and FastAPI implementation ships in the repository for teams who would rather copy than depend.
Per-provider guides — wire format, flush frame, and the trap that costs an afternoon — are at developers.dvaarik.com/integrations, and the full write-up is in bridging a carrier to an AI voice agent. Holding a SIP trunk rather than a CPaaS account? Put jambonz in front of it — Dvaarik runs no SIP stack.
API or platform — which one do you want?
Take the API when you are building your own product and want the voice engine only. You own the telephony, the interface, the data model and the customer relationship; Dvaarik is a dependency.
Take the platform when the surrounding product is the work — dashboards, bookings, WhatsApp and Instagram agents, payment links, client tenancy, prepaid credit and a branded portal. Agencies reselling under their own brand use the white-label programme; businesses buying for themselves use the platform directly. Developers weighing both should read build versus buy.
Both products share the same voice stack, so the language coverage and call quality are identical — see the language range and how the voice agent behaves on a call.
Developer questions, answered
A speech-to-speech API for phone calls. You POST a prompt, language and voice, get back a WebSocket URL, stream PCM16 call audio to it, and receive the agent's speech as PCM16 frames with transcripts and turn events as JSON on the same socket. It handles recognition, reasoning, speech synthesis and turn-taking; you keep your telephony.
No, and that is the point. Dvaarik does not sell numbers on this product and never touches your carrier relationship. If your provider can hand you call audio over a WebSocket — Twilio, Plivo, Exotel and most others can, and a SIP trunk behind Jambonz or FreeSWITCH does the same — you are one bridge away. DLT registration, number allocation and TRAI compliance stay where they already sit: with you.
From ₹1.50/min on the Essential grade, ₹2/min Standard, ₹3/min Studio HD, ₹3.75/min Premium. Prepaid balance, charged when a call ends, rounded up to whole minutes. No subscription, no per-seat fee, no minimum monthly commitment. Top-ups start at ₹100.
Up to 23 Indian languages plus English depending on the grade, including code-mixed speech — a caller can switch between Hindi and English mid-sentence on the same call. The Premium grade uses native Indic voices built for those languages rather than adapted to them.
The platform is the finished product: dashboard, bookings, WhatsApp, Instagram, payments, client tenancy and a white-label partner console. The Voice API is the engine only, for teams building their own product. Same voice stack underneath, two different levels of abstraction.
No. Durations, rates and costs are stored on the call record. Prompts are held in memory for the life of the call and never written to disk, and transcripts stream to you rather than into storage.