> Fetch clean Markdown by appending `.md` to any page URL under https://signalwire.com/docs or requesting it with the HTTP header `Accept: text/markdown`. The root index at https://signalwire.com/docs/llms.txt lists the available documentation indexes. # send_sms > Send an outbound message to a PSTN phone number. Send an outbound message to a PSTN phone number. ## **Properties** **`send_sms`** `object` — required An object that accepts the following properties. Supports both SMS and MMS messages. See [message types](#message-types) below for the properties specific to each type. --- ## **Message types** The `send_sms` object accepts the following properties depending on the message type: #### SMS **`send_sms.to_number`** `string` — required Phone number to send SMS message to in e.164 format --- **`send_sms.from_number`** `string` — required Phone number SMS message will be sent from --- **`send_sms.body`** `string` — required Body of the text message --- **`send_sms.region`** `string` — default: Chosen based on account preferences or device location Region of the world to originate the message from --- **`send_sms.tags`** `string[]` Array of tags to associate with the message to facilitate log searches --- **`send_sms.status_callback`** `string` URL to receive delivery status callbacks for the outbound message (e.g., `queued`, `sent`, `delivered`, `failed`). Default is not set. See [Status callbacks](#status-callbacks) below. --- #### MMS **`send_sms.to_number`** `string` — required Phone number to send SMS message to in e.164 format --- **`send_sms.from_number`** `string` — required Phone number SMS message will be sent from --- **`send_sms.media`** `string[]` — required Array of media URLs to include in the message --- **`send_sms.body`** `string` Optional text to accompany the media --- **`send_sms.region`** `string` — default: Chosen based on account preferences or device location Region of the world to originate the message from --- **`send_sms.tags`** `string[]` Array of tags to associate with the message to facilitate log searches --- **`send_sms.status_callback`** `string` URL to receive delivery status callbacks for the outbound message (e.g., `queued`, `sent`, `delivered`, `failed`). Default is not set. See [Status callbacks](#status-callbacks) below. --- ## **Variables** Set by the method: * **send\_sms\_result:** (out) `success` | `failed`. ## **Status callbacks** > **Status callbacks are advisory** > > Status callbacks are asynchronous, best-effort HTTP notifications: delivery can be delayed or fail silently — if your server is unreachable, the callback simply never arrives. Don't gate time-critical or business-critical actions solely on receiving one. Confirm state via the REST API before acting, or use a transport with visible failure modes — see [Status callback reliability](/docs/platform/webhooks#status-callback-reliability). When `status_callback` is set, SignalWire sends an HTTP `POST` to that URL each time the outbound message transitions to a new state. Callback delivery is independent of SWML execution: the document continues as soon as the message is accepted, and delivery-state callbacks fire afterwards. The callback uses the same payload as other outbound messages sent through SignalWire. See the [Message status callback](/docs/apis/rest/webhooks/message-status-callback) webhook page for the full field reference and the list of possible `status` values. ## **Examples** #### SMS Send a text-only message: #### YAML ```yaml version: 1.0.0 sections: main: - send_sms: from_number: "+155512312345" to_number: "+15555554321" body: "Hi, I hope you're well." ``` #### JSON ```json { "version": "1.0.0", "sections": { "main": [ { "send_sms": { "from_number": "+155512312345", "to_number": "+15555554321", "body": "Hi, I hope you're well." } } ] } } ``` #### MMS Send a message with media attachment: #### YAML ```yaml version: 1.0.0 sections: main: - send_sms: from_number: "+155512312345" to_number: "+15555554321" media: ["https://example.com/image.jpg"] body: "Check out this image!" ``` #### JSON ```json { "version": "1.0.0", "sections": { "main": [ { "send_sms": { "from_number": "+155512312345", "to_number": "+15555554321", "media": [ "https://example.com/image.jpg" ], "body": "Check out this image!" } } ] } } ``` #### Status callbacks Send a message and receive delivery status updates at a callback URL: #### YAML ```yaml version: 1.0.0 sections: main: - send_sms: from_number: "+155512312345" to_number: "+15555554321" body: "Hi, I hope you're well." status_callback: "https://example.com/message_status" ``` #### JSON ```json { "version": "1.0.0", "sections": { "main": [ { "send_sms": { "from_number": "+155512312345", "to_number": "+15555554321", "body": "Hi, I hope you're well.", "status_callback": "https://example.com/message_status" } } ] } } ``` > Send an outbound message to a PSTN phone number.