# Send a batch of messages

Send a message to multiple recipients. Parameter variables can be included in all string fields and customized with recipient specific values. Each recipient in the request will generate a message and subsequent delivery reports based on the channel used.

Endpoint: POST /v1/projects/{project_id}/messages
Version: 1.0
Security: BearerAuth

## Path parameters:

  - `project_id` (string, required)
    The unique ID of the project. You can find this on the Sinch Dashboard.

## Request fields (application/json):

  - `app_id` (string, required)
    The ID of the app sending the message.

  - `message` (object, required) — one of:
    Message that will be sent to the recipients. Parameters can be specified in any of the string fields inside this structure in the format ${parameter}, where parameter is the parameter name.
    - Card:
      - `card_message` (object)
        Message containing text, media and choices.
      - `card_message.choices` (array) — one of:
        You may include choices in your Card Message. The number of choices is limited to 10.
        - Call:
          - `call_message` (object)
          - `call_message.phone_number` (string, required)
            Phone number in E.164 with leading +.
            Example: "+15551231234"
          - `call_message.title` (string, required)
            Title shown close to the phone number.
The title is clickable in some cases.
            Example: "Message text"
        - Location:
          - `location_message` (object)
          - `location_message.coordinates` (object, required)
          - `location_message.coordinates.latitude` (number, required)
            The latitude.
          - `location_message.coordinates.longitude` (number, required)
            The longitude.
          - `location_message.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.
          - `location_message.label` (string)
            Label or name for the position.
        - Text:
          - `text_message` (object)
          - `text_message.text` (string, required)
            The text to be sent.
        - URL:
          - `url_message` (object)
          - `url_message.title` (string, required)
            The title shown close to the URL. The title can be clickable in some cases.
          - `url_message.url` (string, required)
            The url to show.
        - Calendar:
          - `calendar_message` (object)
          - `calendar_message.title` (string, required)
            The title is shown close to the button that leads to open a user calendar.
          - `calendar_message.event_start` (string, required)
            The timestamp defines start of a calendar event.
            Example: "2025-11-30T10:00:00Z"
          - `calendar_message.event_end` (string, required)
            The timestamp defines end of a calendar event.
            Example: "2025-11-30T11:00:00Z"
          - `calendar_message.event_title` (string, required)
            Title of a calendar event.
          - `calendar_message.fallback_url` (string, required)
            The URL that is opened when the user cannot open a calendar event directly or channel does not have support for this type.
          - `calendar_message.event_description` (string)
            Description of a calendar event.
        - Request location:
          - `share_location_message` (object)
          - `share_location_message.title` (string, required)
            The title is shown close to the button that leads to open a map to share a location.
          - `share_location_message.fallback_url` (string, required)
            The URL that is opened when channel does not have support for this type.
      - `card_message.choices.postback_data` (any)
        An optional field. This data will be returned in the ChoiceResponseMessage. The default is message_id_{text, title}.
      - `card_message.choices.display_mode` (string)
        Controls the display behavior of a choice.
        Enum: "DISPLAY_MODE_UNSPECIFIED", "PERSISTENT"
      - `card_message.description` (string)
        This is an optional description field that is displayed below the title on the card.
      - `card_message.height` (string)
        You can set the desired size of the card in the message.
        Enum: "UNSPECIFIED_HEIGHT", "SHORT", "MEDIUM", "TALL"
      - `card_message.title` (string)
        The title of the card message.
      - `card_message.media_message` (object)
        A message containing a media component.
      - `card_message.media_message.url` (string, required)
        Url to the media file.
      - `card_message.media_message.thumbnail_url` (string)
        An optional parameter. Will be used where it is natively supported.
      - `card_message.media_message.filename_override` (string)
        Overrides the media file name.
      - `card_message.message_properties` (object)
        Optional additional properties.
      - `card_message.message_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.
    - Carousel:
      - `carousel_message` (object)
      - `carousel_message.cards` (array, required)
        A list of up to 10 cards.
      - `carousel_message.cards.choices` (array) — one of:
        You may include choices in your Card Message. The number of choices is limited to 10.
        - Call:
          - `call_message` (object)
          - `call_message.phone_number` (string, required)
            Phone number in E.164 with leading +.
            Example: "+15551231234"
          - `call_message.title` (string, required)
            Title shown close to the phone number.
