Skip to main content
The TikTok API in SocialAPI connects a TikTok account through TikTok’s authorization screen, using TikTok API for Business. It publishes videos and photo carousels, lists the account’s posts with their counts, reads, replies to, and moderates comments, lists mentions, sends comment.received events, and returns profile counts. A creator connection uses TikTok’s Content Posting API instead, and has no comments or mentions. SocialAPI’s own TikTok app connects the account, so you register nothing: see Platform apps.

At a glance

Capabilities

An unsupported call returns 501 resource.not_supported. This table is for the default connection. A creator connection has its own table. The cross-platform matrix is on Platforms.

Connect an account

Connect with POST /v1/accounts/connect and "platform": "tiktok". The shared flow, request fields, and result are in Connect accounts, and the redirect parameters are in Redirect parameters.
Response (HTTP 202):
TikTok-specific rules:
  • Consent screen. The person always sees TikTok’s consent screen, including when they authorized SocialAPI’s app before.
  • Account ID. The connected account has an acc_ ID. Its name is the TikTok display name, username is the TikTok handle, and bio is the profile bio. Profile counts are not on the account: read them with Account summary.
  • Account type. Listing mentions needs a TikTok Business Account: see Mentions.
  • Connection type. metadata.connection_type is "business" (the default) or "creator": see Creator connection. Without connection_type the connect uses "business". Any other value, including an empty string or a non-string, returns 400 validation.connection_type_invalid.
  • Reconnect. Reconnect with the same flow: see Reconnect an account.
  • Accounts connected before 2026-10-13. Comment and mention calls on them return 501 resource.not_supported until you reconnect them.

When TikTok authorization ends

This section covers the default connection. A creator connection is removed when the person removes SocialAPI’s app. The authorization ends when the person removes SocialAPI’s app in TikTok’s settings, or when TikTok refuses to renew it. TikTok sends SocialAPI no notice of a removal, so SocialAPI learns it from the next call that reaches TikTok.
  • First call. It returns 401 platform.tiktok.auth.
  • Later calls. They return 403 account.reconnection_required until you reconnect the account.
  • 401 platform.tiktok.unauthorized. TikTok refused one call as unauthorized without saying the authorization is invalid. The account stays usable. Reconnect it if the error repeats.
  • account.disconnected event. When SocialAPI’s own refresh of the account’s videos meets the ended authorization before one of your calls does, it sends account.disconnected with reconnect_required: true and reason: "posts_sync_auth_failed". A removal in TikTok’s settings does not delete the account from SocialAPI.

Creator connection

A creator connection connects the TikTok account through TikTok’s Content Posting API instead of TikTok API for Business. It works with a personal or creator TikTok account, which does not need to become a TikTok Business Account. Send "connection_type": "creator" in metadata:
The response has the same shape as in Connect an account, and the connected account’s platform is tiktok. A creator connection asks on TikTok’s consent screen for user.info.basic and user.info.profile, plus the scopes of the permissions you select: When the person removes SocialAPI’s app in TikTok’s settings, SocialAPI removes the creator connection’s account and sends account.disconnected. Switching connection type. Connecting the same TikTok username with the other connection_type moves the account to that connection type. It keeps its acc_ ID, brand, and history while the account’s authorization on the previous connection type still works. If that authorization no longer works, the connect creates a new account. A reconnect without connection_type uses "business", so send "creator" on every reconnect of a creator connection.

Creator info

GET /v1/accounts/{id}/creator-info returns the settings TikTok applies to the account’s next post. Read it before you publish. It needs the accounts:read scope.
Response (HTTP 200):
Other platforms return 501 resource.not_supported from this endpoint.

Account summary

GET /v1/platforms/tiktok/accounts/{id}/summary reads the account’s profile and counts from TikTok at the time of the call. It needs the accounts:read scope, and the account needs the analytics.read permission: without it the call returns 403 account.permission_missing.
Response (HTTP 200):
When the account’s authorization lacks a scope for these fields, TikTok refuses the call and SocialAPI returns 403 with the TikTok code in platform.tiktok.<code> (40001, 40118, or 40125). Reconnect the account to grant the scope.

Sync videos

GET /v1/posts?platform=tiktok&account_ids={id} lists the TikTok posts SocialAPI has stored for the account: public videos and photo posts, including posts published outside SocialAPI. Each target carries permalink, media_type (VIDEO or PHOTO), and metrics. SocialAPI refreshes an account’s stored posts on its own, no more than once every 15 minutes. The account needs the posts.read permission. Without it, both sync endpoints return 403 account.permission_missing and SocialAPI refreshes nothing on its own. POST /v1/platforms/tiktok/accounts/{id}/sync refreshes them at once from the 20 most recent posts on TikTok. It needs the accounts:manage scope and has no cooldown. POST /v1/accounts/{id}/sync reads the same 20 posts and allows 1 sync per account every 5 minutes: see Analytics.
Response (HTTP 200):
The two endpoints that return counts use different keys for the view count: TikTok updates likes, comments, shares, and views with a delay of 24 to 48 hours. A call reads TikTok’s latest figures, so a new post shows 0 until TikTok publishes them. Reach, saves, and watch time are not available. GET /v1/posts/{pid}/metrics reads the account’s 20 most recent posts and reuses that read for 10 minutes. For an older post, the target returns 404 resource.not_found. Examples are in TikTok publishing.

