Skip to main content

TikTok

Using hosted SimplePost? See connection requirements. The credential setup below is for your own SDK, local CLI, or self-hosted integration.

SimplePost uses TikTok's Content Posting API for videos and photos. TikTok app review status affects whether you can publish publicly or only upload drafts/private posts.

Content support

Current hosted app and core source

CapabilitySimplePost support
Text / caption (characters)video: 2,200; image: 4,000
MediaMedia required; 35 items max; 35 images max; 1 video max; No mixed images/video
Image size20 MiB maximum
Video size4 GiB maximum
  • Photos: JPEG/WebP, maximum 1080p, served over HTTPS from a TikTok-verified domain or URL prefix. Up to 35 photos or one video; no mixed media.

These validation limits also match published SDK 1.3.1.

Provider permissions and quotas still apply. SimplePost storage can impose a lower upload limit. MB/GB use decimal bytes; MiB/GiB use binary bytes.

Unaudited TikTok apps may require the TikTok account to be private and may restrict public publishing. Use visibility: "private" while testing if your app is not reviewed.

Hosted posting

Connect TikTok through Accounts; hosted users do not need their own TikTok developer app. In the web app, complete the requested privacy, interaction, and consent settings. The creator's allowed options still determine what can publish.

postingMode: "draft" saves a SimplePost draft. In contrast, accountOptions[accountId].publishMode: "draft" uploads to the TikTok inbox for editing and publishing there; use postingMode: "now" to perform that upload. Inbox uploads are not already-public posts.

Remote MCP direct posts default to PUBLIC_TO_EVERYONE when privacy is omitted. Set privacyLevel explicitly to respect a different audience, and use get_tiktok_creator_info to inspect allowed choices. Photo direct posts use the message as the description, derive a short title, and default autoAddMusic to true. Set it to false to disable recommended music; selecting a specific song is not supported. Use title, description, and photoCoverIndex for photo details. Put these settings inside accountOptions keyed by account ID.

Browser WebMCP requires the web app's manual consent flow for non-draft TikTok posts; use the form to complete it. This is distinct from the remote MCP connector. Platform media limits can exceed SimplePost's own upload limit, so check both before uploading.

Set up credentials

  1. Create a TikTok developer app.
  2. Enable Content Posting products.
  3. Configure redirect URIs for your app or Scheduler deployment.
  4. Request posting scopes.
  5. Authorize the creator account.
  6. Store the access token returned by TikTok.
  7. Confirm that the app tier and account privacy settings allow the publishing mode you plan to use.

The CLI does not bundle a TikTok OAuth app. To use it from the CLI, supply your own client key through the OAuth prompt and the client secret through SIMPLE_POST_TIKTOK_CLIENT_SECRET before running simplepost account add tiktok.

Environment variables

TIKTOK_ACCESS_TOKEN=

SDK options

await post({
content: {
text: "Check out this video",
media: [
{
type: "video",
path: "./video.mp4",
title: "My TikTok Video",
},
],
},
platforms: ["tiktok"],
options: {
tiktok: {
publishMode: "draft",
visibility: "private",
allowComment: true,
allowDuet: true,
allowStitch: true,
},
},
});
OptionValuesDescription
publishModedraft, publicUpload to inbox or publish immediately.
visibilitypublic, friends, privateWho can view direct posts.
allowCommentbooleanAllow comments.
allowDuetbooleanAllow duets.
allowStitchbooleanAllow stitches.

REST server account

Add this entry under accounts in the self-hosted REST server's accounts.json:

{
"id": "tiktok-creator",
"platform": "tiktok",
"username": "yourbrand",
"credentials": { "accessToken": "..." },
"options": {
"publishMode": "public",
"visibility": "public"
}
}