> ## Documentation Index
> Fetch the complete documentation index at: https://docs.getoutbox.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Send SMS

> Send an SMS to a single contact via Twilio. The phone number to send from can be either company-owned or agency-owned (linked to the company). Message text supports `{{contact.*}}` and `{{company.*}}` variables. Contacts with DND enabled or no phone number are rejected.



## OpenAPI

````yaml POST /contact/send/sms/
openapi: 3.1.0
info:
  title: Outbox AI API
  description: API for managing AI agents (chatbots and voicebots) on the Outbox platform
  version: 1.0.0
servers:
  - url: https://api.getoutbox.ai
security: []
paths:
  /contact/send/sms/:
    post:
      tags:
        - contact
      summary: Send SMS to Contact
      description: >-
        Send an SMS to a single contact via Twilio. The phone number to send
        from can be either company-owned or agency-owned (linked to the
        company). Message text supports `{{contact.*}}` and `{{company.*}}`
        variables. Contacts with DND enabled or no phone number are rejected.
      operationId: contact_send_sms_create
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SendSMSRequestRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/SendSMSRequestRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/SendSMSRequestRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SendSMSResponse'
          description: ''
        '400':
          description: >-
            Missing required field, contact has DND enabled, or no phone number,
            or non-Twilio integration.
        '404':
          description: Phone number or contact not found / not linked to company.
        '500':
          description: Twilio send failed.
      security:
        - jwtAuth: []
        - {}
components:
  schemas:
    SendSMSRequestRequest:
      type: object
      properties:
        phone_number_id:
          type: string
          format: uuid
          description: Phone number ID to send from.
        phone_number_owner:
          allOf:
            - $ref: '#/components/schemas/PhoneNumberOwnerEnum'
          description: |-
            Whether the number lives under the company or its agency.

            * `company` - company
            * `agency` - agency
        contact_id:
          type: string
          format: uuid
          description: Recipient contact UUID.
        message:
          type: string
          minLength: 1
          description: >-
            Message body. Supports `{{contact.first_name}}`, `{{company.name}}`,
            etc.
      required:
        - contact_id
        - message
        - phone_number_id
        - phone_number_owner
    SendSMSResponse:
      type: object
      properties:
        message_id:
          type: string
          description: Twilio message SID.
        thread_message_id:
          type: string
          format: uuid
          description: Internal ThreadMessage row ID.
        status:
          type: string
      required:
        - message_id
        - status
        - thread_message_id
    PhoneNumberOwnerEnum:
      enum:
        - company
        - agency
      type: string
      description: |-
        * `company` - company
        * `agency` - agency
  securitySchemes:
    jwtAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT

````