Threads Carousel Ads
Updated: May 21, 2026
To create carousel ads, provide an ad creative with multiple
child_attachments in link_data for threads_stream. You need to provide the threads_user_id and only use objectives supported in Threads ads.There are some differences between Threads and Instagram carousel ads. These differences only happen with the Threads placement. If you have an ad set with Facebook, Instagram, and Threads placements enabled, what works on Facebook and/or Instagram may be different from that on Threads.
- Each attachment must have a
linkspecified, which is the destination of the image click. - There is no call to action button on the ad. If a headline or name is provided for an attachment, it will overwrite the call to action text. If no headline or name is provided, the call to action text will be used for the attachment.
- Only 10 children are allowed for inline creation.
Image cards
- Each attachment must have either a
pictureorimage_hashset. The image is not defaulted fromlink_data. - See the media requirements for supported image specifications.
Create an Threads Image Carousel Ad Creative
Example request
curl -X POST \
-F 'name=Threads Carousel Creative' \
-F 'object_story_spec={
"instagram_user_id": "<IG_USER_ID>",
"threads_user_id": "<THREADS_USER_ID>",
"page_id": "<PAGE_ID>",
"link_data": {
"child_attachments": [
{
"link": "<LINK_1>",
"image_hash": "<IMAGE_HASH_1>",
"description": "$8.99",
"name": "Product 1"
},
{
"link": "<LINK_2>",
"image_hash": "<IMAGE_HASH_2>",
"description": "$9.99",
"name": "Product 2"
},
{
"link": "<LINK_3>",
"image_hash": "<IMAGE_HASH_3>",
"call_to_action": {
"type": "LEARN_MORE"
}
}
],
"message": "<MESSAGE_TEXT>"
}
}
' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v25.0/act_<AD_ACCOUNT_ID>/adcreatives