Skip to main content

Request

Use type as interactive and set interactive.type to carousel. A product carousel displays 2 to 10 product cards from the same catalog in a horizontally scrollable format. Each card supports the same Single-Product Message actions — view, add to cart, send order.

Field types

  • to: string (required)
  • type: string = interactive (required)
  • interactive: object (required)
  • interactive.type: string = carousel (required)
  • interactive.body: object (required)
  • interactive.body.text: string (required)
  • interactive.action: object (required)
  • interactive.action.cards: array of objects (required, 2 to 10)
  • interactive.action.cards[].card_index: integer 0-9 (required, unique per message)
  • interactive.action.cards[].type: string = product (required)
  • interactive.action.cards[].action: object (required)
  • interactive.action.cards[].action.product_retailer_id: string (required)
  • interactive.action.cards[].action.catalog_id: string (required)
  • tags: array of strings (optional)
  • metadata: object | string (optional)

Field behavior and limits

  • interactive.body.text is required, max 1024 characters.
  • interactive.action.cards must contain between 2 and 10 cards.
  • interactive.action.cards[].card_index must be a unique integer between 0 and 9 across the cards in the message.
  • Each card must reference the same catalog_id — a carousel cannot mix products from different catalogs.
  • Each card must be of type: "product".
  • Do not include a header, footer, or buttons on the interactive object — the carousel message only accepts body and action.
  • Product data (image, name, price, stock) is fetched by WhatsApp at delivery time — the recipient always sees the latest catalog state.
  • Cannot be sent as a notification — only inside an existing conversation.