# Interactive product carousel messages | Developer Documentation

<div id="bkmrk-interactive-product-">## Interactive product carousel messages

<div><span>Updated: Mar 3, 2026</span></div><div>The interactive product carousel message enables businesses to send horizontally scrollable product cards within WhatsApp conversations, allowing users to browse and engage with products directly in-thread.</div><div>This format integrates with the Product Catalog and supports Single Product Message (SPM) actions on each card, providing a seamless and interactive shopping experience via the WhatsApp Business APIs and mobile clients.</div><div id="bkmrk-how-to-build-a-produ"><div id="bkmrk-how-to-build-a-produ-1"><div>### How to build a product carousel message

</div></div></div><div>The product carousel message contains a `card` object. You must add 2 card objects to your message, and can add a maximum of 10. Each card exists in a `cards[]` array and must be given a `"card_index"` value of `0` through `9`.</div><div>The type of each card must be set to `"product"`, and each card must reference the same `"catalog_id"`.</div><div>You must add a message body to the message, and no header, footer, or buttons are allowed.</div><div>Lastly, each card must specify the product and catalog identifiers `"product_retailer_id"` and `"catalog_id"`.</div><div id="bkmrk-the-card-object"><div id="bkmrk-the-card-object-1"><div>#### The `card` object

</div></div></div><div id="bkmrk-request-parameters"><div id="bkmrk-request-parameters-1"><div>### Request parameters

</div></div></div><div><table><thead><tr><th><span>Placeholder </span></th><th><span>Description </span></th><th><span>Sample Value </span></th></tr></thead><tbody><tr><td><div><div>`<ACCESS_TOKEN>`</div><div>*String*</div></div></td><td><div><div>**Required.**</div><div>[System token](/books/meta-whatsapp/page/access-tokens-guide-developer-documentation) or [business token](/books/meta-whatsapp/page/access-tokens-guide-developer-documentation).</div></div></td><td><div><div>```
EAAAN6tcBzAUBOZC82CW7iR2LiaZBwUHS4Y7FDtQxRUPy1PHZClDGZBZCgWdrTisgMjpFKiZAi1FBBQNO2IqZBAzdZAA16lmUs0XgRcCf6z1LLxQCgLXDEpg80d41UZBt1FKJZCqJFcTYXJvSMeHLvOdZwFyZBrV9ZPHZASSqxDZBUZASyFdzjiy2A1sippEsF4DVV5W2IlkOSr2LrMLuYoNMYBy8xQczzOKDOMccqHEZD
```

</div></div></td></tr><tr><td><div><div>`<API_VERSION>`</div><div>*String*</div></div></td><td><div><div>**Optional.**</div><div>Graph API version.</div></div></td><td><div><div>v25.0</div></div></td></tr><tr><td><div><div>`<MESSAGE_BODY_TEXT>`</div><div>*String*</div></div></td><td><div><div>**Required.**</div><div>Maximum 1024 characters.</div></div></td><td><div><div>`Which option do you prefer?`</div></div></td></tr><tr><td><div><div>`<WHATSAPP_BUSINESS_PHONE_NUMBER_ID>`</div><div>*String*</div></div></td><td><div><div>**Required.**</div><div>WhatsApp business phone number ID.</div></div></td><td><div><div>`106540352242922`</div></div></td></tr><tr><td><div><div>`<WHATSAPP_USER_PHONE_NUMBER>`</div><div>*String*</div></div></td><td><div><div>**Required.**</div><div>WhatsApp user phone number.</div></div></td><td><div><div>`+16505551234`</div></div></td></tr></tbody></table>

</div><div id="bkmrk-card-object-paramete"><div id="bkmrk-card-object-paramete-1"><div>### Card object parameters

</div></div></div><div><table><thead><tr><th><span>Placeholder </span></th><th><span>Description </span></th><th><span>Sample value </span></th></tr></thead><tbody><tr><td><div><div>`<INDEX>`  
*Integer*</div></div></td><td><div><div>**Required**  
Unique index for each card (0-9). Must not repeat within the message.</div></div></td><td><div><div>`2`</div></div></td></tr><tr><td><div><div>`<PRODUCT_RETAILER_ID>`  
*String*</div></div></td><td><div><div>**Required**  
The unique retailer ID of the product in the catalog.</div></div></td><td><div><div>`"0JkSUu4qizuXv"`</div></div></td></tr><tr><td><div><div>`<CATALOG_ID>`  
*String*</div></div></td><td><div><div>**Required**  
The unique ID of the catalog containing the product.</div></div></td><td><div><div>`"Lq1ZtoWL5OkljTerAW"`</div></div></td></tr></tbody></table>

</div></div>