Publish to TikTok

Publish single videos, scheduled posts, 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.
scheduledAtstringNoISO 8601 timestamp with timezone offset. Must be 5 minutes to 29 days in the future.

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.

Scheduled publishing must be enabled for the account. If it is not enabled, requests with scheduledAt return 403.

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

When scheduledAt is provided, the response status is scheduled and includes scheduledFor.

{
  "outputJobId": "019e1b76-74d7-8c7e-a927-6bd34bfaa114",
  "status": "scheduled",
  "scheduledFor": "2026-06-20T14:30:00+00:00"
}

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"
}

Schedule management

GET/api/v1/publish/scheduled

Lists scheduled Instagram and TikTok publish jobs for the account, soonest first.

DELETE/api/v1/publish/scheduled/{outputJobId}

Cancels a scheduled publish before it fires. The endpoint returns 409 if the job has already started or reached a terminal state.

Both schedule-management endpoints return 403 when scheduled publishing is not enabled for the account.

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
}