OmniSocialsOmniSocials
DocumentationAPI reference
Help centerSupport
  • Documentation
  • API reference
Developers
  • Quickstart
  • API reference
  • SDKs
  • MCP server
  • CLI
For AI agents
  • Docs for AI agents
  • llms.txt
  • OpenAPI spec
  • Postman collection
Product
  • OmniSocials
  • Pricing
  • Changelog
  • Help center
Company
  • Support
  • Privacy policy
  • Terms of service

© 2026 OmniSocials

OmniSocials on GitHubOmniSocials on XOmniSocials on LinkedIn
Overview
Get started
SDKs
CLI
MCPDocs for AI agentsWebhooks
Guides
Platforms
    OverviewKnown issuesFacebookInstagramThreadsLinkedInYouTubeTikTokPinterestBlueskyMastodonX (Twitter)Google BusinessTelegramDiscord
Integrations
Migrate
Plans and billing
GlossaryChangelogAPI reference
Platforms

TikTok API: posting reference

TikTok is supported via TikTok's Content Posting API. Both photo posts and video posts (reels) are available. Personal and business TikTok accounts can both connect. Comments, first comments and watch-depth analytics use TikTok's Business (Accounts) API, through a second, optional consent: Enable comments (see Social Inbox below).

For an overview and use cases, see TikTok API.

Channel ID: tiktok

Supported content types

TypeSupportedNotes
Feed post✅Photo post (1-35 images) or a single video
Story-Not supported
Reel✅Vertical video

Minimal example

Video reel:

TerminalTerminal
curl -X POST https://api.omnisocials.com/v1/posts/create \ -H "Authorization: Bearer $OMNISOCIALS_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "type": "reel", "content": { "default": "New drop 🔥" }, "accounts": ["your-tiktok-account-id"], "media_urls": ["https://example.com/video.mp4"], "tiktok": { "privacy_level": "PUBLIC_TO_EVERYONE" } }'

Photo post:

TerminalTerminal
curl -X POST https://api.omnisocials.com/v1/posts/create \ -H "Authorization: Bearer $OMNISOCIALS_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "content": { "default": "Weekend shots" }, "accounts": ["your-tiktok-account-id"], "media_urls": [ "https://example.com/photo1.jpg", "https://example.com/photo2.jpg" ], "tiktok": { "privacy_level": "PUBLIC_TO_EVERYONE" } }'

Platform-specific options

FieldTypeDescription
tiktok.titlestringPhoto carousels only. The title TikTok shows above the caption on Photo Mode posts, max 90 characters. TikTok's photo endpoint takes the title and the caption as separate fields; the caption comes from content. Ignored on video posts, which have a single caption field. Read back as tiktok.title.
tiktok.privacy_levelstringWho can see the post. One of PUBLIC_TO_EVERYONE (default), MUTUAL_FOLLOW_FRIENDS, FOLLOWER_OF_CREATOR, SELF_ONLY.
tiktok.disable_commentbooleanDisable comments on the post.
tiktok.disable_duetbooleanDisable duets (video only).
tiktok.disable_stitchbooleanDisable stitches (video only).
tiktok.video_cover_timestamp_msintegerVideo only. Timestamp (ms) of the frame to use as the cover. TikTok only accepts a frame, never an image: a custom video_cover is skipped on TikTok and the frame is used instead.
tiktok.is_aigcbooleanDisclose the content is AI-generated. Reel-type videos only; not sent on photo posts or on a video published as a feed post.
tiktok.brand_content_togglebooleanMark as a paid partnership promoting a third-party brand.
tiktok.brand_organic_togglebooleanMark as promoting your own business / brand.
tiktok.auto_add_musicbooleanPhoto carousels only. When true, TikTok auto-selects a soundtrack. Defaults to false.
tiktok.first_commentstringAuto-posted as the first comment right after the video publishes, max 150 characters. Needs comments enabled on the channel (see Social Inbox below) and a public video with comments allowed. See Automatic first comment.

When privacy_level is omitted, the post publishes as PUBLIC_TO_EVERYONE. TikTok decides per creator which levels an account may use; if the account can't use the level you send, the post publishes as SELF_ONLY (private) instead.

