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
ParameterTypeRequiredDescription
mediaIdsstring[]Yes2 to 10 image media IDs. Instagram carousels only accept images.
instagramAccountIdstring (UUID)YesConnected Instagram account to publish to.
captionstringNoOptional 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
ParameterTypeRequiredDescription
mediaIdsstring[]Yes2 to 35 media IDs. TikTok carousels only accept JPEG or WebP images.
tiktokAccountIdstring (UUID)YesConnected TikTok account to publish to.
captionstringNoOptional caption, up to 90 characters.
privacyLevelstringNoPUBLIC_TO_EVERYONE | MUTUAL_FOLLOW_FRIENDS | FOLLOWER_OF_CREATOR | SELF_ONLY. Defaults to SELF_ONLY and is ignored when postMode is inbox.
postModestringNodirect | inbox. Defaults to direct.
coverIndexnumberNoIndex 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
}