SignalWire Messages API

Send and manage SMS/MMS messages.

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/signalwire-messages-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

signalwire-messages-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Signalwire Messages API
  version: 1.0.0
  description: 'Operations tagged Messages across 2 of this provider''s published API definitions: signalwire-compatibility-openapi.yml, signalwire-rest-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://{space_name}.signalwire.com/api/laml/2010-04-01
  description: SignalWire Compatibility API
  variables:
    space_name:
      default: YOUR_SPACE
      description: Your SignalWire Space name
- url: https://{space_name}.signalwire.com
  description: SignalWire API
  variables:
    space_name:
      default: '{Your_Space_Name}'
      description: Your SignalWire Space name
security:
- SignalWireBasicAuth: []
tags:
- name: Messages
  description: Send and manage SMS/MMS messages.
  externalDocs:
    url: https://signalwire.com/docs/compatibility-api/rest
    description: Developer documentation on the Compatibility REST API
paths:
  /Accounts/{AccountSid}/Messages:
    get:
      operationId: list_messages
      summary: List all Messages
      description: 'List all messages.


        #### Permissions


        The API token used to authenticate must have the following scope(s) enabled to make a successful request: _Messaging_.


        [Learn more about API scopes](/docs/platform/your-signalwire-api-space).'
      parameters:
      - $ref: '#/components/parameters/MessagesAccountSidPath'
      - name: DateSent
        in: query
        required: false
        description: Only return messages sent on this particular date, formatted as YYYY-MM-DD in UTC.
        schema:
          type: string
        explode: false
      - name: DateSent<
        in: query
        required: false
        description: Only return messages sent before this date, formatted as YYYY-MM-DD in UTC.
        schema:
          type: string
        explode: false
      - name: DateSent>
        in: query
        required: false
        description: Only return messages sent after this date, formatted as YYYY-MM-DD in UTC.
        schema:
          type: string
        explode: false
      - name: From
        in: query
        required: false
        description: The phone number in E.164 format. For inbound messages, this will be the remote phone number who sent the message. For outbound messages, this will be one of your SignalWire phone numbers.
        schema:
          type: string
        explode: false
      - name: To
        in: query
        required: false
        description: The phone number in E.164 format that received the message. For inbound messages, this is one of your SignalWire phone numbers; for outbound messages, this is the remote phone number that received the message.
        schema:
          type: string
        explode: false
      - name: Status
        in: query
        required: false
        description: Current status of the message.
        schema:
          $ref: '#/components/schemas/MessageStatus'
        explode: false
      - name: Page
        in: query
        required: false
        description: The page number to retrieve. Default is 0.
        schema:
          type: integer
          format: int32
          minimum: 0
          default: 0
        explode: false
      - name: PageSize
        in: query
        required: false
        description: The number of items per page. Default is 50, maximum is 1000.
        schema:
          type: integer
          format: int32
          minimum: 1
          maximum: 1000
          default: 50
        explode: false
      - name: PageToken
        in: query
        required: false
        description: The token for cursor-based pagination. Must start with 'PA' or 'PB'.
        schema:
          type: string
        explode: false
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MessageListResponse'
        '400':
          description: The request was invalid or cannot be processed. Check the error details for more information.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CompatibilityErrorResponse'
        '401':
          description: Authentication failed. Please verify your credentials and try again.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CompatibilityErrorResponse'
        '422':
          description: The request could not be processed due to validation errors. Check the error details for more information.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CompatibilityErrorResponse'
      tags:
      - Messages
    post:
      operationId: create_message
      summary: Create a Message
      description: 'Create and send a message.


        #### Permissions


        The API token used to authenticate must have the following scope(s) enabled to make a successful request: _Messaging_.


        [Learn more about API scopes](/docs/platform/your-signalwire-api-space).'
      parameters:
      - $ref: '#/components/parameters/MessagesAccountSidPath'
      responses:
        '201':
          description: Response returned when a message is created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Message'
        '400':
          description: The request was invalid or cannot be processed. Check the error details for more information.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CompatibilityErrorResponse'
        '401':
          description: Authentication failed. Please verify your credentials and try again.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CompatibilityErrorResponse'
        '422':
          description: The request could not be processed due to validation errors. Check the error details for more information.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CompatibilityErrorResponse'
      tags:
      - Messages
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/CreateMessageRequest'
    servers:
    - url: https://{space_name}.signalwire.com/api/laml/2010-04-01
      description: SignalWire Compatibility API
      variables:
        space_name:
          default: YOUR_SPACE
          description: Your SignalWire Space name
  /Accounts/{AccountSid}/Messages/{Sid}:
    get:
      operationId: retrieve_message
      summary: Retrieve a Message
      description: 'Retrieve a single message.


        #### Permissions


        The API token used to authenticate must have the following scope(s) enabled to make a successful request: _Messaging_.


        [Learn more about API scopes](/docs/platform/your-signalwire-api-space).'
      parameters:
      - $ref: '#/components/parameters/MessagesAccountSidPath'
      - $ref: '#/components/parameters/MessageSidPath'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MessageResponse'
        '400':
          description: The request was invalid or cannot be processed. Check the error details for more information.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CompatibilityErrorResponse'
        '401':
          description: Authentication failed. Please verify your credentials and try again.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CompatibilityErrorResponse'
        '404':
          description: The requested resource was not found. Please verify the resource identifier.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CompatibilityErrorResponse'
      tags:
      - Messages
    post:
      operationId: update_message
      summary: Update a Message
      description: 'Update a message body after it has been sent. Currently, the only supported update is redacting the message by setting the body to an empty string. Messages that are still in progress (queued or initiated status) cannot be updated.


        #### Permissions


        The API token used to authenticate must have the following scope(s) enabled to make a successful request: _Messaging_.


        [Learn more about API scopes](/docs/platform/your-signalwire-api-space).'
      parameters:
      - $ref: '#/components/parameters/MessagesAccountSidPath'
      - $ref: '#/components/parameters/MessageSidPath'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MessageResponse'
        '400':
          description: The request was invalid or cannot be processed. Check the error details for more information.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CompatibilityErrorResponse'
        '401':
          description: Authentication failed. Please verify your credentials and try again.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CompatibilityErrorResponse'
        '404':
          description: The requested resource was not found. Please verify the resource identifier.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CompatibilityErrorResponse'
        '422':
          description: The request could not be processed due to validation errors. Check the error details for more information.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CompatibilityErrorResponse'
      tags:
      - Messages
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/UpdateMessageRequest'
    delete:
      operationId: delete_message
      summary: Delete a Message
      description: 'Delete a message. Messages that are still in progress (queued status) cannot be deleted.


        #### Permissions


        The API token used to authenticate must have the following scope(s) enabled to make a successful request: _Messaging_.


        [Learn more about API scopes](/docs/platform/your-signalwire-api-space).'
      parameters:
      - $ref: '#/components/parameters/MessagesAccountSidPath'
      - $ref: '#/components/parameters/MessageSidPath'
      responses:
        '204':
          description: 204 No Content response.
        '400':
          description: The request was invalid or cannot be processed. Check the error details for more information.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CompatibilityErrorResponse'
        '401':
          description: Authentication failed. Please verify your credentials and try again.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CompatibilityErrorResponse'
        '404':
          description: The requested resource was not found. Please verify the resource identifier.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CompatibilityErrorResponse'
        '422':
          description: The request could not be processed due to validation errors. Check the error details for more information.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CompatibilityErrorResponse'
      tags:
      - Messages
    servers:
    - url: https://{space_name}.signalwire.com/api/laml/2010-04-01
      description: SignalWire Compatibility API
      variables:
        space_name:
          default: YOUR_SPACE
          description: Your SignalWire Space name
  /api/messaging/messages:
    post:
      operationId: create_message
      summary: Send a message
      description: 'Create and queue an outbound message for delivery. The channel is determined by the `from` number:


        - **SMS/MMS** when `from` is a purchased SignalWire phone number or shortcode. The message is MMS when `media` is present or `send_as_mms` is set, otherwise SMS.

        - **WhatsApp** when `from` is a `whatsapp:`-prefixed [WhatsApp number](/docs/platform/messaging/whatsapp/send-messages). Set `message_type` for a content message, or `template_id` for an [approved template](/docs/platform/messaging/whatsapp/message-templates). Free-form WhatsApp content is only allowed within the 24-hour customer service window.


        #### Permissions


        The API token used to authenticate must have the following scope(s) enabled to make a successful request: _Messaging_.


        [Learn more about API scopes](/docs/platform/your-signalwire-api-space).'
      parameters: []
      responses:
        '201':
          description: Response returned when a message is successfully created and queued for delivery.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Message.Message'
        '400':
          description: The request is invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Types.StatusCodes.StatusCode400'
        '401':
          description: Access is unauthorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Types.StatusCodes.StatusCode401'
        '422':
          description: The request contains invalid parameters. See errors for details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Message.MessagesCreateStatusCode422'
        '500':
          description: An internal server error occurred.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Types.StatusCodes.StatusCode500'
      tags:
      - Messages
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Message.SendMessageRequest'
    servers:
    - url: https://{space_name}.signalwire.com
      description: SignalWire API
      variables:
        space_name:
          default: '{Your_Space_Name}'
          description: Your SignalWire Space name
  /api/messaging/messages/{message_id}:
    patch:
      operationId: update_message
      summary: Redact a message
      description: 'Redact the body of a previously sent message. This endpoint clears the message body for compliance, privacy, or moderation purposes — it does not support arbitrary updates to message attributes. The only accepted value for `body` is an empty string (`""`); any other value is rejected.


        Messages that are still in progress (`queued` or `initiated`) cannot be redacted. Messages in terminal states such as `delivered`, `undelivered`, or `failed` are eligible. Once redacted, the original body is overwritten and cannot be recovered.


        The `:message_id` path parameter is the message segment ID — the same ID returned by the create endpoint and shown in `/api/messaging/logs`.


        #### Permissions


        The API token used to authenticate must have the following scope(s) enabled to make a successful request: _Messaging_.


        [Learn more about API scopes](/docs/platform/your-signalwire-api-space).'
      parameters:
      - $ref: '#/components/parameters/Message.MessagePathID'
      responses:
        '200':
          description: Response returned when a message has been successfully redacted.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Message.Message'
        '400':
          description: The request is invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Types.StatusCodes.StatusCode400'
        '401':
          description: Access is unauthorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Types.StatusCodes.StatusCode401'
        '404':
          description: The server cannot find the requested resource.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Types.StatusCodes.StatusCode404'
        '422':
          description: The request contains invalid parameters. See errors for details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Message.MessagesUpdateStatusCode422'
        '500':
          description: An internal server error occurred.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Types.StatusCodes.StatusCode500'
      tags:
      - Messages
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Message.UpdateMessageRequest'
    servers:
    - url: https://{space_name}.signalwire.com
      description: SignalWire API
      variables:
        space_name:
          default: '{Your_Space_Name}'
          description: Your SignalWire Space name
