I haven't shipped on it, and after comparing it with Twilio for alert calls, I won't.
End User Messaging is the SMS and voice part of what used to be Pinpoint and SNS's SMS. For plain SMS it's fine and slightly cheaper than Twilio. The problem is voice. A call can read a message, but it can't ask the person to press 1, and it can't tell a voicemail from a human. For an alert, "the call completed" isn't the same as "someone knows", and that's the only thing that matters. AWS's answer is Amazon Connect, a full contact-centre product with its own instance, flows and numbers.
Add the sandbox, three-week number approvals and voice caps AWS says it won't raise, and Twilio does the same job with less friction. If a client already sends SMS through it and only needs SMS, leave it alone.
Use it when
- SMS only (codes, notices), when the client wants everything on the AWS bill and behind IAM.
Don't use it when
- Alert calls. SendVoiceMessage plays text-to-speech one way: no keypress, no callback. "Press 1 to acknowledge" needs Amazon Connect, a call-centre product.
- Anything that may call the same person often: voice is capped at 20 calls a minute and 5 per recipient per 24 hours, and AWS lists those caps as not increasable.
Pricing
Australia (USD): SMS $0.04, outbound voice $0.070 a minute, an SMS long code $22 a month (a voice-capable number needs a support case). The sandbox allows $1 of SMS a month.
Gotchas, with fixes
Gotcha: New accounts start in a sandbox: $1 of SMS a month to verified numbers, and 20 voice calls a day.
Fix: Open the support case to leave the sandbox at the start of the project.
Gotcha: An Australian long code takes about three weeks, and a number that can call needs a separate support case.
Fix: Request numbers early, and confirm voice capability in writing.
Gotcha: Each country's messages go through a single carrier partner: one point of failure.
Fix: For anything critical, keep a second provider ready.
Gotcha: A call that reaches voicemail reports COMPLETED, the same as a person listening.
Fix: Don't use it where you need to know a person heard the message.
Gotcha: Pinpoint reaches end of support on 30 October 2026. Its SMS and voice channels live on as End User Messaging, but the old Pinpoint APIs don't.
Fix: Move Pinpoint SMS code to the pinpoint-sms-voice-v2 API.
Provisioning
Official Pulumi package · Official Terraform provider
Terraform's aws_pinpointsmsvoicev2_* resources (phone numbers, configuration sets, opt-out lists), also in @pulumi/aws. Registrations and leaving the sandbox are console and support steps.
Use instead
Twilio: calls that collect an acknowledgement, faster number approval, and calls and SMS in one API.
Alternatives
- Twilio Calls with acknowledgement, or a quicker start.
Worked examples
Where it fits
- Alerts that must wake someone up: Don't.
Its calls are one-way text-to-speech: no "press 1", no way to tell a person from voicemail, and voice is capped at 20 calls a minute.
Instead: Twilio
Sources
- SendVoiceMessage API (no keypress input)
- AWS End User Messaging pricing
- SMS and voice quotas
- The sandbox
- Australia sender ID registration
- Countries, carriers and long codes
Last reviewed by Nicolas Dao