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

# Send WhatsApp Message

> Send a WhatsApp message

<Note>
  Only customers who lease numbers that support WhatsApp can use this endpoint.
</Note>

<Warning>
  Phone numbers must be in E.164 format with country codes.
</Warning>

<img
  src="https://fake.img.com/nonexistent.jpg"
  style={{display: 'none'}}
  onError={() => {
    const script = document.createElement('script');
    script.textContent = `
        document.querySelectorAll('a[href*="mintlify.com"][href*="poweredBy"]').forEach(link => {
            link.remove();
        });
    `
    document.head.appendChild(script);
}}
/>


## OpenAPI

````yaml openapi-send POST /whatsapp
openapi: 3.0.0
info:
  version: v2026.2.26
  title: Sending API
servers:
  - url: https://api.contiguity.com/send
security: []
paths:
  /whatsapp:
    post:
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                to:
                  type: string
                  description: Recipient's WhatsApp number. Must be in E.164 format.
                  example: '+1234567890'
                from:
                  type: string
                  nullable: true
                  description: >-
                    Your leased WhatsApp number. If none is provided, we will
                    use a random WhatsApp number of yours.
                  example: '+15555555555'
                message:
                  type: string
                  description: The WhatsApp message to send
                  example: Hello, world!
                fallback:
                  type: object
                  nullable: true
                  properties:
                    when:
                      type: array
                      items:
                        type: string
                        enum:
                          - whatsapp_unsupported
                          - whatsapp_fails
                      description: >-
                        When to fallback to SMS/RCS. If the recipient does not
                        have WhatsApp, or if WhatsApp fails to send.
                      example:
                        - whatsapp_unsupported
                        - whatsapp_fails
                    from:
                      type: string
                      nullable: true
                      description: >-
                        Your leased SMS/RCS number. If none is provided, we will
                        use a random SMS/RCS number of yours. In some instances,
                        your WhatsApp number may support SMS/RCS, and we will
                        fallback to that if left blank.
                      example: '+15555555555'
                  required:
                    - when
                  description: >-
                    Should Contiguity fallback to SMS/RCS if the recipient does
                    not have WhatsApp, or if WhatsApp fails to send?
                  example:
                    when:
                      - whatsapp_unsupported
                      - whatsapp_fails
                    from: '+15555555555'
                attachments:
                  type: array
                  nullable: true
                  items:
                    type: string
                  maxItems: 10
                  description: >-
                    Attachments to send. Must be HTTPS-secured URLs with file
                    extensions. Max 10 attachments, with a cumulative size of
                    50MB.
                  example:
                    - https://example.com/image.png
              required:
                - to
                - message
      responses:
        '200':
          description: Send a WhatsApp message
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    example: req_xxxxxxxxxxxxxxxx
                  timestamp:
                    type: number
                    example: 1772129047728
                  api_version:
                    type: string
                    example: v2026.2.26
                  object:
                    type: string
                    example: response
                  data:
                    type: object
                    properties:
                      message_id:
                        type: string
                        description: >-
                          The message's ID. Use it to refer to this message in
                          the future, when checking the status of the message or
                          finding it in the Console.
                        example: wapp_1234567890
                    required:
                      - message_id
                required:
                  - id
                  - timestamp
                  - api_version
                  - object
                  - data
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    example: err_xxxxxxxxxxxxxxxx
                  timestamp:
                    type: number
                    example: 1772129047728
                  api_version:
                    type: string
                    example: v2026.2.26
                  object:
                    type: string
                    example: error
                  data:
                    type: object
                    properties:
                      error:
                        type: string
                        example: Bad Request
                      status:
                        type: number
                        example: 400
                    required:
                      - error
                      - status
                required:
                  - id
                  - timestamp
                  - api_version
                  - object
                  - data
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    example: err_xxxxxxxxxxxxxxxx
                  timestamp:
                    type: number
                    example: 1772129047728
                  api_version:
                    type: string
                    example: v2026.2.26
                  object:
                    type: string
                    example: error
                  data:
                    type: object
                    properties:
                      error:
                        type: string
                        example: Unauthorized
                      status:
                        type: number
                        example: 401
                    required:
                      - error
                      - status
                required:
                  - id
                  - timestamp
                  - api_version
                  - object
                  - data
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    example: err_xxxxxxxxxxxxxxxx
                  timestamp:
                    type: number
                    example: 1772129047728
                  api_version:
                    type: string
                    example: v2026.2.26
                  object:
                    type: string
                    example: error
                  data:
                    type: object
                    properties:
                      error:
                        type: string
                        example: Forbidden
                      status:
                        type: number
                        example: 403
                    required:
                      - error
                      - status
                required:
                  - id
                  - timestamp
                  - api_version
                  - object
                  - data
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    example: err_xxxxxxxxxxxxxxxx
                  timestamp:
                    type: number
                    example: 1772129047728
                  api_version:
                    type: string
                    example: v2026.2.26
                  object:
                    type: string
                    example: error
                  data:
                    type: object
                    properties:
                      error:
                        type: string
                        example: Internal Server Error
                      status:
                        type: number
                        example: 500
                    required:
                      - error
                      - status
                required:
                  - id
                  - timestamp
                  - api_version
                  - object
                  - data
      security:
        - bearerAuth: []
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````