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

# Send a message

> Sends an SMS or MMS message to a contact using the practice's configured outbound messaging number.



## OpenAPI

````yaml /openapi/peerlogic-api.json post /api/care/message/
openapi: 3.1.0
info:
  title: Peerlogic API
  version: 1.0.0
  description: >-
    Customer-facing API reference for accessing Peerlogic calls, insights,
    conversations, tasks, opportunities, subscriptions, and events.
servers:
  - url: https://api.prod.peerlogic.com
    description: Production
security: []
tags:
  - name: Authentication
    description: Obtain an access token for authenticated API requests.
  - name: Call insights
    description: Call records and aggregate performance insights.
  - name: Transcripts
    description: Transcripts, summaries, sentiment, pauses, and call-purpose details.
  - name: Aimee
    description: Aimee activity, configuration, and performance insights.
  - name: Conversations
    description: Conversation records, messages, and conversation actions.
  - name: Tasks
    description: Customer tasks and task workflow actions.
  - name: Opportunities
    description: Opportunities and follow-up reporting.
  - name: Subscriptions and events
    description: >-
      Create and manage event subscriptions, then inspect event records and
      analytics. For the complete webhook delivery flow, see the Webhooks and
      subscriptions guide.
  - name: Organizations and practices
    description: >-
      Discover the organizations and practices available to the authenticated
      account.
  - name: Contacts and patients
    description: Find contacts and patients for caller recognition and related workflows.
  - name: Appointments
    description: Retrieve appointment history and upcoming appointments for a patient.
  - name: Messaging
    description: Send practice messages, including missed-call recovery outreach.
  - name: Call recordings
    description: Retrieve recording metadata and secure audio URLs for calls.