webhooks:
  smsStatusCallback:
    post:
      operationId: sms_status_callback
      summary: SMS status callback
      description: 'Payload sent by SignalWire to your SMS Status Callback URL when the status of an SMS/MMS message changes.


        Configure this callback using the `StatusCallback` parameter when

        [sending an outgoing message](/docs/compatibility-api/rest/messages/create-message).


        There are 8 possible message statuses:


        | Status | Description |

        |--------|-------------|

        | `queued` | The API request was processed and the message is waiting to be sent. |

        | `sending` | The message is being transmitted to the nearest upstream carrier. |

        | `sent` | The nearest upstream carrier has accepted the message. |

        | `delivered` | The nearest upstream carrier confirmed receipt of the message. |

        | `undelivered` | SignalWire received notice from the upstream carrier that the message was not delivered. |

        | `failed` | SignalWire could not send the message. There is no charge for failed messages. |

        | `receiving` | SignalWire has received and is currently processing an inbound message. |

        | `received` | The inbound message has been received by a number in your account. |


        <Note>

        SignalWire only marks a message as `delivered` when it receives a Delivery Receipt (DLR)

        from the receiving carrier confirming entry into the end carrier''s network. `sent` means the message

        left SignalWire and reached the downstream peer. Some carriers send delayed DLRs; others send none

        at all. MMS messages never receive DLRs, so they will only ever reach `sent` status.

        </Note>


        Status callbacks are advisory, best-effort notifications — delivery can be delayed or fail silently, so don''t gate time-critical actions on receiving one. See [Status callback reliability](/docs/platform/webhooks#status-callback-reliability).'
      parameters: []
      responses:
        '200':
          description: Webhook received
      tags:
      - Messages
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SmsStatusCallbackPayload'
      security:
      - {}
    servers:
    - url: https://{space_name}.signalwire.com/api/laml/2010-04-01
      description: SignalWire Compatibility API
      variables:
        space_name:
          default: YOUR_SPACE
          description: Your SignalWire Space name
components:
  schemas:
    CreateMessageRequest:
      type: object
      required:
      - To
      properties:
        To:
          type: string
          description: The phone number in E.164 format that will receive the message.
          examples:
          - '+15557654321'
        From:
          type: string
          description: The phone number in E.164 format that will send the message. Either `From` or `MessagingServiceSid` must be provided.
          examples:
          - '+15551234567'
        Body:
          type: string
          description: The text of the message. Either `Body` or `MediaUrl` must be provided.
          examples:
          - Hello World!
        MediaUrl:
          anyOf:
          - type: string
          - type: array
            items:
              type: string
          format: uri
          description: URL(s) of media you wish to attach and send with the message. Can be specified multiple times for up to 8 media items.
          examples:
          - https://example.com/image.jpg
        SendAsMms:
          type: boolean
          description: When set to true, forces the message to be sent as an MMS.
          examples:
          - false
        ApplicationSid:
          allOf:
          - $ref: '#/components/schemas/uuid'
          description: The SID of a SignalWire cXML Application used to configure the message's status callback.
          examples:
          - b3877c40-da60-4998-90ad-b792e98472ap
        MaxPrice:
          type: string
          pattern: ^\d+\.?\d{0,4}$
          description: 'The maximum price in USD acceptable for the message to be sent. Format: decimal with up to 4 decimal places.'
          examples:
          - '0.0075'
        StatusCallback:
          type: string
          format: uri
          description: A URL endpoint to receive callbacks each time the status of the message changes. See the [SMS status callback](/docs/compatibility-api/rest/messages/webhooks/sms-status-callback) webhook for the payload your URL will receive.
          examples:
          - https://example.com/status-callback
        ValidityPeriod:
          type: integer
          format: int32
          minimum: 1
          maximum: 172800
          description: The number of seconds a message will allow being queued before canceling. Must be between 1 and 172800 (48 hours). Default is 14400 (4 hours).
          examples:
          - 14400
          default: 14400
        MessagingServiceSid:
          allOf:
          - $ref: '#/components/schemas/uuid'
          description: The ID of a number group to use when sending the message. Either `From` or `MessagingServiceSid` must be provided.
          examples:
          - b3877c40-da60-4998-90ad-b792e98472ms
      unevaluatedProperties:
        not: {}
      description: Request body for creating a message.
    SmsStatusCallbackPayload:
      type: object
      required:
      - MessageStatus
      - MessageSid
      - AccountSid
      - From
      - To
      - Body
      - NumMedia
      - NumSegments
      properties:
        MessageStatus:
          type: string
          enum:
          - queued
          - sending
          - sent
          - delivered
          - undelivered
          - failed
          - receiving
          - received
          description: 'The current status of the message at the time of the callback.

            One of: `queued`, `sending`, `sent`, `delivered`, `undelivered`, `failed`, `receiving`, `received`.'
          examples:
          - delivered
        ErrorCode:
          type: string
          description: If the message has failed or is undelivered, the error code may provide more information about what went wrong.
          examples:
          - '30003'
        MessageSid:
          type: string
          description: The unique ID of this message.
          examples:
          - b3877c40-da60-4998-90ad-b792e98472ms
        AccountSid:
          type: string
          description: The unique ID of the project this message is associated with.
          examples:
          - b3877c40-da60-4998-90ad-b792e98472af
        From:
          type: string
          description: The From number of the message.
          examples:
          - '+15551234567'
        To:
          type: string
          description: The To number of the message.
          examples:
          - '+15559876543'
        Body:
          type: string
          description: The body of the message.
          examples:
          - Hey, your order has shipped!
        NumMedia:
          type: integer
          format: int32
          description: The number of media files that were included with the message.
          examples:
          - 0
        NumSegments:
          type: integer
          format: int32
          description: 'The number of segments that make up the entire message.

            If the body exceeds 160 GSM-7 characters or 70 UCS-2 characters, it is automatically split into

            smaller segments that are annotated for reconstruction on the recipient handset.'
          examples:
          - 1
      unevaluatedProperties:
        not: {}
    MessageListResponse:
      type: object
      required:
      - uri
      - first_page_uri
      - next_page_uri
      - previous_page_uri
      - page
      - page_size
      - messages
      properties:
        uri:
          type: string
          description: The URI of the current page.
          examples:
          - /api/laml/2010-04-01/Accounts/ea108133-d6b3-407c-9536-9fad8a929a6a/Messages?Page=0&PageSize=50
        first_page_uri:
          type: string
          description: The URI of the first page.
          examples:
          - /api/laml/2010-04-01/Accounts/ea108133-d6b3-407c-9536-9fad8a929a6a/Messages?Page=0&PageSize=50
        next_page_uri:
          anyOf:
          - type: string
          - type: 'null'
          description: The URI of the next page, or null if there are no more pages.
          examples:
          - /api/laml/2010-04-01/Accounts/ea108133-d6b3-407c-9536-9fad8a929a6a/Messages?Page=1&PageSize=50&PageToken=PA0a059168ead041af
        previous_page_uri:
          anyOf:
          - type: string
          - type: 'null'
          description: The URI of the previous page, or null if this is the first page.
          examples:
          - null
        page:
          type: integer
          format: int32
          description: The current page number.
          examples:
          - 0
        page_size:
          type: integer
          format: int32
          description: The number of items per page.
          examples:
          - 50
        messages:
          type: array
          items:
            $ref: '#/components/schemas/Message'
          description: List of messages.
      unevaluatedProperties:
        not: {}
      description: Response containing a list of messages.
    MessageResponse:
      type: object
      required:
      - account_sid
      - api_version
      - body
      - num_segments
      - num_media
      - date_created
      - date_sent
      - date_updated
      - direction
      - error_code
      - error_message
      - from
      - price
      - price_unit
      - sid
      - status
      - to
      - messaging_service_sid
      - uri
      - subresource_uris
      properties:
        account_sid:
          allOf:
          - $ref: '#/components/schemas/uuid'
          description: The unique identifier of the project that sent or received this message.
          examples:
          - ea108133-d6b3-407c-9536-9fad8a929a6a
        api_version:
          type: string
          description: The version number of the SignalWire cXML REST API used to handle this message.
          examples:
          - '2010-04-01'
        body:
          anyOf:
          - type: string
          - type: 'null'
          description: The text of the message. Up to 1600 characters long. May be null if filtered for spam.
          examples:
          - Hello World!
        num_segments:
          type: integer
          format: int32
          description: The number of segments that make up the entire message.
          examples:
          - 1
        num_media:
          type: integer
          format: int32
          description: The number of media files that were included with the message.
          examples:
          - 1
        date_created:
          type: string
          description: The date and time the message was created in RFC 2822 format.
          examples:
          - Mon, 13 Aug 2018 21:38:46 +0000
        date_sent:
          anyOf:
          - type: string
          - type: 'null'
          description: The date and time the message was sent in RFC 2822 format, or null if not yet sent.
          examples:
          - Mon, 13 Aug 2018 21:38:46 +0000
        date_updated:
          type: string
          description: The date and time the message was last updated in RFC 2822 format.
          examples:
          - Mon, 13 Aug 2018 21:38:46 +0000
        direction:
          allOf:
          - $ref: '#/components/schemas/MessageDirection'
          description: The direction of the message.
        error_code:
          anyOf:
          - type: string
          - type: 'null'
          description: If an error has occurred on the message, the error code will give you a specific code, or null if no error.
          examples:
          - '30001'
        error_message:
          anyOf:
          - type: string
          - type: 'null'
          description: A human readable description of the error that occurred, or null if no error.
          examples:
          - Queue overflow
        from:
          type: string
          description: The phone number in E.164 format that sent the message.
          examples:
          - '+15551234567'
        price:
          anyOf:
          - type: number
            format: float
          - type: 'null'
          description: The cost of the individual message billed to your project, or null if not yet calculated.
          examples:
          - 0.005
        price_unit:
          type: string
          description: The currency in which `price` is charged as.
          examples:
          - USD
        sid:
          allOf:
          - $ref: '#/components/schemas/uuid'
          description: A unique ID that identifies this specific message.
          examples:
          - 0a059168-ead0-41af-9d1f-343dae832527
        status:
          allOf:
          - $ref: '#/components/schemas/MessageStatus'
          description: Current status of the message.
        to:
          type: string
          description: The phone number in E.164 format that received the message.
          examples:
          - '+15557654321'
        messaging_service_sid:
          anyOf:
          - $ref: '#/components/schemas/uuid'
          - type: 'null'
          description: If a number group was used when sending an outbound message, the number group's ID will be present, or null otherwise.
          examples:
          - b3877c40-da60-4998-90ad-b792e98472ms
        uri:
          type: string
          description: The URI of this particular message.
          examples:
          - /api/laml/2010-04-01/Accounts/ea108133-d6b3-407c-9536-9fad8a929a6a/Messages/0a059168-ead0-41af-9d1f-343dae832527.json
        subresource_uris:
          allOf:
          - $ref: '#/components/schemas/MessageSubresourceUris'
          description: The URIs for any subresources associated with this message.
      unevaluatedProperties:
        not: {}
      description: Response containing a single message.
    uuid:
      type: string
      format: uuid
      description: Universal Unique Identifier.
    Message:
      type: object
      required:
      - account_sid
      - api_version
      - body
      - num_segments
      - num_media
      - date_created
      - date_sent
      - date_updated
      - direction
      - error_code
      - error_message
      - from
      - price
      - price_unit
      - sid
      - status
      - to
     

# --- truncated at 32 KB (81 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/signalwire/refs/heads/main/openapi/signalwire-messages-api-openapi.yml