Comments

SocialAPI reads, writes, and moderates comments on the account’s own TikTok posts through the shared Comments endpoints. This section holds only what differs on TikTok.
  • IDs. {postId} is the TikTok video ID, which is the target’s platform_post_id. A comment’s platform_id is {video_id}_{comment_id}, and its id is the sapi_cmt_ ID. Use id or platform_id as {commentId}. Hide, unhide, reply, and list replies need that full form: a bare TikTok comment ID returns 400 validation.comment_id_invalid. Delete and like accept either form.
  • List. GET /v1/inbox/comments/{postId} returns up to 30 comments per page, and the replies endpoint returns up to 30 replies per page. The list includes hidden comments: is_hidden is true for them. A reply to a hidden comment cannot be listed. Comment text only: images in comments are not returned.
  • GET /v1/inbox/comments. It lists the account’s posts that have comments, with their comment counts. A read refreshes that list when it is older than 1 hour.
  • Reply. POST /v1/inbox/comments/{postId} with comment_id replies to that comment. Without comment_id it comments on the post as the connected account. The text holds up to 1,200 characters, and a reply costs 1 interaction credit.
  • Hide and unhide. For comments written by other people. capabilities.can_hide is false on the connected account’s own comments.
  • Delete. For comments the connected account wrote. capabilities.can_delete is false on other people’s comments. Hide those instead.
  • Like. POST and DELETE on /v1/inbox/comments/{postId}/{commentId}/like like and unlike as the connected account. liked_by_viewer is true when the connected account liked the comment.
  • Private replies. TikTok has none: 501 resource.not_supported, and can_private_reply is false.
  • Author fields. author_id is TikTok’s unique identifier for the person, author_name is the display name (the handle when TikTok gives none), and author_username is the handle.
  • Replies. A reply has parent_id set to the platform_id of the comment it answers.
TikTok limits each account to 40 requests per minute for each TikTok call. Beyond that, calls return 429 platform.tiktok.rate_limit.

Mentions

GET /v1/accounts/{id}/mentions lists the public posts that mention the account in the caption and the comments that mention it. TikTok serves mentions for TikTok Business Accounts only. For another account, TikTok refuses the call and SocialAPI returns the TikTok code as platform.tiktok.<code>. The shared endpoints are in Mentions.
  • Delay. TikTok makes a mention available 24 to 48 hours after it is made, and 24 hours after the account is connected. TikTok asks apps to read each mention list at most once per account per day, after 07:00 UTC.
  • Page size. A page holds up to 20 mentions, split between caption mentions and comment mentions. Newest first within a page. Follow next_cursor for the rest.
  • Item fields. author.username is the handle of the person, content.text is the caption or comment text, platform_post_id is the TikTok video ID, and permalink is the video link. metadata is null. A comment mention’s id carries both the video and the comment.
  • Reply. POST /v1/accounts/{id}/mentions/reply works for a mention made in a comment. Send the mention’s sapi_mnt_ ID as media_id, or send the video ID as media_id with the comment’s platform_id as comment_id. For a mention in a caption, TikTok has no reply: the call returns 400 validation.mention_reply_unsupported. A reply costs 1 interaction credit.
  • Events. TikTok sends SocialAPI no mention notifications. Each call that returns at least one mention sends a mention.received event: see Mentions you list.

Webhook events

comment.received details on TikTok:
  • Author. author.id is TikTok’s unique identifier for the person. author.name, author.username, and author.avatar_url come from the comment.
  • Post. platform_post_id is the TikTok video ID. post_id and permalink are not set.
  • Not sent. Comments written by the connected account, and TikTok’s deletions and visibility changes. A comment that TikTok no longer lists when SocialAPI reads it, for example one deleted within seconds, produces no event.
  • Timing. TikTok reports a new comment to SocialAPI within 5 minutes of the comment.
  • Raw payload. raw_payload holds the TikTok notification.
TikTok has no DM or review events. Listing mentions sends mention.received: see Mentions you list. Every event is described in Webhook events.

Limits

Scopes

SocialAPI’s TikTok app asks the person for these scopes on TikTok’s consent screen. You apply for no app review. On the default connection, the consent screen is the same whichever permissions you select, and the account is limited to your selection. A creator connection asks for other scopes: see Creator connection.
Last modified on October 16, 2026