Works with all AI agents

Connect your AI agent

Choose your AI agent and connect in seconds.

Add to Claude

Works on every Claude plan, including free. Full Claude guide

  1. 1

    Add to Claude

    One click from Claude’s connector directory.

  2. 2

    Sign up or sign in

    Takes seconds, then you’re sent straight back.

  3. 3

    Ask Claude

    “Plan and schedule my posts for next week.”

PostEverywhere TikTok API Guide

PostEverywhere API reference for TikTok: privacy levels, duet and stitch settings, cover thumbnails and request examples for video posts.

Publish videos to TikTok with full control over privacy settings, interaction permissions, and cover thumbnails. PostEverywhere uses TikTok's Content Posting API to handle video uploads and publishing on your behalf. For a general overview of all supported platforms, see the Introduction.

Connect your TikTok account to PostEverywhere

Connect TikTok from the dashboard with OAuth, or headlessly from code: mint a connect link and hand it to the account owner - no dashboard session needed. Both flows are covered in Connecting Accounts.

What you can post to TikTok

Content Type Media Required Description
Video Video (MP4) Standard TikTok video.
Photo carousel Images (1-35) Photo Mode post. Images only; a post cannot mix video and images.

Every TikTok post needs media: one video, or 1-35 images for a Photo Mode carousel. Text-only posts are not supported.

TikTok-specific options in the API

Use the platform_content.tiktok object to configure privacy and interaction settings:

{
  "platform_content": {
    "tiktok": {
      "content": "TikTok caption (up to 2,200 characters on a video)",
      "settings": {
        "privacyLevel": "PUBLIC_TO_EVERYONE",
        "disableComment": false,
        "disableDuet": false,
        "disableStitch": false,
        "videoCoverTimestamp": 1000
      }
    }
  }
}

Settings Reference

Setting Type Default Description
content string N/A Override the default caption. A video caption can be up to 2,200 characters; a photo post description up to 4,000. Longer is refused with 400 content_too_long.
settings.title string N/A Photo posts: the post title, up to 90 characters (longer is refused with 400 content_too_long). Videos: TikTok has one caption and no separate title, so the caption is used and title only applies when there is no caption. If both are set, the post carries a tiktok_title_not_used warning.
settings.privacyLevel string "PUBLIC_TO_EVERYONE" Who can view the video. See values below. privacy_level is also accepted, as are disable_comment, disable_duet and disable_stitch below.
settings.disableComment boolean false Set true to turn off comments on the video.
settings.disableDuet boolean false Set true to stop other users creating Duets with this video.
settings.disableStitch boolean false Set true to stop other users Stitching this video.
settings.videoCoverTimestamp number 0 Timestamp in milliseconds for the cover frame; 0 is the first frame. TikTok takes a frame of the video as the cover, not a custom cover image. Videos only.
settings.photoCoverIndex number 0 Photo posts only: which image (0-based) is the cover.
settings.autoAddMusic boolean true Photo posts only: let TikTok add background music. Set false to post without it.
settings.isAIGC boolean false Set true to add TikTok's AI-generated content label.
settings.commercialContentEnabled boolean false Set true when the post promotes a brand, product or service. You must then set brandOrganicToggle, brandContentToggle or both.
settings.brandOrganicToggle boolean false "Your brand": the post promotes yourself or your own business. TikTok labels it "Promotional content".
settings.brandContentToggle boolean false "Branded content": the post promotes a third party. TikTok labels it "Paid partnership". Cannot be used with SELF_ONLY privacy.

Privacy Levels

Value Description
PUBLIC_TO_EVERYONE Visible to all TikTok users.
MUTUAL_FOLLOW_FRIENDS Visible only to mutual followers (friends).
FOLLOWER_OF_CREATOR Visible only to your followers.
SELF_ONLY Only visible to you. Useful for drafts or testing.

Commercial Content Disclosure

TikTok requires a disclosure when a post promotes a brand, product or service. Set commercialContentEnabled: true and at least one of brandOrganicToggle (your own brand) or brandContentToggle (a third party). Turning on commercialContentEnabled with neither toggle fails with "Commercial content disclosure incomplete", and branded content (brandContentToggle) with SELF_ONLY privacy fails because TikTok does not allow branded content to be private.

{
  "platform_content": {
    "tiktok": {
      "settings": {
        "privacyLevel": "PUBLIC_TO_EVERYONE",
        "commercialContentEnabled": true,
        "brandContentToggle": true,
        "isAIGC": false
      }
    }
  }
}

Publish to TikTok: a working request

Schedule a Public TikTok Video

curl -X POST https://app.posteverywhere.ai/api/v1/posts \
  -H "Authorization: Bearer $POSTEVERYWHERE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "content": "Quick tip for your morning routine!",
    "account_ids": [2285],
    "media_ids": ["c3d4e5f6-a7b8-9012-cdef-123456789012"],
    "scheduled_for": "2026-04-15T17:00:00Z",
    "timezone": "America/Los_Angeles",
    "platform_content": {
      "tiktok": {
        "content": "Morning routine hack you NEED to try #morningroutine #lifehack #tips",
        "settings": {
          "privacyLevel": "PUBLIC_TO_EVERYONE",
          "disableComment": false,
          "disableDuet": false,
          "disableStitch": true,
          "videoCoverTimestamp": 2500
        }
      }
    }
  }'

