Message Feedback

Message Feedback is a subresource of a Messages instance resource and represents the user-reported outcome of a message.

Read more about sending Message Feedback to Twilio to better understand and optimize your message deliverability. For step-by-step instructions on how to track the delivery status of your sent messages, follow our guide to Tracking Delivery Status in your web programming language of choice. 

Resource URI 


Resource Properties

A Message Feedback instance resource is represented by the following properties:

Name Description

unconfirmed or confirmed. If ProvideFeedback=true in the initial HTTP POST, this value will default to unconfirmed. Make an HTTP POST to update this value to confirmed after the message arrives. (not PII)

Outcome Values

The following are the possible values for the Outcome parameter:

Outcome Description
unconfirmed The message has not yet arrived at the To phone number. Note that this may mean the message has failed or it is still pending. For the purposes of the Message Feedback API, these two states are considered the same. Your application should not POST this value as it will be automatically set when the initial HTTP POST includes ProvideFeedback=true.
confirmed The message has arrived at the To phone number. Even if the message is delayed in delivery, you should still POST this value as soon as you have confirmed that the message was received.


Not supported


If the message was originally sent with ProvideFeedback=true, the Outcome of the Message Feedback instance will be unconfirmed by default. As soon as the message is confirmed as having arrived at the device, use an HTTP POST to the Message Feedback instance resource to update the Outcome to confirmed.


Not supported


Not supported

Helper Library Support

The Message Feedback endpoint is supported in our Next Generation Helper Libraries, but not in our legacy helper libraries.

If you are not already using the Next Generation Helper Libraries, you can still use the Message Feedback API by POSTing directly to the REST endpoint.

Example Usage

Set the ProvideFeedback parameter to 'true' when you send the message.

curl -X POST '' \
--data-urlencode 'To=+18085551234'  \
--data-urlencode 'From=+16045559876'  \
--data-urlencode 'Body=Your verification code is: 249205' \
--data-urlencode 'ProvideFeedback=true'  \
-u ACa9b8c7d6e5f43120a9b8c7d6e5f43120:[AuthToken]

Save the message SID which is included in the response.

{"sid": "SM1f2e3d4c5b6a70891f2e3d4c5b6a7089", "date_created": "Thu, 14 Jul 2016 14:18:40 +0000", ...}

If the user receives the text message, make an additional POST to the Feedback subresource to set the Outcome to 'confirmed'

curl -X POST '' \
--data-urlencode 'Outcome=confirmed'  \
-u ACa9b8c7d6e5f43120a9b8c7d6e5f43120:[AuthToken]

Need some help?

We all do sometimes; code is hard. Get help now from our support team, or lean on the wisdom of the crowd browsing the Twilio tag on Stack Overflow.