Skip to main content

TikTok

TikTok publishing is asynchronous: the Direct Post API accepts an upload and returns a publish_id, then notifies us via webhook when the video actually goes live (or fails). post.buzz handles the pending state and reconciles the post automatically.

Capabilities​

Publish✅ Video, Photo mode
Insights✅ views, likes, comments, shares, follower count
Fetch comments➖
Reply to comments✅ (manual)
Like comments✅ like only (no unlike edge)
Send DM➖
Delete post➖
Comment automation➖
warning

Comment automation does not work on TikTok. TikTok's public API does not expose comment reading — the granted scopes don't include comment.manage (enabling it first requires the "Comment Management" product in the TikTok Developer Portal). With no inbound comments, the automation loop has nothing to trigger on. Replying from the inbox is implemented and works when you fire it manually.

Post types & media limits​

Videos (Reels)​

ConstraintValue
Files1 video (required)
Max size1 GB
Resolution360×360 to 4096×4096
Aspect ratio0.01:1 to 10:6
Durationmax 10 min (600 s)

The effective duration cap is also checked against the creator's max_video_post_duration_sec from TikTok's creator info query, which can be lower for accounts without a long-video allowance.

Images (Photo Mode)​

ConstraintValue
Files1–10 images
FormatJPG/JPEG/WebP only
Max size20 MB each
Max width1920 px

Photo mode is chosen automatically from the media file extensions — an all-image post goes out as a photo post; it can't be forced via the post type.

warning

PNG is not valid for TikTok Photo Mode and will be rejected. Convert PNG assets before targeting a TikTok photo post.

Text limits​

  • text: 2,200 characters. Text-only posts are rejected — media is required.

Privacy​

Every publish resolves a privacy_level against the creator's allowed options (queried from TikTok's creator info endpoint), so the post uses the strictest setting the account actually permits rather than a hardcoded value.

How data arrives​

TikTok sends Content Posting API completion/failure events to /api/tiktok/webhook. The handler verifies the TikTok-Signature (HMAC-SHA256 over <timestamp>.<rawBody> keyed with the client secret), flips the matching pending_completion schedule to its terminal state, and reconciles the parent post. The endpoint is idempotent; TikTok retries for 72 h on non-200. There are no comment events — the webhook is publish-only. See Webhooks.

Connect notes​

  • Configure the callback URL <APP_ORIGIN>/api/tiktok/webhook in the Developer Portal under your app's Webhooks product.
  • Scopes (user.info.basic, user.info.profile, user.info.stats, video.upload, video.publish, video.list) must match what your TikTok app is approved for.
  • See Connect a channel.