The title is clickable in some cases.
            Example: "Message text"
        - Location:
          - `location_message` (object)
          - `location_message.coordinates` (object, required)
          - `location_message.coordinates.latitude` (number, required)
            The latitude.
          - `location_message.coordinates.longitude` (number, required)
            The longitude.
          - `location_message.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.
          - `location_message.label` (string)
            Label or name for the position.
        - Text:
          - `text_message` (object)
          - `text_message.text` (string, required)
            The text to be sent.
        - URL:
          - `url_message` (object)
          - `url_message.title` (string, required)
            The title shown close to the URL. The title can be clickable in some cases.
          - `url_message.url` (string, required)
            The url to show.
        - Calendar:
          - `calendar_message` (object)
          - `calendar_message.title` (string, required)
            The title is shown close to the button that leads to open a user calendar.
          - `calendar_message.event_start` (string, required)
            The timestamp defines start of a calendar event.
            Example: "2025-11-30T10:00:00Z"
          - `calendar_message.event_end` (string, required)
            The timestamp defines end of a calendar event.
            Example: "2025-11-30T11:00:00Z"
          - `calendar_message.event_title` (string, required)
            Title of a calendar event.
          - `calendar_message.fallback_url` (string, required)
            The URL that is opened when the user cannot open a calendar event directly or channel does not have support for this type.
          - `calendar_message.event_description` (string)
            Description of a calendar event.
        - Request location:
          - `share_location_message` (object)
          - `share_location_message.title` (string, required)
            The title is shown close to the button that leads to open a map to share a location.
          - `share_location_message.fallback_url` (string, required)
            The URL that is opened when channel does not have support for this type.
      - `carousel_message.cards.choices.postback_data` (any)
        An optional field. This data will be returned in the ChoiceResponseMessage. The default is message_id_{text, title}.
      - `carousel_message.cards.choices.display_mode` (string)
        Controls the display behavior of a choice.
        Enum: same as `card_message.choices.display_mode` in "Card" (2 values)
      - `carousel_message.cards.description` (string)
        This is an optional description field that is displayed below the title on the card.
      - `carousel_message.cards.height` (string)
        You can set the desired size of the card in the message.
        Enum: same as `card_message.height` in "Card" (4 values)
      - `carousel_message.cards.title` (string)
        The title of the card message.
      - `carousel_message.cards.media_message` (object)
        A message containing a media component.
      - `carousel_message.cards.media_message.url` (string, required)
        Url to the media file.
      - `carousel_message.cards.media_message.thumbnail_url` (string)
        An optional parameter. Will be used where it is natively supported.
      - `carousel_message.cards.media_message.filename_override` (string)
        Overrides the media file name.
      - `carousel_message.cards.message_properties` (object)
        Optional additional properties.
      - `carousel_message.cards.message_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.
      - `carousel_message.choices` (array) — one of:
        Optional. Outer choices on the carousel level. The number of outer choices is limited to 3.
        - Call:
          - `call_message` (object)
          - `call_message.phone_number` (string, required)
            Phone number in E.164 with leading +.
            Example: "+15551231234"
          - `call_message.title` (string, required)
            Title shown close to the phone number.
