Skip to content

TikTok API

Postproxy publishes single videos and photo posts (up to 35 images) to a connected TikTok account. Every post requires a privacy_status.

Every request below uses the base URL https://api.postproxy.dev and an Authorization: Bearer YOUR_API_KEY header. Replace YOUR_API_KEY and the example IDs with your own.

Platform IDtiktok
Formatsvideo (default), image
Character limit2,200
MediaRequired
PlacementsNone
CommentsNo (can be disabled per post)
Direct messagesNo
Post chainsNo
FormatDescription
videoSingle video (default)
imagePhoto post, up to 35 images
ParameterTypeRequiredDescription
formatstringNo"video" (default)
privacy_statusstringYesSee privacy values
made_with_aibooleanNoMark content as AI-generated
disable_commentbooleanNoDisable comments on the post
disable_duetbooleanNoDisable Duets
disable_stitchbooleanNoDisable Stitches
brand_content_togglebooleanNoPaid partnership promoting a third-party business
brand_organic_togglebooleanNoPaid partnership promoting your own brand
MediaMax sizeFormatsCountDuration
Video4 GBmp4, mov, av, webm13 s – 10 min
  • A video is required. Minimum dimensions: 720×1280 px.
Terminal window
# Video post
curl -X POST "https://api.postproxy.dev/api/posts" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"post": { "body": "Quick tip: Building APIs just got easier! 🚀" },
"profiles": ["prof_abc123"],
"media": ["https://example.com/video.mp4"],
"platforms": {
"tiktok": {
"privacy_status": "PUBLIC_TO_EVERYONE",
"disable_comment": false,
"made_with_ai": false
}
}
}'
ParameterTypeRequiredDescription
formatstringYes"image"
privacy_statusstringYesSee privacy values
photo_cover_indexintegerNoIndex (0-based) of the cover photo
auto_add_musicbooleanNoAdd music automatically
disable_commentbooleanNoDisable comments on the post
brand_content_togglebooleanNoPaid partnership promoting a third-party business
brand_organic_togglebooleanNoPaid partnership promoting your own brand
MediaMax sizeFormatsCountDuration
Image20 MBjpg, gif35
Terminal window
# Photo post
curl -X POST "https://api.postproxy.dev/api/posts" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"post": { "body": "Swipe through our 2026 lookbook 📸" },
"profiles": ["prof_abc123"],
"media": [
"https://example.com/photo1.jpg",
"https://example.com/photo2.jpg"
],
"platforms": {
"tiktok": {
"format": "image",
"privacy_status": "PUBLIC_TO_EVERYONE",
"photo_cover_index": 0,
"auto_add_music": true
}
}
}'
ValueVisibility
PUBLIC_TO_EVERYONEEveryone
MUTUAL_FOLLOW_FRIENDSMutual followers
FOLLOWER_OF_CREATORFollowers only
SELF_ONLYPrivate (only you)

The Comments API does not support TikTok. You can, however, disable comments on a post at publish time with disable_comment: true.

Not supported.

Subscribe with the Webhooks API:

Terminal window
curl -X POST "https://api.postproxy.dev/api/webhooks" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com/webhooks/postproxy",
"events": ["platform_post.published", "platform_post.failed", "platform_post.insights"]
}'

Events relevant to TikTok:

EventWhen
post.processedA post is ready to publish
platform_post.publishedA post was published to the platform
platform_post.failedA post failed to publish (retries exhausted)
platform_post.failed_waiting_for_retryA publish attempt failed; will retry
platform_post.insightsNew analytics snapshot
profile.connected / .disconnectedConnection state changed
profile.statsNew profile stats snapshot
media.failedA media attachment failed to process
  • privacy_status is required on every post.
  • Videos must be at least 720×1280 px.
  • When a post is a paid partnership, set brand_content_toggle (third-party) or brand_organic_toggle (own brand) as required by TikTok.