MessagingS M S

Create Message

POST
/2010-04-01/Accounts/{AccountSid}/Messages.json

Send a message

Authorization

accountSid_authToken
AuthorizationBasic <token>

In: header

Path Parameters

AccountSid*string

The SID of the Account creating the Message resource.

Match^AC[0-9a-fA-F]{32}$
Length34 <= length <= 34

Request Body

application/x-www-form-urlencoded

To*string

The recipient's phone number in E.164 format (for SMS/MMS) or channel address, e.g. whatsapp:+15552229999.

Formatphone-number
StatusCallback?string

The URL of the endpoint to which Twilio sends Message status callback requests. URL must contain a valid hostname and underscores are not allowed. If you include this parameter with the messaging_service_sid, Twilio uses this URL instead of the Status Callback URL of the Messaging Service.

Formaturi
ApplicationSid?string

The SID of the associated TwiML Application. Message status callback requests are sent to the TwiML App's message_status_callback URL. Note that the status_callback parameter of a request takes priority over the application_sid parameter; if both are included application_sid is ignored.

Match^AP[0-9a-fA-F]{32}$
Length34 <= length <= 34
MaxPrice?number

[OBSOLETE] This parameter will no longer have any effect as of 2024-06-03.

ProvideFeedback?boolean

Boolean indicating whether or not you intend to provide delivery confirmation feedback to Twilio (used in conjunction with the Message Feedback subresource). Default value is false.

Attempt?integer

Total number of attempts made (including this request) to send the message regardless of the provider used

ValidityPeriod?integer

The maximum length in seconds that the Message can remain in Twilio's outgoing message queue. If a queued Message exceeds the validity_period, the Message is not sent. Accepted values are integers from 1 to 36000. Default value is 36000. A validity_period greater than 5 is recommended. Learn more about the validity period

ForceDelivery?boolean

Reserved

ContentRetention?message_enum_content_retention

Determines if the message content can be stored or redacted based on privacy settings

Value in

  • "retain"
  • "discard"
AddressRetention?message_enum_address_retention

Determines if the address can be stored or obfuscated based on privacy settings

Value in

  • "retain"
  • "obfuscate"
SmartEncoded?boolean

Whether to detect Unicode characters that have a similar GSM-7 character and replace them. Can be: true or false.

PersistentAction?array<string>

Rich actions for non-SMS/MMS channels. Used for sending location in WhatsApp messages.

TrafficType?"free"

Value in

  • "free"
ShortenUrls?boolean

For Messaging Services with Link Shortening configured only: A Boolean indicating whether or not Twilio should shorten links in the body of the Message. Default value is false. If true, the messaging_service_sid parameter must also be provided.

ScheduleType?"fixed"

For Messaging Services only: Include this parameter with a value of fixed in conjuction with the send_time parameter in order to schedule a Message.

Value in

  • "fixed"
SendAt?string

The time that Twilio will send the message. Must be in ISO 8601 format.

Formatdate-time
SendAsMms?boolean

If set to true, Twilio delivers the message as a single MMS message, regardless of the presence of media.

ContentVariables?string

For Content Editor/API only: Key-value pairs of Template variables and their substitution values. content_sid parameter must also be provided. If values are not defined in the content_variables parameter, the Template's default placeholder values are used.

RiskCheck?message_enum_risk_check

Include this parameter with a value of disable to skip any kind of risk check on the respective message request.

Value in

  • "enable"
  • "disable"
From?string

The sender's Twilio phone number (in E.164 format), alphanumeric sender ID, Wireless SIM, short code, or channel address (e.g., whatsapp:+15554449999). The value of the from parameter must be a sender that is hosted within Twilio and belongs to the Account creating the Message. If you are using messaging_service_sid, this parameter can be empty (Twilio assigns a from value from the Messaging Service's Sender Pool) or you can provide a specific sender from your Sender Pool.

Formatphone-number
MessagingServiceSid?string

The SID of the Messaging Service you want to associate with the Message. When this parameter is provided and the from parameter is omitted, Twilio selects the optimal sender from the Messaging Service's Sender Pool. You may also provide a from parameter if you want to use a specific Sender from the Sender Pool.

Match^MG[0-9a-fA-F]{32}$
Length34 <= length <= 34
Body?string

The text content of the outgoing message. Can be up to 1,600 characters in length. SMS only: If the body contains more than 160 GSM-7 characters (or 70 UCS-2 characters), the message is segmented and charged accordingly. For long body text, consider using the send_as_mms parameter.

MediaUrl?array<>

The URL of media to include in the Message content. jpeg, jpg, gif, and png file types are fully supported by Twilio and content is formatted for delivery on destination devices. The media size limit is 5 MB for supported file types (jpeg, jpg, png, gif) and 500 KB for other types of accepted media. To send more than one image in the message, provide multiple media_url parameters in the POST request. You can include up to ten media_url parameters per message. International and carrier limits apply.

ContentSid?string

For Content Editor/API only: The SID of the Content Template to be used with the Message, e.g., HXXXXXXXXXXXXXXXXXXXXXXXXXXXXX. If this parameter is not provided, a Content Template is not used. Find the SID in the Console on the Content Editor page. For Content API users, the SID is found in Twilio's response when creating the Template or by fetching your Templates.

Match^HX[0-9a-fA-F]{32}$
Length34 <= length <= 34

Response Body

application/json

curl -X POST "https://example.com/2010-04-01/Accounts/stringstringstringstringstringstri/Messages.json" \  -H "Content-Type: application/x-www-form-urlencoded" \  -d 'ApplicationSid=APaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa&Body=Hello%21+%F0%9F%91%8D&From=%2B14155552345&MediaUrl=https%3A%2F%2Fc1.staticflickr.com%2F3%2F2899%2F14341091933_1e92e62d12_b.jpg&PersistentAction=mailto%3Atest%40example.com&StatusCallback=https%3A%2F%2Fexample.com&To=%2B14155552345&Tags=%7B%22campaign_name%22%3A+%22Spring+Sale+2022%22%2C%22message_type%22%3A+%22cart_abandoned%22%7D'

{  "account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",  "api_version": "2010-04-01",  "body": "Hello! 👍",  "date_created": "Thu, 24 Aug 2023 05:01:45 +0000",  "date_sent": "Thu, 24 Aug 2023 05:01:45 +0000",  "date_updated": "Thu, 24 Aug 2023 05:01:45 +0000",  "direction": "outbound-api",  "error_code": null,  "error_message": null,  "from": "+14155552345",  "num_media": "0",  "num_segments": "1",  "price": null,  "price_unit": null,  "messaging_service_sid": "MGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",  "sid": "SMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",  "status": "queued",  "subresource_uris": {    "media": "/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Messages/SMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Media.json"  },  "to": "+14155552345",  "uri": "/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Messages/SMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.json"}