Send Media Card Carousel Message

Interactive media carousel messages display a set of horizontally scrollable media cards. Each card can display an image or video header, body text, and either quick-reply buttons or a URL button.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
📘
  1. Messages must include between 2 and 10 cards.
  2. Main message body text is required.
  3. Main message headers, footers, and interactive components are not supported.
  4. Cards must include either an image or video header. Other header types are not supported.
  5. Card body text is optional.
  6. Cards must include either one URL button, or one or more quick-reply buttons. Button types and numbers must match across all cards (for example, if you define a card with 2 quick-reply buttons, all cards must define exactly 2 quick-reply buttons).
  7. Use the recipient parameter only when BSUID is enabled for the app.
  8. When both to and recipient fields are used in the payload, the to field gets the priority.

Request Parameters

KeyDescriptionValuesData TypeRequired/OptionalConstraints
Headers
AuthorisationAccess Token for the applicationsk_8eb35b1f81c24af2xxxxxxStringRequiredShould be a valid Partner App Access Token.
Path Params
App IdApp ID to fetch the access tokenbf9ee64c-3d4d-4ac4-xxxx-732e577007c4StringRequiredThe Id should be a valid app Id of Gupshup
Body JSON
messaging_productMessaging productwhatsappStringRequired
recipient_typeRecipient typeindividualStringRequired
toDestination phone number where the message needs to be sent91785876xxxxStringRequired (Can be optional if BSUID is enabled for the app and recipient parameter is used instead)Must be a valid phone number
recipientDestination BSUID where the message needs to be sentIN.461449821882xxxxStringOptionalMust be a valid BSUID
typeMessaging typeinteractiveStringRequiredType should be interactive to send interactive message.
interactiveinteractive message inside body
"interactive": {
    "type": "carousel",
    "body": {
      "text": "Check out our latest offers!"
    },
    "action": {
      "cards": [
        {
          "card_index": 0,
          "type": "cta_url",
          "header": {
            "type": "image",
            "image": {
              "link": "https://gs-upload.gupshup.io/whatsapp/sample-media/png/sample01.png"
            }
          },
          "body": {
            "text": "Adidas – Flat 40% Off"
          },
          "action": {
            "name": "cta_url",
            "parameters": {
              "display_text": "Shop now",
              "url": "https://shop.example.com/adidas"
            }
          }
        },
        {
          "card_index": 1,
          "type": "cta_url",
          "header": {
            "type": "image",
            "image": {
              "link": "https://gs-upload.gupshup.io/whatsapp/sample-media/png/sample02.png"
            }
          },
          "body": {
            "text": "Nike – New Arrivals"
          },
          "action": {
            "name": "cta_url",
            "parameters": {
              "display_text": "View collection",
              "url": "https://shop.example.com/nike"
            }
          }
        }
      ]
    }
  }
}
ObjectRequiredKey should be interactive to send text message.

Sample Request

curl --location 'https://partner.gupshup.io/partner/app/{{app_id}}/v3/message' \
--header 'Authorization: sk_f39ed14bxxxxxxxxx' \
--header 'Content-Type: application/json' \
--data '{
  "messaging_product": "whatsapp",
  "recipient_type": "individual",
  "to": "91888xxxxxx",
	"recipient": "IN.4614498218826880",
  "type": "interactive",
  "interactive": {
    "type": "carousel",
    "body": {
      "text": "Check out our latest offers!"
    },
    "action": {
      "cards": [
        {
          "card_index": 0,
          "type": "cta_url",
          "header": {
            "type": "image",
            "image": {
              "link": "https://gs-upload.gupshup.io/whatsapp/sample-media/png/sample01.png"
            }
          },
          "body": {
            "text": "Adidas – Flat 40% Off"
          },
          "action": {
            "name": "cta_url",
            "parameters": {
              "display_text": "Shop now",
              "url": "https://shop.example.com/adidas"
            }
          }
        },
        {
          "card_index": 1,
          "type": "cta_url",
          "header": {
            "type": "image",
            "image": {
              "link": "https://gs-upload.gupshup.io/whatsapp/sample-media/png/sample02.png"
            }
          },
          "body": {
            "text": "Nike – New Arrivals"
          },
          "action": {
            "name": "cta_url",
            "parameters": {
              "display_text": "View collection",
              "url": "https://shop.example.com/nike"
            }
          }
        }
      ]
    }
  }
}'

Sample Response

{
    "messages": [
        {
            "id": "GUPSHUP_MESSAGE_ID"
        }
    ],
    "messaging_product": "whatsapp",
    "contacts": [
        {
            "input": "DESTINATION_PHONE_NO",
            "wa_id": "DESTINATION_PHONE_NO"
        }
    ]
}

Status Codes

Status CodeResponseComment
Success
200{ "messages": [ { "id": "GUPSHUP_MESSAGE_ID" } ], "messaging_product": "whatsapp", "contacts": [ { "input": "DESTINATION_PHONE_NO", "wa_id": "DESTINATION_PHONE_NO" } ] }
Error
401{ "status": "error", "message": "Authentication Failed" }When Partner Token authentication fails
400{ "message": "Callback Billing must be enabled for this API", "status": "error" }
Path Params
string
required

Unique identifier of the app.

Body Params
Headers
string
required

Your app token, please refer Get access token api to get the token from partner documentation.

Responses

Language
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json