# AWS End User Messaging

> AWS's own SMS and voice. Its calls can't collect "press 1", and approvals are slow. I use Twilio.

- Verdict: Skip
- Vendor: AWS
- Layer: [Email and messaging](https://cloudlesslabs.com/stack/layers/email/index.md). Job: SMS and voice
- Last reviewed: 24 October 2026, by Nicolas Dao (Cloudless Labs, Sydney)
- Web page: https://cloudlesslabs.com/stack/aws-end-user-messaging/. The whole stack in one file: https://cloudlesslabs.com/stack/brief.md

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](https://cloudlesslabs.com/stack/twilio/index.md): Calls with acknowledgement, or a quicker start.

## Worked examples

- [A fire alarm at 2:14 am](https://cloudlesslabs.com/stack/guides/fire-alarm/index.md): A detector smells smoke at night. How does a person know within a minute?

## Where it fits

- [Alerts that must wake someone up](https://cloudlesslabs.com/stack/use-cases/critical-alerts/index.md): 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](https://cloudlesslabs.com/stack/twilio/index.md).

## Sources

- [SendVoiceMessage API (no keypress input)](https://docs.aws.amazon.com/pinpoint/latest/apireference_smsvoicev2/API_SendVoiceMessage.html)
- [AWS End User Messaging pricing](https://aws.amazon.com/end-user-messaging/pricing/)
- [SMS and voice quotas](https://docs.aws.amazon.com/sms-voice/latest/userguide/quotas.html)
- [The sandbox](https://docs.aws.amazon.com/sms-voice/latest/userguide/sandbox.html)
- [Australia sender ID registration](https://docs.aws.amazon.com/sms-voice/latest/userguide/registrations-australia.html)
- [Countries, carriers and long codes](https://docs.aws.amazon.com/sms-voice/latest/userguide/phone-numbers-sms-by-country.html)

## Related

- [Email and messaging](https://cloudlesslabs.com/stack/layers/email/index.md): every tool in this layer, with its verdict
- [The whole stack in one file](https://cloudlesslabs.com/stack/brief.md): every use case and tool, for questions that span many
- [Map of every Markdown file on cloudlesslabs.com, with what each one answers](https://ask.cloudlesslabs.com)