Media requirements

MediaRequirement
VideoMP4, MOV, or WebM, aspect ratio 9:16 or 16:9, 3 seconds up to the account's own limit (3, 5 or 10 minutes, set by TikTok per creator), max 1 GB (OmniSocials' upload ceiling: 1 GB for media added by URL, 100 MB for direct file uploads; TikTok itself allows up to 4 GB)
PhotoJPEG, PNG, or WebP (PNG is converted to JPEG at post time), 1-35 images per post, max 20 MB per image

Photo posts must contain only images. Video posts must contain exactly one video. Mixing is not allowed.

Alt text. Per-media alt entries are accepted but not delivered; the platform's API does not support alt text on third-party posts. It is safe to send the same media objects you use for other platforms.

Character limit

Captions cap at 2,200 characters on videos (TikTok's video endpoint has a single title field) and 4,000 characters on photo posts. Longer returns 400 validation_error at create time. Photo post titles (tiktok.title) cap at 90 characters; longer returns 400 validation_error.

Limitations

  • Posts publish straight to the profile. Sending a video to the creator's TikTok drafts (inbox upload mode) is not supported.
  • brand_content_toggle: true triggers TikTok's branded content review workflow. The post may take longer to publish.
  • TikTok's API has no native scheduling. Scheduled OmniSocials posts are held on our side and published at the scheduled time.
  • Custom cover images are not supported: TikTok takes a frame of the video as the cover (tiktok.video_cover_timestamp_ms).
  • Published videos can't be deleted from OmniSocials: TikTok's API has no delete. Remove them in the TikTok app.
  • Comments, duets, and stitches can be disabled at post time but cannot be changed later

Social Inbox

Comments on your TikTok videos land in the Social Inbox once comments are enabled on the channel. Enabling is a second TikTok authorization, started from the Enable comments button on the TikTok channel card under Settings -> Organisation -> Workspaces. New comments arrive in real time, with a check every 15 minutes as a safety net. You can reply, like or unlike (liking is app-only for now), and hide or delete comments (POST /inbox/messages/{id}/hide, DELETE /inbox/messages/{id}; see Hiding and deleting comments). TikTok DMs are not part of the inbox.

Replies post from the connected TikTok account and are text only, capped at 150 characters. TikTok holds fresh comments and replies in spam review for roughly 15 to 20 minutes before they are publicly visible. See TikTok comments in the Social Inbox guide.

The same authorization unlocks first comments (tiktok.first_comment, above) and watch-depth analytics.

Watch-depth analytics

TikTok's regular posting API only reports views, likes, comments, and shares. Once comments are enabled on the channel, the analytics endpoints (GET /analytics/posts/:id, the bulk variant, and GET /posts/recent-platform) add these fields to the TikTok metrics map, as TikTok reports them:

MetricMeaning
average_time_watchedAverage seconds a viewer watched
full_video_watched_rateShare of views that watched to the end
total_time_watchedTotal seconds watched across all views
favoritesTimes the video was saved to favorites
reachUnique accounts that saw the video
impression_sourcesWhere the video was seen (For You, Following, and so on), as percentages
audience_typesViewer types (new viewers, followers, and so on), as percentages
audience_countriesTop 10 viewer countries, as percentages

They cover roughly the 200 most recent videos of the account. The breakdown keys (impression_sources, audience_types, audience_countries) appear only when TikTok returns them. The same authorization adds account insights to GET /analytics/accounts: profile views, video views, reach, accounts engaged, follows gained and lost, bio link clicks, online followers, and audience demographics (country, gender, age). Channels that enabled comments before 22 August 2026 need one more consent for the insights scopes (video.insights, user.insights): click Unlock analytics permissions on the TikTok channel card. When the authorization or scope is missing the keys are absent, not zero.

Last modified on October 21, 2026
YouTubePinterest
On this page
  • Supported content types
  • Minimal example
  • Platform-specific options
  • Media requirements
  • Character limit
  • Limitations
  • Social Inbox
  • Watch-depth analytics