Twilio AMD pricing at a glance
As of November 2026, Twilio's public price list shows answering machine detection at $0.0075 per answered call. Twilio's US outbound list price for voice was $0.014 per minute at the same time. Prices and discounts change, so check Twilio's current pricing page before you put these numbers into a budget.
Two facts matter more than the headline number:
- The AMD fee comes on top of call minutes. Detection is not part of the per-minute rate. Every answered call that runs detection carries its own charge, in addition to whatever the call itself costs.
- It only works on calls placed through Twilio. Twilio AMD is a setting on calls you create with Twilio's API. A VICIdial or Asterisk server dialing over your own SIP trunks can't switch it on.
Three quarters of a cent sounds like nothing. Written per 1,000 calls it is $7.50, and per million answered calls it is $7,500 a month for the detection step alone. For an outbound center that answers hundreds of thousands of calls a week, that is a real line item.
How Twilio answering machine detection works
Twilio's AMD is controlled by a parameter when you create an outbound call through its API.
The MachineDetection parameter
You add MachineDetection to the call request with one of two values:
Enable: Twilio reports who answered as soon as it has decided.DetectMessageEnd: Twilio waits for the end of a voicemail greeting before reporting, which is the mode you use when you want to leave a message after the greeting.
Detection can also run asynchronously (AsyncAmd). In that mode the call goes ahead while detection runs, and your application receives the result separately and decides what to do.
The AnsweredBy result
The verdict arrives in a field called AnsweredBy. These are the values your application has to handle:
| AnsweredBy value | What it tells you |
|---|---|
human | A live person answered |
machine_start | A machine answered (reported at the start of the greeting) |
machine_end_beep | A machine answered and the greeting ended with a beep |
machine_end_silence | A machine answered and the greeting ended in silence |
machine_end_other | A machine answered and the greeting ended some other way |
fax | A fax machine answered |
unknown | Twilio could not decide |
Your code decides what each value means for routing. That is flexible, but it is also work: someone has to write, test and maintain the logic that sends human to an agent, drops a message on machine_end_beep and decides what to do with unknown.
On accuracy, Twilio's own marketing claims 95%+. When you compare any AMD, ask for two numbers, not one: how many live people reach agents, and how many calls sent to agents are actually live people. We publish both for nomoVM on our accuracy page.
Monthly cost examples at real volumes
The table below uses Twilio's November 2026 list price of $0.0075 per answered call. It shows the AMD fee only. Call minutes are extra in every column, including nomoVM's, because nomoVM doesn't carry your calls: you keep paying your own carrier as you do today.
| Answered calls a month | Twilio AMD fee | nomoVM plan | nomoVM cost |
|---|---|---|---|
| 100,000 | $750 | Starter | $99 |
| 250,000 | $1,875 | Starter | $99 |
| 1,000,000 | $7,500 | Starter | $99 |
| 3,000,000 | $22,500 | Growth | $199 |
| 10,000,000 | $75,000 | Scale | $499 |
The Twilio column is simple arithmetic: answered calls multiplied by $0.0075. It grows in a straight line with your volume at list price; if you negotiate volume pricing with Twilio, use your own rate instead.
Adding the minutes back in
To see the full Twilio bill, add the minutes. Take a hypothetical center that answers 1,000,000 calls a month and, for the sake of the example, assume those calls bill an average of 1.5 minutes each at the $0.014 US list rate:
- Minutes: 1,500,000 × $0.014 = $21,000
- AMD: 1,000,000 × $0.0075 = $7,500
- Total: $28,500, of which detection is about a quarter
Your own call length, unanswered attempts and negotiated rates will move these numbers. The point is the shape: on Twilio, detection is a meaningful share of the voice bill, not a rounding error.
Costs that don't show on the price list
The per-call fee is the visible part. These are the costs that show up later.
- You pay per answered call, not per right answer. An
unknownverdict, or a live person judged to be a machine, costs the same as a correct one. - Your traffic has to live on Twilio. To use the feature you place calls through Twilio's API. If your carriers, rates and caller ID setup are elsewhere, using Twilio AMD means moving them.
- Engineering time. Handling seven
AnsweredByvalues, async callbacks and edge cases is code you own. A dialer like VICIdial expects to route on a simple status inside its dialplan instead. - Lost conversations. Any AMD that hangs up on live people costs you leads. That cost is often larger than the fee itself; see what AMD false positives really cost.
- Dead air. The longer detection listens before a person reaches an agent, the more silence the person hears. That hurts contact rates and can push abandoned calls up. Our dead air guide explains why.
When Twilio AMD makes sense
Twilio AMD is a reasonable choice in some setups, and it is fair to say so:
- Your application already places calls through Twilio's API, for example a custom notification app or a voice agent built on Twilio.
- Your volume is low enough that the per-call fee stays small.
- You have developers who will build and maintain the routing logic around
AnsweredBy. - You want one vendor for carrier, call control and detection, and accept the per-call price for that convenience.
It makes much less sense if you run VICIdial, GoAutoDial or another Asterisk dialer on your own trunks. In that case Twilio AMD isn't available to you without rebuilding how you place calls. We compare the two approaches side by side on our Twilio AMD alternative page.
The alternative for VICIdial and Asterisk dialers
nomoVM is hosted AI answering machine detection for dialers you already run. Your dialer streams the first seconds of each answered call over an encrypted WebSocket and gets one verdict back. Your carrier, routing and agents stay exactly as they are, and it works with any SIP carrier because nomoVM listens to audio the dialer already has.
There is no additional infrastructure: no new servers, no new hardware and no carrier change. It is one script on the dialer you already run, and setup takes about 10 minutes.
What setup looks like on VICIdial
Install the client
Copy
nomovm.agi.pyto/var/lib/asterisk/agi-bin/and runchmod 755on it. It needs Python 3.6 or newer and only the standard library; ViciBox 11 and 12 already have Python 3.Test the connection
Run
python3 nomovm.agi.py --test wss://amd.nomovm.com/ YOUR_KEY. It should printAMDSTATUS=MACHINE AMDCAUSE=SILENCEin about 2 seconds.Add extension 8370
Copy VICIdial's 8369 AMD extension as 8370 with the nomoVM line added:
exten => 8370,1,AGI(agi://127.0.0.1:4577/call_log) exten => 8370,n,EAGI(nomovm.agi.py,wss://amd.nomovm.com/,YOUR_KEY,4500) exten => 8370,n,GotoIf($["${AMDSTATUS}" = "FALLBACK"]?native) exten => 8370,n(vdamd),AGI(VD_amd.agi,${EXTEN}) exten => 8370,n,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LB-----${CONNECTEDLINE(name)}) exten => 8370,n,Hangup() exten => 8370,n(native),AMD(2000,2000,1000,5000,120,50,4,256) exten => 8370,n,Goto(vdamd)Switch one campaign
Change the campaign's Routing Extension from 8369 to 8370. To roll back, set it back to 8369.
The full walkthrough is in our VICIdial AMD setup guide, and the VICIdial AMD page covers how it fits with VICIdial's existing AMD routing.
What you get back
Most calls are decided about 2 seconds after answer; only unclear calls listen up to 3.2 seconds. AMDSTATUS comes back as HUMAN, MACHINE or FALLBACK, and AMDCAUSE says why (for example SCREENING for call screening assistants, TONE for beeps and fax, BUSY for busy or reorder). If anything goes wrong after streaming starts, the call is treated as a machine, so only a confirmed person reaches an agent. If the service can't be used at all, you get FALLBACK before any audio is used, Asterisk's own AMD() handles that call, and it is never billed.
What it costs
Plans are flat: Free gives you 30,000 calls a month with no card and a hard limit, Starter is $99 for 1,000,000 calls, Growth $199 for 3,000,000 and Scale $499 for 10,000,000. Extra calls on paid plans are $0.0002 each. One billable call is one verdict on an answered call, with no per-server or per-agent fees. Details are on the pricing page, and the full answering machine detection cost comparison puts Twilio, Telnyx, Asterisk AMD() and nomoVM in one table.
Next steps
If your calls already run through Twilio's API, price Twilio AMD at your real volume using the table above and Twilio's current pricing page. If your calls run through VICIdial or Asterisk on your own trunks, try nomoVM on one campaign: create a free account, follow the setup guide, and compare a week of results against your current AMD.
Frequently asked questions
How much does Twilio AMD cost?
Twilio's public price list in November 2026 shows answering machine detection at $0.0075 per answered call. That is $7.50 per 1,000 answered calls, or $7,500 per million. Prices change, so check Twilio's current pricing page.
Is Twilio's AMD fee included in the per-minute call price?
No. The AMD fee is charged on top of the normal call charges. Twilio's US outbound list price was $0.014 per minute in November 2026, so you pay for the minutes and for detection separately.
Can I use Twilio AMD with VICIdial on my own SIP trunk?
No. Twilio answering machine detection is a parameter on calls you create through Twilio's API, so it only works on calls placed through Twilio. If VICIdial or Asterisk places calls over your own trunks, you need detection that runs on your dialer, such as nomoVM.
What does AnsweredBy unknown mean in Twilio?
It means Twilio could not decide who answered the call. Your application has to choose what to do with those calls, for example send them to an agent or treat them as machines. Count how often you get it, because each one still uses an answered-call AMD charge.
How does nomoVM pricing compare with Twilio AMD?
nomoVM uses monthly plans: Starter is $99 for 1,000,000 calls, Growth $199 for 3,000,000 and Scale $499 for 10,000,000, then $0.0002 per extra call. At 1 million answered calls a month that is $99 against $7,500 in Twilio AMD fees, with your carrier minutes paid separately in both cases.
Does nomoVM charge for calls when the service is unavailable?
No. If the key is wrong, the plan limit is reached or the service can't be reached, nomoVM returns FALLBACK before any audio is used. Your dialplan then runs Asterisk's own AMD() for that call, and fallback calls are never billed.