---
title: "Send RCS carousel rich card messages"
method: POST
path: "/v4/rcs/outgoing/carousel"
tags: ["RCS - Outgoing"]
---

# Send RCS carousel rich card messages

`POST /v4/rcs/outgoing/carousel`

## Request

- Base URL: `https://api.inmobile.com`
- URL: `https://api.inmobile.com/v4/rcs/outgoing/carousel`
- Auth: one of:
  - HTTP basic
  - API key in query parameter `apikey`

## Request body

- RcsOutgoingCreatePostRequestOfRcsOutgoingCreateCarouselRichCardMessageModel: Request wrapper for creating RCS messages in bulk.
  - `messages` RcsOutgoingCreateCarouselRichCardMessageModel[], required: A list of the RCS messages to be sent.
    - `to` string, required: The msisdn (country code and number) to send to. (Remember to include countrycode in all numbers, e.g. 4512345678).</br> If max length is exceeded, the entire api call will fail.
    - `countryHint` string: For optimal phone number validation, we encourage you to provide us with a country code.</br> This can be the numeric country code (like 44) or the two-letter ISO 3166-1 alpha-2 code (like GB).</br> If this field is empty it is important that you add the country code (e.g 44) in front of the phone number in “to”.
    - `agentId` string, guid, required: The ID of the agent to use.</br> This agentId can be retrieved from the agent list endpoint.
    - `messageTrafficType` integer, required: A code describing the type of message being sent. Must match with the use case of the Agent being used. See the [message traffic type section](#section/RCS/Message-traffic-type) for details. 0 = MessageTrafficTypeUnspecified 1 = Authentication 2 = Transaction 3 = Promotion 4 = ServiceRequest 5 = Acknowledgement
    - `messageId` string, required: A message id used to identify the message. This id must be unique across all messages created on the same account.</br> (In case a previous message has been deleted according to GDPR deletion rules setup on the specific account, the messageId is allowed to be reused)</br> If max length is exceeded, the entire api call will fail.
    - `respectBlacklist` boolean, nullable: If true, this message will be blocked from sending if the target number is on the account's blacklist.</br> If false, the message will be sent no matter blacklist settings.</br> Default: true
    - `validityPeriodInSeconds` integer, nullable: The validity period in seconds. Minimum is 60 seconds and maximum is 1296000 seconds (15 days).</br> If not specified, the message is attempted to be delivered within 30 days. </br> A typical use of validityPeriod is for messages that make no sense to deliver after a certain time frame, in the case the phone is turned off, e.g. two-factor codes.</br> Please note that messages are still charged if the RCS platform charges for messages where the delivery attempts are cancelled due to an exceeded validity period.
    - `msisdnCooldownInMinutes` integer, nullable: If set, the message will be cancelled if the same mobile number already has received an RCS message or SMS message within this specified time period.</br> Fx. used to prevent spamming a mobile number.</br> Minimum 60 minutes (1 hour) and maximum is 43200 minutes (30 days).
    - `webhooks` RcsOutgoingWebhooks
      - `statusCallbackUrl` string: In case you would like a callback from us when the message is delivered or failed, you can specify it here, and we will call it when we have new message statuses.</br> The callback payload will be an array of status objects.</br> Api calls sending messages with the same apikey will be subject to being bulked together.
      - `readCallbackUrl` string: In case you would like a callback from us when the message is read, you can specify it here, and we will call it when we receive a read event.</br> Api calls sending messages with the same apikey will be subject to being bulked together.
    - `suggestions` RcsOutgoingMessageCreateSuggestionModel[]: List of suggestions to show underneath the message.
      - union: Exactly one of reply or action must be set.
        - object: Suggested reply.
          - `reply` RcsOutgoingMessageSuggestedReply, required
            - `text` string, required: Text that is shown in the suggested reply and sent back to the agent when the user taps it.
            - `postbackData` string, required: The base64-encoded payload that the agent receives in a user event when the user taps the suggested reply.
        - object: Suggested action.
          - `action` union, required: Exactly one action property must be set.
            - object: Dial action
              - …
            - object: Create calendar event action
              - …
            - object: Open URL action
              - …
            - object: Share location action
              - …
            - object: View location action
              - …
    - `cardWidth` integer, required: The width of the cards. 1 = Small 2 = Medium
    - `carouselCards` RcsOutgoingRichCardContentModel[], required: The cards to include in the carousel. Title, description, and media are all optional, but at least one must be provided.
      - `title` string: Title of the card.
      - `description` string: Description of the card.
      - `suggestions` RcsOutgoingMessageCreateSuggestionModel[]: List of suggestions to show on the card.
        - union: Exactly one of reply or action must be set.
          - object: Suggested reply.
            - `reply` RcsOutgoingMessageSuggestedReply, required
              - …
          - object: Suggested action.
            - `action` union, required: Exactly one action property must be set.
              - …
      - `media` RcsOutgoingRichCardMediaModel: Media for a rich card.
        - `height` integer: The height of the media. 0 = HeightUnspecified 1 = Short 2 = Medium 3 = Tall
        - `contentInfo` RcsOutgoingRichCardContentInfoModel, required: Content info for a rich card media file.
          - `fileUrl` string, required: URL to the media file to be displayed in the card. The file must be uploaded to the inMobile platform first, and the URL must be provided here. Any other URL will be rejected.
          - `thumbnailUrl` string: Thumbnail URL for the media file. Thumbnails are displayed for video media. For image media, the thumbnail is ignored. The file must be uploaded to the inMobile platform first, and the URL must be provided here. Any other URL will be rejected.

## Response `200`

- RcsOutgoingCreatePostReply
  - `results` RcsOutgoingCreateResultModel[]
    - `numberDetails` NumberDetails
      - `countryCode` string: The country code part of the msisdn, e.g. 45.
      - `phoneNumber` string: The phone number part of the msisdn, e.g. 12345678.
      - `rawMsisdn` string: The input msisdn in its unaltered format. This is the value provided when sending the text message.
      - `msisdn` string: The final cleaned msisdn.
      - `isValidMsisdn` boolean: True if the input msisdn was valid.
      - `countryHint` string: The country code hint if provided in the request.
    - `agentId` string: The agent ID.
    - `messageId` string: A message id used to identify the message. This id must be unique across all messages created on the same account. (In case a previous message has been deleted according to GDPR deletion rules setup on the specific account, the messageId is allowed to be reused)

## Other responses

- `400`: Bad request
- `401`: Unauthorized
- `409`: Conflict
- `500`: Internal server error

---

[API](https://skmtc.dev/inmobile/apis/inmobile-rest-api.md) · [All operations](https://skmtc.dev/inmobile/apis/inmobile-rest-api/llms.txt) · [OpenAPI document](https://skmtc.dev/inmobile/apis/inmobile-rest-api/revisions/197a90ad5f8f?raw)