Schedule a Private Test Video

curl -X POST https://app.posteverywhere.ai/api/v1/posts \
  -H "Authorization: Bearer $POSTEVERYWHERE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "content": "Testing new content format",
    "account_ids": [2285],
    "media_ids": ["d4e5f6a7-b8c9-0123-def0-234567890123"],
    "platform_content": {
      "tiktok": {
        "settings": {
          "privacyLevel": "SELF_ONLY",
          "disableComment": true,
          "disableDuet": true,
          "disableStitch": true
        }
      }
    }
  }'

TikTok limits: characters, media and video

Requirement Limit
Caption length 2,200 characters on a video; 4,000 for a photo post description. Longer is refused with 400 content_too_long.
Photo post title 90 characters
Video format MP4 (H.264)
Video max file size 4 GB
Video duration 3 seconds - 10 minutes
Video resolution Minimum 720p recommended
Recommended aspect ratio 9:16 (vertical, 1080x1920)
Cover A frame of the video, picked with videoCoverTimestamp in milliseconds (no custom cover image)

Getting better results on TikTok

  • Set videoCoverTimestamp to a visually compelling frame. The cover thumbnail is the first thing users see when scrolling. Pick a frame that teases the content; the default is 0, the first frame.
  • Use SELF_ONLY for testing. Schedule a private video first to verify the upload looks correct on TikTok before changing the privacy level and reposting publicly.
  • Lead with the hook. Video captions can run to 2,200 characters, but only the first line shows before "more", so put your hook in the first few words and use trending hashtags for discoverability.
  • Put your words in the caption, not settings.title, on videos. A TikTok video has one caption. A title is used only when there is no caption; otherwise it is not used and the post shows a warning saying so.

Analytics TikTok returns

TikTok reports views, likes, comments and shares per post. They appear on GET /v1/analytics/summary and on the analytics page in the dashboard, refreshed periodically after publishing (engagement takes time to accrue, so a post checked minutes after going live will legitimately read zero).

Accounts connected before Jul 3 2026 need one reconnect

Per-post analytics needs TikTok's video.list scope, which we were granted on Jul 3 2026. Accounts connected before that date hold tokens without it and will keep returning no metrics until reconnected once from Settings > Accounts. Reconnecting does not affect scheduled posts.

Private and self-only posts have no analytics: TikTok withholds the public post id for them, and its analytics API cannot see them either.

Common questions about posting to TikTok

Can I control who can Duet or Stitch my TikTok video?

Yes. Set disableDuet and disableStitch to true in the platform_content.tiktok.settings object. Both default to false, so Duets and Stitches are allowed unless you turn them off. disableComment works the same way for comments.

What privacy levels are available for TikTok posts?

TikTok supports four privacy levels: PUBLIC_TO_EVERYONE, MUTUAL_FOLLOW_FRIENDS (mutual followers only), FOLLOWER_OF_CREATOR (your followers only), and SELF_ONLY (only you). Set the privacyLevel field when creating a post.

How do I choose the cover thumbnail for my TikTok video?

Use the videoCoverTimestamp setting, specified in milliseconds. For example, 2500 selects the frame at 2.5 seconds. If omitted, the first frame (0) is used. TikTok's API does not accept a custom cover image for videos, so the cover is always a frame from the video itself.

What video format does TikTok require?

TikTok requires MP4 (H.264) video files. Videos can be 3 seconds to 10 minutes long, up to 4 GB. The recommended aspect ratio is 9:16 vertical (1080x1920) with a minimum resolution of 720p. Upload your video before creating the post.

Can I post a photo carousel to TikTok via the API?

Yes. Attach 1-35 image media_ids to your post and TikTok publishes a Photo Mode carousel. Video and photo carousels are mutually exclusive: you cannot mix them in the same post. coverPhotoUrl and videoCoverTimestamp are ignored on photo carousels; the first image is the cover unless you set settings.photoCoverIndex to choose another. Max 35 images per carousel.

Can I cross-post a TikTok video to X (Twitter) in the same call?

Yes, but watch the duration limits. TikTok accepts videos up to 10 minutes, but X caps at 2 minutes 20 seconds. If you cross-post a longer video, the X destination will fail with a duration error while TikTok still publishes. To avoid partial publishes, keep cross-posted videos under 2:20, or schedule them as separate posts.

Can I edit a TikTok post after it's published?

No. PATCH /v1/posts/:id only accepts posts in scheduled or draft status. After TikTok accepts the upload, the post status becomes published and our API rejects edit attempts with 400 invalid_post_status. TikTok's Content Posting API does not let third-party apps edit a live post's caption, privacy, or duet/stitch settings: edit on TikTok directly or delete and recreate.

Other platforms you can publish to

  • Instagram -- Reels share the same vertical video format (9:16)
  • YouTube -- YouTube Shorts are a similar short-form vertical video format
  • Facebook -- Facebook Reels also use 9:16 vertical video

Related: TikTok media requirements · testing with SELF_ONLY posts · TikTok analytics · posting to TikTok via API · what the API covers