Vapi Review: What a Voice Agent Operator Looks For Before Committing
An honest evaluation of Vapi for production voice agents, measured against the platforms I run daily for clients, with the tests I would run before shipping.
Updated 2026-08-18

I haven't shipped a client build on Vapi yet. This is my read from evaluating it against the platforms I do run in production. I would rather open with that than write another confident platform review by somebody who spent forty minutes in a free trial and called it experience.
Here is what I do have. I operate voice agents for real businesses: six live agents for a telecom client under one multi-tenant setup plus roughly sixteen demo agents, a shopping assistant for a jewelry retailer that runs on chat and voice across multiple sites, an agent for a windows-and-doors company in the UK, a receptionist on my own agency line, and a phone agent for an energy company built directly on a realtime speech model with Twilio underneath. Those builds gave me a list of things that break. This page runs Vapi past that list.
What Vapi is, in plain terms
Vapi is a hosted voice agent platform with an API-first posture. You define an assistant (model, voice, transcription, prompt, tools), attach a number, and Vapi runs the real-time audio pipeline, the interruption handling, and the telephony plumbing. It exposes most of that through an API and SDKs, with a dashboard on top rather than instead.
The category it competes in is the same one as Retell AI: sitting between "no-code builder" and "write your own websocket server." It is a genuinely useful place to sit. I know exactly how much work the do-it-yourself route is, because that is what I chose on the OpenAI Realtime API build, and the first week went entirely to audio encoding and reconnect handling before anybody heard a single sentence.
As of mid-2026 the pricing model is per-minute, with your choice of model and voice provider affecting the rate, plus telephony. Bring-your-own-keys for the underlying model and voice vendors is part of the pitch, which is worth understanding: it can lower cost and it can also mean you now own three vendor relationships instead of one.
The composability question
The thing that most distinguishes Vapi in the marketing is that you assemble the pipeline: pick the transcription vendor, pick the model, pick the voice. That is real flexibility and I want to be fair about both sides of it.
The upside is control. If a client's callers have heavy accents and one transcription vendor handles them better, you can swap. If a voice sounds wrong for the brand, you swap. I have spent real time on voice selection for clients and it matters more than engineers assume, which is why I wrote choosing a voice for your agent.
The downside is that a pipeline of three vendors has three failure surfaces and three latency contributions. My experience migrating an energy client off a transcription-plus-model-plus-voice stack onto a single speech-to-speech model was that the conversation got noticeably more natural, particularly on interruptions, and the number of things that could have a bad afternoon went down. Composability is a feature when you need it and a liability when you do not. If a platform lets me assemble a pipeline, my question becomes: does it also let me choose not to, and is the default sensible for someone who does not want to tune it?
What I would test in the first week
If a client build landed here tomorrow, this is my order of work. It is deliberately not "write a great prompt," because the prompt is never what fails first.
Silence behavior. The worst voice failure is dead air. A caller who hears nothing assumes the phone line is broken, hangs up, and does not call back. I have had an agent go completely silent on answer because of an empty configuration field, and it presented exactly like a carrier fault. I have also seen a model outage with no fallback configured produce the same silence. So: does the platform support a fallback model, does it play something when a turn stalls, and can I query for calls that produced zero agent audio? If those answers are missing, that is a production risk regardless of how good the demo sounded. Voice agent dead air debugging has the full triage path.
Transfers. Transfers fail in ways demos never show. On one platform I run, the transfer tool must reference the live call's control identifier rather than any stored value, or the request is rejected and the caller is stranded after the agent has already promised to connect them. For any new platform I want to know: warm or cold, what context passes to the human, what happens when the destination does not pick up, and whether a failed transfer has a defined recovery or just drops. See call transfer flows.
Variable substitution. Injecting caller and account context at call start is standard, and the standard failure is a placeholder that does not resolve and sits in the prompt as a literal token. The model then behaves strangely for reasons invisible in the editor, because the editor shows you the template, not the rendered instructions. I test this on purpose: start a call with a variable missing and watch. Graceful degradation is the bar.
Call-level observability. Transcript, recording, every tool call with its inputs and outputs, and per-turn timing. Aggregate dashboards are for the client. Per-call detail is for me, at 7am, when one specific customer had a bad experience. A platform that hides tool payloads turns every incident into guesswork.
Multi-tenant structure. I do not run one agent, I run many for different businesses. Can I isolate clients, share a base configuration, push a prompt fix to several agents at once, and keep billing separable? This is where agency work either scales or becomes a second job.
Where this kind of platform wins, and where it does not
| Situation | My call |
|---|---|
| Small business needs a receptionist live this month | Hosted platform, every time |
| Client already on a carrier with native agents | Use the carrier's, fewer hops |
| High volume, margin matters | Consider building direct on a realtime model |
| Weird requirements or embedding in an existing app | Build direct |
| Nobody will pay for ongoing engineering | Hosted, and do not pretend otherwise |
The honest framing is that a per-minute markup buys you not having to maintain audio plumbing. For a client on a retainer of one or two hundred dollars a month, that is an excellent trade and I would take it without hesitation. It stops being a good trade when volume grows or when you need something the platform will not do. That is the whole argument in build vs buy.
The prompt work that platforms cannot do for you
Whatever platform you land on, one piece of the job is yours. Every production agent I run has an explicit section listing abilities the agent does NOT have. That came from a real incident: a receptionist agent told callers, with total confidence, that it had blocked a phone number for them. It could not block numbers. Nothing in the prompt said it could. It invented the capability because the prompt only described what it could do, and a helpful-sounding model fills gaps.
Writing "you cannot block numbers, you cannot issue refunds, you cannot change appointments already confirmed, if asked say you will pass it to a person" is not prompt padding. It is the single highest-value paragraph in most agents I have shipped. Stopping chatbot hallucinations goes further, and the system prompt guide covers the structure I use.
My verdict
Vapi looks like a well-built platform aimed squarely at developers who want control without owning the audio stack. I have not run it in production for a client and will not pretend otherwise, so treat this as a framework for your own evaluation rather than a recommendation earned on real call volume.
What I will assert from experience is that the choice between the good platforms in this category matters less than people expect. I have seen the same underlying capability produce a great deployment and a bad one. The difference was never the vendor. It was whether somebody tested from a real phone on a real network, wrote down what the agent must never claim, configured what happens when things fail, and read transcripts every day for two weeks after launch. Pick a platform you can debug, then go do that work.
FAQ
Have you built a client agent on Vapi?
No. I run production voice agents on other stacks and this is an evaluation against those. I have said so at the top rather than in a footnote, because buyers deserve to know which parts of a review are earned.
Vapi or Retell, which should I pick?
I do not have first-hand production data on either, so I will not fake a winner. Build the same small agent on both during a trial and compare on the things that hurt later: transfer reliability, per-call tool visibility, and behavior when a model or a destination fails. Both will demo well. The comparison page lays out the criteria in more detail.
Does bring-your-own-model actually save money?
Sometimes, on paper. It also means you manage more vendor accounts, more keys, and more places where an outage can start. For a single small client I would take the simpler default. At volume, where per-minute economics start driving the retainer, the extra complexity can be worth it.
Is a composed pipeline slower than a speech-to-speech model?
In my experience, yes, and more noticeably on interruptions than on plain latency numbers. When I moved a client from a transcription-plus-model-plus-voice stack to a single speech-to-speech model, the interruption handling improved enough that people commented on it. That said, a composed pipeline gives you an exact transcript of what the model received, which is genuinely easier to debug.
What should I do before pointing a client's real number at any of this?
Test-call it from your own cell phone on a real cellular connection, not just a simulator, because some call variables only exist on real calls and some bugs only appear there. Then try to break it: interrupt it, go silent, ask something out of scope, and transfer to a number nobody answers. Testing voice agents is the checklist I run.