Distribution Publishing
Publish carousel content through the distribution surface. This is separate from the direct publish endpoints.
The direct publish docs still cover single-asset publishing. If you need account lookup, publish history, or carousel publishing, start with Distribution accounts.
Instagram carousel publishing
POST
/api/v1/publish/instagram/carousel| Parameter | Type | Required | Description |
|---|---|---|---|
| mediaIds | string[] | Yes | 2 to 10 image media IDs. Instagram carousels only accept images. |
| instagramAccountId | string (UUID) | Yes | Connected Instagram account to publish to. |
| caption | string | No | Optional caption, up to 2200 characters. |
This endpoint creates a publish record for a carousel post and returns the Instagram publish ID, IG media ID, permalink, and image count.
{
"instagramPublishId": "b2d7e2ae-1d3d-4c88-8f01-0d2c8fb2d9b1",
"igMediaId": "1789...",
"permalink": "https://instagram.com/p/...",
"imageCount": 4
}Use this for carousel publishing only. The direct Instagram publish endpoint still handles a single image or video asset.
TikTok photo carousel publishing
POST
/api/v1/publish/tiktok/carousel| Parameter | Type | Required | Description |
|---|---|---|---|
| mediaIds | string[] | Yes | 2 to 35 media IDs. TikTok carousels only accept JPEG or WebP images. |
| tiktokAccountId | string (UUID) | Yes | Connected TikTok account to publish to. |
| caption | string | No | Optional caption, up to 90 characters. |
| privacyLevel | string | No | PUBLIC_TO_EVERYONE | MUTUAL_FOLLOW_FRIENDS | FOLLOWER_OF_CREATOR | SELF_ONLY. Defaults to SELF_ONLY and is ignored when postMode is inbox. |
| postMode | string | No | direct | inbox. Defaults to direct. |
| coverIndex | number | No | Index of the cover image to use. Defaults to 0. |
TikTok carousel publishing also rejects S3-backed media. Use GCS-hosted images only, and keep the direct publish endpoint for single-video posts.
{
"tiktokPublishId": "c34a4b1f-b2ff-4f3f-a4fb-6cf2ca8f9e2c",
"publishId": "v0...",
"tiktokMediaId": "v0...",
"imageCount": 6
}