---
title: "Send a message"
method: POST
path: "/v1/projects/{project_id}/messages:send"
tags: ["Messages"]
---

# Send a message

`POST /v1/projects/{project_id}/messages:send`

You can send a message from a Conversation app to a contact associated with that app. If the recipient is not associated with an existing contact, a new contact will be created.

The message is added to the active conversation with the contact if a conversation already exists. If no active conversation exists a new one is started automatically.

You can find all of your IDs and authentication credentials on the [Sinch Customer Dashboard](https://dashboard.sinch.com/settings/access-keys).

## Request body

- SendMessageRequest — This is the request body for sending a message. `app_id`, `recipient`, and `message` are all required fields.
  - `app_id` string, required — The ID of the app sending the message.
  - `callback_url` string — Overwrites the default callback url for delivery receipts for this message. Note that you may [define a `secret_for_overridden_callback_urls` at the app level](https://developers.sinch.com/docs/conversation/api-reference/conversation/tag/App/#tag/App/operation/App_UpdateApp!path=callback_settings/secret_for_overridden_callback_urls&t=request); this secret will be used to sign the contents of delivery receipts when the default callback URL is overridden by this property. The REST URL should be of the form: `http://host[:port]/path`
  - `channel_priority_order` ConversationChannel[] — Explicitly define the channels and order in which they are tried when sending the message. All channels provided in this field must be configured in the corresponding Conversation API app, or the request will be rejected. Which channels the API will try and their priority is defined by: 1. `channel_priority_order` if available. 2. `recipient.identified_by.channel_identities` if available. 3. When recipient is a `contact_id`: - if a conversation with the contact exists: the active channel of the conversation is tried first. - the existing channels for the contact are ordered by contact channel preferences if given. - lastly the existing channels for the contact are ordered by the app priority.
  - `channel_properties` object — Channel-specific properties. The key in the map must point to a valid channel property key as defined by the enum ChannelPropertyKeys. The maximum allowed property value length is 1024 characters.
  - `message` union, required
    - object — Field containing a Card Message
      - `card_message` CardMessage — Message containing text, media and choices.
        - `choices` Choice[] — You may include choices in your Card Message. The number of choices is limited to 10.
          - union
            - object — Message for triggering a call.
              - …
            - object — Message containing geographic location.
              - …
            - object — A message containing only text.
              - …
            - object — A generic URL message.
              - …
            - object — Message containing details about a calendar event.
              - …
            - object — Message requesting location from a user.
              - …
        - `description` string — This is an optional description field that is displayed below the title on the card.
        - `height` 'UNSPECIFIED_HEIGHT' | 'SHORT' | 'MEDIUM' | 'TALL' — You can set the desired size of the card in the message.
        - `title` string — The title of the card message.
        - `media_message` MediaProperties
          - `thumbnail_url` string — An optional parameter. Will be used where it is natively supported.
          - `url` string, required — Url to the media file.
          - `filename_override` string — Overrides the media file name.
        - `message_properties` object — Optional additional properties.
          - `whatsapp_header` string — Optional. Sets the header for the footer of a WhatsApp reply button message, if there is no media in the message. Ignored for other channels. Ignored if not transcoded to a native WhatsApp message with reply buttons.
      - `explicit_channel_message` object — Allows you to specify a channel and define a corresponding channel specific message payload that will override the standard Conversation API message types. The key in the map must point to a valid conversation channel as defined in the enum `ConversationChannel`. The message content must be provided in a string format. You may use the [transcoding endpoint](https://developers.sinch.com/docs/conversation/api-reference/conversation/tag/Transcoding/) to help create your message. For more information about how to construct an explicit channel message for a particular channel, see that [channel's corresponding documentation](https://developers.sinch.com/docs/conversation/channel-support/) (for example, using explicit channel messages with [the WhatsApp channel](https://developers.sinch.com/docs/conversation/channel-support/whatsapp/message-support/#explicit-channel-messages)).
      - `explicit_channel_omni_message` object — Override the message's content for specified channels. The key in the map must point to a valid conversation channel as defined in the enum `ConversationChannel`. The content defined under the specified channel will be sent on that channel.
      - `channel_specific_message` object — Channel specific messages, overriding any transcoding. The structure of this property is more well-defined than the open structure of the `explicit_channel_message` property, and may be easier to use. The key in the map must point to a valid conversation channel as defined in the enum `ConversationChannel`.
      - `agent` Agent — Represents an agent that is involved in a conversation.
        - `display_name` string — Agent's display name
        - `type` 'UNKNOWN_AGENT_TYPE' | 'HUMAN' | 'BOT' — Agent's classification. It can be UNKNOWN_AGENT_TYPE, HUMAN or BOT.
        - `picture_url` string — The Agent's picture url.
    - object — Message containing a list of cards often rendered horizontally on supported channels.
      - `carousel_message` object
        - `cards` CardMessage[], required — A list of up to 10 cards.
          - `choices` Choice[] — You may include choices in your Card Message. The number of choices is limited to 10.
            - union
              - …
          - `description` string — This is an optional description field that is displayed below the title on the card.
          - `height` 'UNSPECIFIED_HEIGHT' | 'SHORT' | 'MEDIUM' | 'TALL' — You can set the desired size of the card in the message.
          - `title` string — The title of the card message.
          - `media_message` MediaProperties
            - `thumbnail_url` string — An optional parameter. Will be used where it is natively supported.
            - `url` string, required — Url to the media file.
            - `filename_override` string — Overrides the media file name.
          - `message_properties` object — Optional additional properties.
            - `whatsapp_header` string — Optional. Sets the header for the footer of a WhatsApp reply button message, if there is no media in the message. Ignored for other channels. Ignored if not transcoded to a native WhatsApp message with reply buttons.
        - `choices` Choice[] — Optional. Outer choices on the carousel level. The number of outer choices is limited to 3.
          - union
            - object — Message for triggering a call.
              - …
            - object — Message containing geographic location.
              - …
            - object — A message containing only text.
              - …
            - object — A generic URL message.
              - …
            - object — Message containing details about a calendar event.
              - …
            - object — Message requesting location from a user.
              - …
      - `explicit_channel_message` object — Allows you to specify a channel and define a corresponding channel specific message payload that will override the standard Conversation API message types. The key in the map must point to a valid conversation channel as defined in the enum `ConversationChannel`. The message content must be provided in a string format. You may use the [transcoding endpoint](https://developers.sinch.com/docs/conversation/api-reference/conversation/tag/Transcoding/) to help create your message. For more information about how to construct an explicit channel message for a particular channel, see that [channel's corresponding documentation](https://developers.sinch.com/docs/conversation/channel-support/) (for example, using explicit channel messages with [the WhatsApp channel](https://developers.sinch.com/docs/conversation/channel-support/whatsapp/message-support/#explicit-channel-messages)).
      - `explicit_channel_omni_message` object — Override the message's content for specified channels. The key in the map must point to a valid conversation channel as defined in the enum `ConversationChannel`. The content defined under the specified channel will be sent on that channel.
      - `channel_specific_message` object — Channel specific messages, overriding any transcoding. The structure of this property is more well-defined than the open structure of the `explicit_channel_message` property, and may be easier to use. The key in the map must point to a valid conversation channel as defined in the enum `ConversationChannel`.
      - `agent` Agent — Represents an agent that is involved in a conversation.
        - `display_name` string — Agent's display name
        - `type` 'UNKNOWN_AGENT_TYPE' | 'HUMAN' | 'BOT' — Agent's classification. It can be UNKNOWN_AGENT_TYPE, HUMAN or BOT.
        - `picture_url` string — The Agent's picture url.
    - object — Message containing choices/actions.
      - `choice_message` object — Additional properties for the message.
        - `choices` Choice[], required — The number of choices is limited to 10.
          - union
            - object — Message for triggering a call.
              - …
            - object — Message containing geographic location.
              - …
            - object — A message containing only text.
              - …
            - object — A generic URL message.
              - …
            - object — Message containing details about a calendar event.
              - …
            - object — Message requesting location from a user.
              - …
        - `text_message` object
          - `text` string, required — The text to be sent.
        - `message_properties` object
          - `whatsapp_footer` string — Optional. Sets the text for the footer of a WhatsApp reply button or URL button message. Ignored for other channels.
      - `explicit_channel_message` object — Allows you to specify a channel and define a corresponding channel specific message payload that will override the standard Conversation API message types. The key in the map must point to a valid conversation channel as defined in the enum `ConversationChannel`. The message content must be provided in a string format. You may use the [transcoding endpoint](https://developers.sinch.com/docs/conversation/api-reference/conversation/tag/Transcoding/) to help create your message. For more information about how to construct an explicit channel message for a particular channel, see that [channel's corresponding documentation](https://developers.sinch.com/docs/conversation/channel-support/) (for example, using explicit channel messages with [the WhatsApp channel](https://developers.sinch.com/docs/conversation/channel-support/whatsapp/message-support/#explicit-channel-messages)).
      - `explicit_channel_omni_message` object — Override the message's content for specified channels. The key in the map must point to a valid conversation channel as defined in the enum `ConversationChannel`. The content defined under the specified channel will be sent on that channel.
      - `channel_specific_message` object — Channel specific messages, overriding any transcoding. The structure of this property is more well-defined than the open structure of the `explicit_channel_message` property, and may be easier to use. The key in the map must point to a valid conversation channel as defined in the enum `ConversationChannel`.
      - `agent` Agent — Represents an agent that is involved in a conversation.
        - `display_name` string — Agent's display name
        - `type` 'UNKNOWN_AGENT_TYPE' | 'HUMAN' | 'BOT' — Agent's classification. It can be UNKNOWN_AGENT_TYPE, HUMAN or BOT.
        - `picture_url` string — The Agent's picture url.
    - object — Message containing geographic location.
      - `location_message` object
        - `coordinates` Coordinates, required
          - `latitude` number, float, required — The latitude.
          - `longitude` number, float, required — The longitude.
        - `label` string — Label or name for the position.
        - `title` string, required — The title is shown close to the button or link that leads to a map showing the location. The title can be clickable in some cases.
      - `explicit_channel_message` object — Allows you to specify a channel and define a corresponding channel specific message payload that will override the standard Conversation API message types. The key in the map must point to a valid conversation channel as defined in the enum `ConversationChannel`. The message content must be provided in a string format. You may use the [transcoding endpoint](https://developers.sinch.com/docs/conversation/api-reference/conversation/tag/Transcoding/) to help create your message. For more information about how to construct an explicit channel message for a particular channel, see that [channel's corresponding documentation](https://developers.sinch.com/docs/conversation/channel-support/) (for example, using explicit channel messages with [the WhatsApp channel](https://developers.sinch.com/docs/conversation/channel-support/whatsapp/message-support/#explicit-channel-messages)).
      - `explicit_channel_omni_message` object — Override the message's content for specified channels. The key in the map must point to a valid conversation channel as defined in the enum `ConversationChannel`. The content defined under the specified channel will be sent on that channel.
      - `channel_specific_message` object — Channel specific messages, overriding any transcoding. The structure of this property is more well-defined than the open structure of the `explicit_channel_message` property, and may be easier to use. The key in the map must point to a valid conversation channel as defined in the enum `ConversationChannel`.
      - `agent` Agent — Represents an agent that is involved in a conversation.
        - `display_name` string — Agent's display name
        - `type` 'UNKNOWN_AGENT_TYPE' | 'HUMAN' | 'BOT' — Agent's classification. It can be UNKNOWN_AGENT_TYPE, HUMAN or BOT.
        - `picture_url` string — The Agent's picture url.
    - object — A message containing a media component, such as an image, document, or video.
      - `media_message` MediaProperties
        - `thumbnail_url` string — An optional parameter. Will be used where it is natively supported.
        - `url` string, required — Url to the media file.
        - `filename_override` string — Overrides the media file name.
      - `explicit_channel_message` object — Allows you to specify a channel and define a corresponding channel specific message payload that will override the standard Conversation API message types. The key in the map must point to a valid conversation channel as defined in the enum `ConversationChannel`. The message content must be provided in a string format. You may use the [transcoding endpoint](https://developers.sinch.com/docs/conversation/api-reference/conversation/tag/Transcoding/) to help create your message. For more information about how to construct an explicit channel message for a particular channel, see that [channel's corresponding documentation](https://developers.sinch.com/docs/conversation/channel-support/) (for example, using explicit channel messages with [the WhatsApp channel](https://developers.sinch.com/docs/conversation/channel-support/whatsapp/message-support/#explicit-channel-messages)).
      - `explicit_channel_omni_message` object — Override the message's content for specified channels. The key in the map must point to a valid conversation channel as defined in the enum `ConversationChannel`. The content defined under the specified channel will be sent on that channel.
      - `channel_specific_message` object — Channel specific messages, overriding any transcoding. The structure of this property is more well-defined than the open structure of the `explicit_channel_message` property, and may be easier to use. The key in the map must point to a valid conversation channel as defined in the enum `ConversationChannel`.
      - `agent` Agent — Represents an agent that is involved in a conversation.
        - `display_name` string — Agent's display name
        - `type` 'UNKNOWN_AGENT_TYPE' | 'HUMAN' | 'BOT' — Agent's classification. It can be UNKNOWN_AGENT_TYPE, HUMAN or BOT.
        - `picture_url` string — The Agent's picture url.
    - object — Message referring to predefined template
      - `template_message` object
        - `channel_template` object — Optional. Channel specific template reference with parameters per channel. The channel template if exists overrides the omnichannel template. At least one of `channel_template` or `omni_template` needs to be present. The key in the map must point to a valid conversation channel as defined by the enum ConversationChannel.
        - `omni_template` TemplateReferenceWithVersion — The referenced template can be an omnichannel template stored in Conversation API Template Store as an AppMessage. You may also reference external channel-specific templates, such as a WhatsApp Business Template. Note that channel-specific template references are not supported when populating the `explicit_channel_omni_message` field.
          - `version` string, required — Used to specify what version of a template to use. Required when using `omni_channel_override` and `omni_template` fields. This will be used in conjunction with `language_code`. Note that, when referencing omni-channel templates using the [Sinch Customer Dashboard](https://dashboard.sinch.com/), the latest version of a given omni-template can be identified by populating this field with `latest`.
          - `language_code` string — The BCP-47 language code, such as `en_US` or `sr_Latn`. For more information, see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier. English is the default `language_code`. Note that, while many API calls involving templates accept either the dashed format (`en-US`) or the underscored format (`en_US`), some channel specific templates (for example, WhatsApp channel-specific templates) only accept the underscored format. Note that this field is required for WhatsApp channel-specific templates.
          - `parameters` object — Required if the template has parameters. Concrete values must be present for all defined parameters in the template. Parameters can be different for different versions and/or languages of the template.
          - `template_id` string, required — The ID of the template. Note that, in the case of WhatsApp channel-specific templates, this field must be populated by the name of the template.
      - `explicit_channel_message` object — Allows you to specify a channel and define a corresponding channel specific message payload that will override the standard Conversation API message types. The key in the map must point to a valid conversation channel as defined in the enum `ConversationChannel`. The message content must be provided in a string format. You may use the [transcoding endpoint](https://developers.sinch.com/docs/conversation/api-reference/conversation/tag/Transcoding/) to help create your message. For more information about how to construct an explicit channel message for a particular channel, see that [channel's corresponding documentation](https://developers.sinch.com/docs/conversation/channel-support/) (for example, using explicit channel messages with [the WhatsApp channel](https://developers.sinch.com/docs/conversation/channel-support/whatsapp/message-support/#explicit-channel-messages)).
      - `explicit_channel_omni_message` object — Override the message's content for specified channels. The key in the map must point to a valid conversation channel as defined in the enum `ConversationChannel`. The content defined under the specified channel will be sent on that channel.
      - `channel_specific_message` object — Channel specific messages, overriding any transcoding. The structure of this property is more well-defined than the open structure of the `explicit_channel_message` property, and may be easier to use. The key in the map must point to a valid conversation channel as defined in the enum `ConversationChannel`.
      - `agent` Agent — Represents an agent that is involved in a conversation.
        - `display_name` string — Agent's display name
        - `type` 'UNKNOWN_AGENT_TYPE' | 'HUMAN' | 'BOT' — Agent's classification. It can be UNKNOWN_AGENT_TYPE, HUMAN or BOT.
        - `picture_url` string — The Agent's picture url.
    - object — A message containing only text.
      - `text_message` object
        - `text` string, required — The text to be sent.
      - `explicit_channel_message` object — Allows you to specify a channel and define a corresponding channel specific message payload that will override the standard Conversation API message types. The key in the map must point to a valid conversation channel as defined in the enum `ConversationChannel`. The message content must be provided in a string format. You may use the [transcoding endpoint](https://developers.sinch.com/docs/conversation/api-reference/conversation/tag/Transcoding/) to help create your message. For more information about how to construct an explicit channel message for a particular channel, see that [channel's corresponding documentation](https://developers.sinch.com/docs/conversation/channel-support/) (for example, using explicit channel messages with [the WhatsApp channel](https://developers.sinch.com/docs/conversation/channel-support/whatsapp/message-support/#explicit-channel-messages)).
      - `explicit_channel_omni_message` object — Override the message's content for specified channels. The key in the map must point to a valid conversation channel as defined in the enum `ConversationChannel`. The content defined under the specified channel will be sent on that channel.
      - `channel_specific_message` object — Channel specific messages, overriding any transcoding. The structure of this property is more well-defined than the open structure of the `explicit_channel_message` property, and may be easier to use. The key in the map must point to a valid conversation channel as defined in the enum `ConversationChannel`.
      - `agent` Agent — Represents an agent that is involved in a conversation.
        - `display_name` string — Agent's display name
        - `type` 'UNKNOWN_AGENT_TYPE' | 'HUMAN' | 'BOT' — Agent's classification. It can be UNKNOWN_AGENT_TYPE, HUMAN or BOT.
        - `picture_url` string — The Agent's picture url.
    - object — A message containing a list of options to choose from. All items must be of the same type.
      - `list_message` object
        - `title` string, required — A title for the message that is displayed near the products or choices.
        - `description` string — This is an optional field, containing a description for the message.
        - `media` MediaProperties
          - `thumbnail_url` string — An optional parameter. Will be used where it is natively supported.
          - `url` string, required — Url to the media file.
          - `filename_override` string — Overrides the media file name.
        - `sections` ListSection[], required — List of ListSection objects containing choices to be presented in the list message.
          - `title` string — Optional parameter. Title for list section.
          - `items` ListItem[], required
            - union — Item containing either choiceItem or ProductItem
              - …
        - `message_properties` object — Additional properties for the message. Required if sending a product list message.
          - `catalog_id` string — Required if sending a product list message. The ID of the catalog to which the products belong.
          - `menu` string — Optional. Sets the text for the menu of a choice list message.
          - `whatsapp_header` string — Optional. Sets the text for the header of a WhatsApp choice list message. Ignored for other channels.
      - `explicit_channel_message` object — Allows you to specify a channel and define a corresponding channel specific message payload that will override the standard Conversation API message types. The key in the map must point to a valid conversation channel as defined in the enum `ConversationChannel`. The message content must be provided in a string format. You may use the [transcoding endpoint](https://developers.sinch.com/docs/conversation/api-reference/conversation/tag/Transcoding/) to help create your message. For more information about how to construct an explicit channel message for a particular channel, see that [channel's corresponding documentation](https://developers.sinch.com/docs/conversation/channel-support/) (for example, using explicit channel messages with [the WhatsApp channel](https://developers.sinch.com/docs/conversation/channel-support/whatsapp/message-support/#explicit-channel-messages)).
      - `explicit_channel_omni_message` object — Override the message's content for specified channels. The key in the map must point to a valid conversation channel as defined in the enum `ConversationChannel`. The content defined under the specified channel will be sent on that channel.
      - `channel_specific_message` object — Channel specific messages, overriding any transcoding. The structure of this property is more well-defined than the open structure of the `explicit_channel_message` property, and may be easier to use. The key in the map must point to a valid conversation channel as defined in the enum `ConversationChannel`.
      - `agent` Agent — Represents an agent that is involved in a conversation.
        - `display_name` string — Agent's display name
        - `type` 'UNKNOWN_AGENT_TYPE' | 'HUMAN' | 'BOT' — Agent's classification. It can be UNKNOWN_AGENT_TYPE, HUMAN or BOT.
        - `picture_url` string — The Agent's picture url.
    - object — Message containing contact information.
      - `contact_info_message` object
        - `name` NameInfo, required — Name information of the contact.
          - `full_name` string, required — Full name of the contact
          - `first_name` string — First name.
          - `last_name` string — Last name.
          - `middle_name` string — Middle name.
          - `prefix` string — Prefix before the name. e.g. Mr, Mrs, Dr etc.
          - `suffix` string — Suffix after the name.
        - `phone_numbers` PhoneNumberInfo[], required — Phone numbers of the contact
          - `phone_number` string, required — Phone number with country code included.
          - `type` string — Phone number type, e.g. WORK or HOME.
        - `addresses` AddressInfo[] — Physical addresses of the contact
          - `city` string — City Name
          - `country` string — Country Name
          - `state` string — Name of a state or region of a country.
          - `zip` string — Zip/postal code
          - `type` string — Address type, e.g. WORK or HOME
          - `country_code` string — Two letter country code.
        - `email_addresses` EmailInfo[] — Email addresses of the contact
          - `email_address` string, required — Email address.
          - `type` string — Email address type. e.g. WORK or HOME.
        - `organization` OrganizationInfo — Organization information of the contact.
          - `company` string — Company name
          - `department` string — Department at the company
          - `title` string — Corporate title, e.g. Software engineer
        - `urls` UrlInfo[] — URLs/websites associated with the contact
          - `url` string, required — The URL to be referenced
          - `type` string — Optional. URL type, e.g. Org or Social
        - `birthday` string — Date of birth in YYYY-MM-DD format.
      - `explicit_channel_message` object — Allows you to specify a channel and define a corresponding channel specific message payload that will override the standard Conversation API message types. The key in the map must point to a valid conversation channel as defined in the enum `ConversationChannel`. The message content must be provided in a string format. You may use the [transcoding endpoint](https://developers.sinch.com/docs/conversation/api-reference/conversation/tag/Transcoding/) to help create your message. For more information about how to construct an explicit channel message for a particular channel, see that [channel's corresponding documentation](https://developers.sinch.com/docs/conversation/channel-support/) (for example, using explicit channel messages with [the WhatsApp channel](https://developers.sinch.com/docs/conversation/channel-support/whatsapp/message-support/#explicit-channel-messages)).
      - `explicit_channel_omni_message` object — Override the message's content for specified channels. The key in the map must point to a valid conversation channel as defined in the enum `ConversationChannel`. The content defined under the specified channel will be sent on that channel.
      - `channel_specific_message` object — Channel specific messages, overriding any transcoding. The structure of this property is more well-defined than the open structure of the `explicit_channel_message` property, and may be easier to use. The key in the map must point to a valid conversation channel as defined in the enum `ConversationChannel`.
      - `agent` Agent — Represents an agent that is involved in a conversation.
        - `display_name` string — Agent's display name
        - `type` 'UNKNOWN_AGENT_TYPE' | 'HUMAN' | 'BOT' — Agent's classification. It can be UNKNOWN_AGENT_TYPE, HUMAN or BOT.
        - `picture_url` string — The Agent's picture url.
  - `message_metadata` string — Metadata that should be associated with the message. Returned in the `metadata` field of a [Message Delivery Receipt](https://developers.sinch.com/docs/conversation/callbacks/#message-delivery-receipt). Up to 1024 characters long.
  - `conversation_metadata` object — Metadata that will be associated with the conversation in `CONVERSATION` mode and with the specified recipient identities in `DISPATCH` mode. This metadata will be propagated on MO callbacks associated with the respective conversation or user identity. Up to 2048 characters long. Note that the MO callback will always use the last metadata available. Important notes: - If you send a message with the `conversation_metadata` field populated, and then send another message without populating the `conversation_metadata` field, the original metadata will continue be propagated on the related MO callbacks. - If you send a message with the `conversation_metadata` field populated, and then send another message with a different value for `conversation_metadata` in the same conversation, the latest metadata value overwrites the existing one. So, future MO callbacks will include the new metadata. - The `conversation_metadata` only accepts json objects. - If you send a message in `DISPATCH` mode while the [retention period](https://developers.sinch.com/docs/conversation/api-reference/conversation/tag/App/#tag/App/operation/App_CreateApp!path=dispatch_retention_policy/ttl_days&t=request) of the app is set to 0 (note that this value is set to 0 by default), the `conversation_metadata` field will not be retained. Currently only returned in the `message_metadata` field of an [Inbound Message](https://developers.sinch.com/docs/conversation/callbacks/#inbound-message) callback.
  - `queue` 'NORMAL_PRIORITY' | 'HIGH_PRIORITY' — Select the priority type for the message
  - `recipient` union, required
    - object
      - `identified_by` ChannelIdentities
        - `channel_identities` ChannelRecipientIdentity[], required — A list of specific channel identities. The API will use these identities when sending to specific channels.
          - `channel` 'SMS' | 'RCS' | 'WHATSAPP' | 'MMS' | 'KAKAOTALK' | 'KAKAOTALKCHAT' | 'VIBERBM' | 'LINE' | 'INSTAGRAM' | 'MESSENGER' | 'WECHAT' | 'TELEGRAM' | 'APPLEBC', required — The identifier of the channel you want to include. Must be one of the enum values.
          - `identity` string, required — The channel recipient identity.
    - object
      - `contact_id` string — The ID of the contact.
  - `ttl` string — The timeout allotted for sending the message, expressed in seconds. Passed to channels which support it and emulated by the Conversation API for channels without ttl support but with message retract/unsend functionality. Channel failover will not be performed for messages with an expired TTL. The format is an integer with the suffix `s` (for seconds). Valid integer range is 3 to 315,576,000,000 (inclusive). Example values include `10s` (10 seconds) and `86400s` (24 hours).
  - `processing_strategy` 'DEFAULT' | 'DISPATCH_ONLY' — Overrides the app's [Processing Mode](https://developers.sinch.com/docs/conversation/processing-modes/). Default value is `DEFAULT`.
  - `correlation_id` string — An arbitrary identifier that will be propagated to callbacks related to this message, including MO messages from the recipient. The `correlation_id` is associated with the conversation in `CONVERSATION` mode and with the specified recipient identities in `DISPATCH` mode. The MO callbacks will always include the last `correlation_id` available, (which is similar to how the `conversation_metadata` property functions). Up to 128 characters long. Important note: If you send a message in `DISPATCH` mode while the [retention period](https://developers.sinch.com/docs/conversation/api-reference/conversation/tag/App/#tag/App/operation/App_CreateApp!path=dispatch_retention_policy/ttl_days&t=request) of the app is set to 0 (note that this value is set to 0 by default), the `correlation_id` field will not be retained.
  - `conversation_metadata_update_strategy` 'REPLACE' | 'MERGE_PATCH' — Update strategy for the `conversation_metadata` field. Only supported in `CONVERSATION` processing mode.
  - `message_content_type` 'CONTENT_UNKNOWN' | 'CONTENT_MARKETING' | 'CONTENT_NOTIFICATION' — This field classifies the message content for use with Sinch's [consent management functionality](https://developers.sinch.com/docs/conversation/consent-management/). Note that this field is currently only used with Sinch's consent management functionality, and is not referenced elsewhere by the Conversation API.

## Response `200`

A successful response. More information is available in [delivery report callbacks](https://developers.sinch.com/docs/conversation/callbacks/).

- SendMessageResponse
  - `accepted_time` string, date-time — Timestamp when the Conversation API accepted the message for delivery to the referenced contact.
  - `message_id` string — The ID of the message.

## Other responses

- `400` — Malformed request. See [common error responses](https://developers.sinch.com/docs/conversation/api-reference/#common-error-responses) for more information.
- `401` — Incorrect credentials. See [common error responses](https://developers.sinch.com/docs/conversation/api-reference/#common-error-responses) for more information.
- `403` — Correct credentials but you don't have access to the requested resource. See [common error responses](https://developers.sinch.com/docs/conversation/api-reference/#common-error-responses) for more information.
- `500` — Correct credentials but you don't have access to the requested resource. See [common error responses](https://developers.sinch.com/docs/conversation/api-reference/#common-error-responses) for more information.
- `501` — Something went wrong on our end, try again with exponential back-off. See [common error responses](https://developers.sinch.com/docs/conversation/api-reference/#common-error-responses) for more information.

---

[API](https://skmtc.net/sinch/apis/conversation-api-sinch.md) · [All operations](https://skmtc.net/sinch/apis/conversation-api-sinch/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/sinch/conversation-api-sinch/revisions/bdb3e0c48bf7/schema)
