Publish to TikTok

Publish single videos and photo carousels to a connected TikTok account.


Single video publish

POST/api/v1/publish/tiktok
ParameterTypeRequiredDescription
mediaIdstringYesVideo media ID to publish.
tiktokAccountIdstring (UUID)YesConnected TikTok account ID from GET /tiktok/accounts.
captionstringNoPost caption.
privacyLevelstringNoPUBLIC_TO_EVERYONE, MUTUAL_FOLLOW_FRIENDS, FOLLOWER_OF_CREATOR, or SELF_ONLY.
isAigcbooleanNoFlag content as AI-generated.
postModestringNo"direct" or "inbox".
disableCommentbooleanNoDisable comments.
disableDuetbooleanNoDisable duet.
disableStitchbooleanNoDisable stitch.
discloseCommercialbooleanNoDisclose commercial content.
brandOrganicbooleanNoMark as brand organic content.
brandedContentbooleanNoMark as branded content.

The operation is asynchronous. The initial response returns an outputJobId and a status. Poll GET /jobs/publish/{outputJobId} until the status reaches succeeded or failed.

{
  "outputJobId": "019e1b76-74d7-8c7e-a927-6bd34bfaa114",
  "status": "queued"
}

Example

{
  "mediaId": "019e1b70-6f9e-80fd-8c49-690bcbdaf8db",
  "tiktokAccountId": "550e8400-e29b-41d4-a716-446655440000",
  "caption": "Made with AI #wonda",
  "privacyLevel": "SELF_ONLY",
  "isAigc": true,
  "postMode": "direct"
}

TikTok photo carousel

POST/api/v1/publish/tiktok/carousel
ParameterTypeRequiredDescription
mediaIdsstring[]Yes2 to 35 media IDs. TikTok carousels only accept JPEG and WebP images.
tiktokAccountIdstring (UUID)YesConnected TikTok account ID from GET /tiktok/accounts.
captionstringNoOptional caption, up to 90 characters.
privacyLevelstringNoDefaults to SELF_ONLY.
postModestringNodirect or inbox. Defaults to direct.
coverIndexnumberNoIndex of the cover image to use. Defaults to 0.
isAigcbooleanNoDefaults to false.
disableCommentbooleanNoDisable comments.
disableDuetbooleanNoDisable duet.
disableStitchbooleanNoDisable stitch.
discloseCommercialbooleanNoDefaults to false.
brandOrganicbooleanNoDefaults to false.
brandedContentbooleanNoDefaults to false.

TikTok carousel publishing rejects S3-backed media. Use GCS-hosted JPEG or WebP images.

{
  "mediaIds": [
    "019e1b70-6f9e-80fd-8c49-690bcbdaf8db",
    "019e1b72-0742-8bae-bb93-b569036d05af"
  ],
  "tiktokAccountId": "550e8400-e29b-41d4-a716-446655440000",
  "caption": "New carousel",
  "privacyLevel": "SELF_ONLY",
  "postMode": "direct",
  "coverIndex": 0
}
{
  "tiktokPublishId": "c34a4b1f-b2ff-4f3f-a4fb-6cf2ca8f9e2c",
  "publishId": "v0...",
  "tiktokMediaId": "v0...",
  "permalink": "https://www.tiktok.com/@example/video/...",
  "imageCount": 2
}