The title is clickable in some cases.
            Example: "Message text"
        - Location:
          - `location_message` (object)
          - `location_message.coordinates` (object, required)
          - `location_message.coordinates.latitude` (number, required)
            The latitude.
          - `location_message.coordinates.longitude` (number, required)
            The longitude.
          - `location_message.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.
          - `location_message.label` (string)
            Label or name for the position.
        - Text:
          - `text_message` (object)
          - `text_message.text` (string, required)
            The text to be sent.
        - URL:
          - `url_message` (object)
          - `url_message.title` (string, required)
            The title shown close to the URL. The title can be clickable in some cases.
          - `url_message.url` (string, required)
            The url to show.
        - Calendar:
          - `calendar_message` (object)
          - `calendar_message.title` (string, required)
            The title is shown close to the button that leads to open a user calendar.
          - `calendar_message.event_start` (string, required)
            The timestamp defines start of a calendar event.
            Example: "2025-11-30T10:00:00Z"
          - `calendar_message.event_end` (string, required)
            The timestamp defines end of a calendar event.
            Example: "2025-11-30T11:00:00Z"
          - `calendar_message.event_title` (string, required)
            Title of a calendar event.
          - `calendar_message.fallback_url` (string, required)
            The URL that is opened when the user cannot open a calendar event directly or channel does not have support for this type.
          - `calendar_message.event_description` (string)
            Description of a calendar event.
        - Request location:
          - `share_location_message` (object)
          - `share_location_message.title` (string, required)
            The title is shown close to the button that leads to open a map to share a location.
          - `share_location_message.fallback_url` (string, required)
            The URL that is opened when channel does not have support for this type.
    - Choice:
      - `choice_message` (object)
        A message containing choices.
      - `choice_message.choices` (array, required) — one of:
        The number of choices is limited to 10.
        - Call:
          - `call_message` (object)
          - `call_message.phone_number` (string, required)
            Phone number in E.164 with leading +.
            Example: "+15551231234"
          - `call_message.title` (string, required)
            Title shown close to the phone number.
The title is clickable in some cases.
            Example: "Message text"
        - Location:
          - `location_message` (object)
          - `location_message.coordinates` (object, required)
          - `location_message.coordinates.latitude` (number, required)
            The latitude.
          - `location_message.coordinates.longitude` (number, required)
            The longitude.
          - `location_message.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.
          - `location_message.label` (string)
            Label or name for the position.
        - Text:
          - `text_message` (object)
          - `text_message.text` (string, required)
            The text to be sent.
        - URL:
          - `url_message` (object)
          - `url_message.title` (string, required)
            The title shown close to the URL. The title can be clickable in some cases.
          - `url_message.url` (string, required)
            The url to show.
        - Calendar:
          - `calendar_message` (object)
          - `calendar_message.title` (string, required)
            The title is shown close to the button that leads to open a user calendar.
          - `calendar_message.event_start` (string, required)
            The timestamp defines start of a calendar event.
            Example: "2025-11-30T10:00:00Z"
          - `calendar_message.event_end` (string, required)
            The timestamp defines end of a calendar event.
            Example: "2025-11-30T11:00:00Z"
          - `calendar_message.event_title` (string, required)
            Title of a calendar event.
          - `calendar_message.fallback_url` (string, required)
            The URL that is opened when the user cannot open a calendar event directly or channel does not have support for this type.
          - `calendar_message.event_description` (string)
            Description of a calendar event.
        - Request location:
          - `share_location_message` (object)
          - `share_location_message.title` (string, required)
            The title is shown close to the button that leads to open a map to share a location.
          - `share_location_message.fallback_url` (string, required)
            The URL that is opened when channel does not have support for this type.
      - `choice_message.choices.postback_data` (any)
        An optional field. This data will be returned in the ChoiceResponseMessage. The default is message_id_{text, title}.
      - `choice_message.choices.display_mode` (string)
        Controls the display behavior of a choice.
        Enum: same as `card_message.choices.display_mode` in "Card" (2 values)
      - `choice_message.text_message` (object)
      - `choice_message.text_message.text` (string, required)
        The text to be sent.
      - `choice_message.message_properties` (object)
      - `choice_message.message_properties.whatsapp_footer` (string)
        Optional. Sets the text for the footer of a WhatsApp reply button or URL button message. Ignored for other channels.
    - Location:
      - `location_message` (object)
      - `location_message.coordinates` (object, required)
      - `location_message.coordinates.latitude` (number, required)
        The latitude.
      - `location_message.coordinates.longitude` (number, required)
        The longitude.
      - `location_message.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.
      - `location_message.label` (string)
        Label or name for the position.
    - Media Message:
      - `media_message` (object)
      - `media_message.url` (string, required)
        Url to the media file.
      - `media_message.thumbnail_url` (string)
        An optional parameter. Will be used where it is natively supported.
      - `media_message.filename_override` (string)
        Overrides the media file name.
    - Template Message:
      - `template_message` (object)
      - `template_message.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.
      - `template_message.omni_template` (object)
        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.
      - `template_message.omni_template.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.
      - `template_message.omni_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.
      - `template_message.omni_template.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.
      - `template_message.omni_template.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.
    - Text:
      - `text_message` (object)
      - `text_message.text` (string, required)
        The text to be sent.
    - List:
      - `list_message` (object)
      - `list_message.title` (string, required)
        A title for the message that is displayed near the products or choices.
      - `list_message.sections` (array, required)
        List of ListSection objects containing choices to be presented in the list message.
      - `list_message.sections.items` (array, required) — one of:
        - Choice:
          - `choice` (object, required)
            A message component for interactive messages, containing a choice.
          - `choice.title` (string, required)
            Required parameter. Title for the choice item.
          - `choice.description` (string)
            Optional parameter. The description (or subtitle) of this choice item.
          - `choice.media` (object)
            Optional parameter. The media of this choice item.
          - `choice.media.url` (string, required)
            Url to the media file.
          - `choice.media.thumbnail_url` (string)
            An optional parameter. Will be used where it is natively supported.
          - `choice.media.filename_override` (string)
            Overrides the media file name.
          - `choice.postback_data` (string)
            Optional parameter. Postback data that will be returned in the MO if the user selects this option.
        - Product:
          - `product` (object, required)
            A message component for interactive messages, containing a product.
          - `product.id` (string, required)
            Required parameter. The ID for the product.
          - `product.marketplace` (string, required)
            Required parameter. The marketplace to which the product belongs.
            Example: "FACEBOOK"
          - `product.quantity` (integer)
            Output only. The quantity of the chosen product.
          - `product.item_price` (number)
            Output only. The price for one unit of the chosen product.
          - `product.currency` (string)
            Output only. The currency of the item_price.
      - `list_message.sections.title` (string)
        Optional parameter. Title for list section.
      - `list_message.description` (string)
        This is an optional field, containing a description for the message.
      - `list_message.media` (object)
      - `list_message.media.url` (string, required)
        Url to the media file.
      - `list_message.media.thumbnail_url` (string)
        An optional parameter. Will be used where it is natively supported.
      - `list_message.media.filename_override` (string)
        Overrides the media file name.
      - `list_message.message_properties` (object)
        Additional properties for the message. Required if sending a product list message.
      - `list_message.message_properties.catalog_id` (string)
        Required if sending a product list message. The ID of the catalog to which the products belong.
      - `list_message.message_properties.menu` (string)
        Optional. Sets the text for the menu of a choice list message.
      - `list_message.message_properties.whatsapp_header` (string)
        Optional. Sets the text for the header of a WhatsApp choice list message. Ignored for other channels.
    - Contact Info:
      - `contact_info_message` (object)
      - `contact_info_message.name` (object, required)
        Name information of the contact.
      - `contact_info_message.name.full_name` (string, required)
        Full name of the contact
      - `contact_info_message.name.first_name` (string)
        First name.
      - `contact_info_message.name.last_name` (string)
        Last name.
      - `contact_info_message.name.middle_name` (string)
        Middle name.
      - `contact_info_message.name.prefix` (string)
        Prefix before the name. e.g. Mr, Mrs, Dr etc.
      - `contact_info_message.name.suffix` (string)
        Suffix after the name.
      - `contact_info_message.phone_numbers` (array, required)
        Phone numbers of the contact
      - `contact_info_message.phone_numbers.phone_number` (string, required)
        Phone number with country code included.
      - `contact_info_message.phone_numbers.type` (string)
        Phone number type, e.g. WORK or HOME.
      - `contact_info_message.addresses` (array)
        Physical addresses of the contact
      - `contact_info_message.addresses.city` (string)
        City Name
      - `contact_info_message.addresses.country` (string)
        Country Name
      - `contact_info_message.addresses.state` (string)
        Name of a state or region of a country.
      - `contact_info_message.addresses.zip` (string)
        Zip/postal code
      - `contact_info_message.addresses.type` (string)
        Address type, e.g. WORK or HOME
      - `contact_info_message.addresses.country_code` (string)
        Two letter country code.
      - `contact_info_message.email_addresses` (array)
        Email addresses of the contact
      - `contact_info_message.email_addresses.email_address` (string, required)
        Email address.
      - `contact_info_message.email_addresses.type` (string)
        Email address type. e.g. WORK or HOME.
      - `contact_info_message.organization` (object)
        Organization information of the contact.
      - `contact_info_message.organization.company` (string)
        Company name
      - `contact_info_message.organization.department` (string)
        Department at the company
      - `contact_info_message.organization.title` (string)
        Corporate title, e.g. Software engineer
      - `contact_info_message.urls` (array)
        URLs/websites associated with the contact
      - `contact_info_message.urls.url` (string, required)
        The URL to be referenced
      - `contact_info_message.urls.type` (string)
        Optional. URL type, e.g. Org or Social
      - `contact_info_message.birthday` (string)
        Date of birth in YYYY-MM-DD format.

  - `message.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)).

  - `message.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.

  - `message.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.

  - `message.agent` (object)
    Represents an agent that is involved in a conversation.

  - `message.agent.display_name` (string)
    Agent's display name

  - `message.agent.type` (string)
    Agent's classification. It can be UNKNOWN_AGENT_TYPE, HUMAN or BOT.
    Enum: "UNKNOWN_AGENT_TYPE", "HUMAN", "BOT"

  - `message.agent.picture_url` (string)
    The Agent's picture url.

  - `recipient_and_params` (array, required)
    A list of recipients who will receive the message. Each recipient entry can include custom parameters and metadata that apply only to that recipient.

  - `recipient_and_params.recipient` (object, required) — one of:
    Identifies the recipient. If [Dispatch Mode](https://developers.sinch.com/docs/conversation/processing-modes/) is used, you must use the identified_by field.
    - Channel Identities:
      - `identified_by` (object)
        The identity as specified by the channel.
      - `identified_by.channel_identities` (array, required)
        A list of specific channel identities.
The API will use these identities when sending to specific channels.
      - `identified_by.channel_identities.identity` (string, required)
        The channel recipient identity.
      - `identified_by.channel_identities.channel` (string, required)
        The identifier of the channel you want to include. Must be one of the enum values.
        Enum: "WHATSAPP", "RCS", "SMS", "MESSENGER", "VIBERBM", "MMS", "INSTAGRAM", "TELEGRAM", "KAKAOTALK", "KAKAOTALKCHAT", "LINE", "WECHAT", "APPLEBC"
    - Contact ID:
      - `contact_id` (string)
        The ID of the contact.
        Example: "{CONTACT_ID}"

  - `recipient_and_params.parameters` (object)
    One or more key value string pairs. The key identifies what parameter to overwrite and the value is the new value.

  - `recipient_and_params.message_metadata` (object)
    Custom message metadata for the recipient. This will be merged with the message metadata in the batch request.

  - `recipient_and_params.conversation_metadata` (object)
    Custom conversation metadata for the recipient. This will be merged with the conversation metadata in the batch request.

  - `processing_strategy` (string)
    Overrides the app's [Processing Mode](https://developers.sinch.com/docs/conversation/processing-modes/). Default value is DEFAULT.
    Enum: "DEFAULT", "DISPATCH_ONLY"

  - `batch_metadata` (object)
    Custom metadata that will be attached to the batch itself and returned in the response. This metadata can later be used to manage the batch. For example, you can use the metadata to [cancel it](https://developers.sinch.com/docs/conversation/api-reference/batch-api/batch/tag/Batch-API/#tag/Batch-API/operation/Batch_CancelBatch). Note: batchId is a reserved field that should not be included in this object, as it will be automatically added by the API.

  - `message_metadata` (object)
    Optional metadata that will be associated with the messages generated by the batch.
Returned in the metadata field of a [Message Delivery Receipt](https://developers.sinch.com/docs/conversation/callbacks/#message-delivery-receipt).
This map is converted to a JSON string for compatibility with the Conversation API.
See [Conversation API metadata](https://developers.sinch.com/docs/conversation/api-reference/conversation/tag/Messages/#tag/Messages/operation/Messages_SendMessage!path=message_metadata&t=request) for details.

  - `conversation_metadata` (object)
    Metadata that will be associated with the conversation of each message in the batch.
This metadata will be included in delivery receipts and can be used to correlate MO (mobile originated) messages with the original batch.
See [Conversation API metadata reference](https://developers.sinch.com/docs/conversation/api-reference/conversation/tag/Messages/#tag/Messages/operation/Messages_SendMessage!path=conversation_metadata&t=request) for details.

  - `send_after` (string)
    Specifies when the batch should be sent. If not provided, it defaults to the current time and sends immediately. The value must be in UTC. If the scheduled time is less than 1 minute from the API call, it will be used as-is (with second-level precision). For times further in the future, the value will be rounded up to the next five-minute mark. The maximum allowed delay is 7 days. The final send_after value is returned in the response.
    Example: "2025-01-01T12:34:56Z"

  - `callback_url` (string)
    Overwrites the default callback url for delivery receipts for messages in this batch.
Note that you may [define a secret_for_overridden_callback_urls at the app level](https://developers.sinch.com/docs/conversation/api-reference/conversation/app/app_getapp#app/app_getapp/t=response&c=200&path=callback_settings); 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 or https://host[:port]/path

  - `channel_priority_order` (array)
    Defines the channels to use for message delivery and the order in which they will be attempted.
See [Conversation API reference](https://developers.sinch.com/docs/conversation/api-reference/conversation/tag/Messages/#tag/Messages/operation/Messages_SendMessage!path=channel_priority_order&t=request) for details.
    Enum: same as `identified_by.channel_identities.channel` in "Channel Identities" (13 values)

  - `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).

  - `channel_properties` (object)
    Channel-specific properties. The key in the map must point to a valid channel property and the maximum allowed property value length is 1024 characters.

  - `correlation_id` (string)
    An arbitrary identifier that will be propagated to callbacks related to this message, including MO messages from the recipient. The MO callbacks will always use the last correlation_id available in the conversation, similar to how conversation_metadata works. Only applicable to messages sent with the CONVERSATION processing mode. Up to 128 characters long.

## Response 200 fields (application/json):

  - `batch_id` (string)
    The ID of the batch sent. This ID will be present in the metadata field of all the [delivery receipts](/docs/conversation/callbacks/#message-delivery-receipt) for messages generated from this batch request, with the key batchId.
    Example: "01GCA8RWNW9FVGVSYS1BMKRW80"

  - `send_after` (string)
    Time at which the batch of messages will be sent to the recipients.
    Example: "2022-11-28T12:46:59Z"

## Response 400 fields (application/json):

  - `code` (integer)

  - `message` (string)

  - `status` (string)

  - `details` (array)

  - `details.@type` (string)

  - `details.field_violations` (array)
    List of field violations in the request

  - `details.field_violations.field` (string)
    Field name which the violation refers to

  - `details.field_violations.description` (string)
    Description of the violation found in the field

## Response 403 fields (application/json):

  - `code` (integer)

  - `message` (string)

  - `status` (string)

  - `details` (array)


## Response 401 fields