paths:
  /api/care/message/:
    post:
      tags:
        - Messaging
      summary: Send a message
      description: >-
        Sends an SMS or MMS message to a contact using the practice's configured
        outbound messaging number.
      operationId: care_message_create
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - practice_id
                - contact_phone_number
                - message
              properties:
                practice_id:
                  type: string
                  description: Practice ID.
                contact_phone_number:
                  type: string
                  description: Recipient phone number in E.164 format.
                  example: '+15105550123'
                message:
                  type: string
                  maxLength: 1024
                  description: Message body.
                mms_media:
                  type: array
                  maxItems: 10
                  items:
                    type: string
                  description: Optional IDs of previously uploaded media attachments.
      responses:
        '200':
          description: Message accepted and recorded as a practice interaction.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MessageInteraction'
        '400':
          description: The request parameters or body are invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
              example:
                practice_id:
                  - This field is required.
        '401':
          description: Authentication is required.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthenticationError'
              example:
                detail: '''Authorization'' header is required'
        '403':
          description: >-
            The authenticated user does not have access to the requested
            practice or resource.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PermissionError'
              example:
                message: No permissions assigned to permit access to this endpoint.
        '422':
          description: >-
            The connected practice-management system could not fulfill the
            request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpstreamIntegrationError'
              example:
                error: >-
                  The connected practice-management system could not fulfill the
                  request.
      security:
        - bearerAuth: []
components:
  schemas:
    MessageInteraction:
      type: object
      properties:
        id:
          title: Id
          type: string
          readOnly: true
          minLength: 1
        occurred_at:
          title: Occurred at
          type: string
          format: date-time
          readOnly: true
        practice_contact:
          type: object
          properties:
            id:
              title: Id
              type: string
              readOnly: true
              minLength: 1
            created_at:
              title: Created at
              type: string
              format: date-time
              readOnly: true
            name:
              title: Name
              type:
                - string
                - 'null'
              readOnly: true
              minLength: 1
            name_first:
              title: Name first
              type:
                - string
                - 'null'
              readOnly: true
              minLength: 1
            name_last:
              title: Name last
              type:
                - string
                - 'null'
              readOnly: true
              minLength: 1
            name_middle:
              title: Name middle
              type:
                - string
                - 'null'
              readOnly: true
              minLength: 1
            name_preferred:
              title: Name preferred
              type:
                - string
                - 'null'
              readOnly: true
              minLength: 1
            organization:
              title: Organization
              type:
                - string
                - 'null'
              readOnly: true
              minLength: 1
            title:
              title: Title
              type:
                - string
                - 'null'
              readOnly: true
              minLength: 1
            email:
              title: Email
              type:
                - string
                - 'null'
              format: email
              readOnly: true
              minLength: 1
            phone_numbers:
              type: array
              items:
                type: object
                properties:
                  id:
                    title: Id
                    type: string
                    readOnly: true
                    minLength: 1
                  phone_number:
                    title: Phone number
                    type: string
                    readOnly: true
                    minLength: 1
                  source_type:
                    title: Source type
                    type: string
                    enum:
                      - call
                      - message
                      - patient
                      - fax
                      - import
                    readOnly: true
                  sip_caller_name:
                    title: Sip caller name
                    type:
                      - string
                      - 'null'
                    readOnly: true
                    minLength: 1
                  is_primary_contact:
                    title: Is primary contact
                    type: boolean
                    readOnly: true
                  phone_number_type:
                    title: Phone number type
                    type: string
                    enum:
                      - home
                      - work
                      - mobile
                      - fax
                      - other
                    readOnly: true
              readOnly: true
            address_line_1:
              title: Address line 1
              type:
                - string
                - 'null'
              readOnly: true
              minLength: 1
            address_line_2:
              title: Address line 2
              type:
                - string
                - 'null'
              readOnly: true
              minLength: 1
            address_city:
              title: Address city
              type:
                - string
                - 'null'
              readOnly: true
              minLength: 1
            address_state:
              title: Address state
              type:
                - string
                - 'null'
              readOnly: true
              minLength: 1
            zip_code:
              title: Zip code
              type:
                - string
                - 'null'
              readOnly: true
              minLength: 1
            date_of_birth:
              title: Date of birth
              type:
                - string
                - 'null'
              format: date
              readOnly: true
            gender:
              title: Gender
              type:
                - string
                - 'null'
              enum:
                - male
                - female
              readOnly: true
            manually_edited_fields:
              title: Manually edited fields
              description: >-
                List of field names manually edited by a user. These fields are
                protected from automatic overwrites during patient sync and
                contact import.
              type: string
              readOnly: true
          readOnly: true
        content_object:
          title: Content object
          type: string
          readOnly: true
        interaction_type:
          title: Interaction type
          type: string
          enum:
            - call
            - message
            - voicemail
            - conversation_webchat
            - conversation_voicechat
            - conversation_sms
            - fax
          readOnly: true
        practice_phone_number:
          title: Practice phone number
          type:
            - string
            - 'null'
          readOnly: true
          minLength: 1
        contact_phone_number:
          title: Contact phone number
          type:
            - string
            - 'null'
          readOnly: true
          minLength: 1
        interaction_direction:
          title: Interaction direction
          type: string
          enum:
            - inbound
            - outbound
            - not_applicable
          readOnly: true
        is_viewed:
          title: Is viewed
          type: boolean
          readOnly: true
    ValidationError:
      title: Validation error
      type: object
      additionalProperties: true
      description: Validation details keyed by the invalid field or grouped under `errors`.
    AuthenticationError:
      title: Authentication error
      type: object
      additionalProperties: true
      required:
        - detail
      properties:
        detail:
          type: string
          description: Why authentication failed.
    PermissionError:
      title: Permission error
      type: object
      additionalProperties: false
      required:
        - message
      properties:
        message:
          type: string
          description: Why access was denied.
    UpstreamIntegrationError:
      title: Upstream integration error
      type: object
      additionalProperties: false
      required:
        - error
      properties:
        error:
          type: string
          description: Why the connected system could not complete the request.
        code:
          type: string
          description: Stable machine-readable error code, when one is available.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: Bearer access token issued by Peerlogic.

````

## Related topics

- [Create message](/peerlogic-api-reference/conversations/create-message.md)
- [Peerlogic Help Center](/help-center.md)
- [Send a user welcome email](/peerlogic-voice/administration/send-welcome-email.md)
- [Allow Peerlogic support email](/general-help/email-delivery/allow-peerlogic-email.md)
- [Register your practice for 10DLC texting](/peerlogic-voice/onboarding/register-for-10dlc-texting.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.