Platforms
TikTok
TikTok over the overads API: status, connection, limits, media rules and platformSettings keys.
Status: In review. Connect and test with a test account; delivery for customers switches on when the review clears.
Built and in TikTok's audit. Until it passes, TikTok accepts private (SELF_ONLY) posts only and labels them as from an unaudited app, so it does not publish publicly for customers. The deployment also has to hold TikTok client credentials, and the deployed product does not today, so the channel reports itself as not configured and cannot be connected yet.
Connecting
OAuth through TikTok, in the app. The app reads creator_info after connecting and offers only the privacy levels the account may use.
Once connected the account appears in GET /connections with platform: "tiktok". Use its id in connectionIds.
Limits
| Characters | 2,200 for the caption. |
| API id | tiktok |
- One video (up to 10 minutes and 4 GB, the 500 MB upload cap applies first), or a photo carousel of up to 35 images. Never both, and never text alone; a text-only post is refused with
MEDIA_REQUIRED.
Limits are checked when the post is created or edited, so an over-limit post is refused then with a sentence naming the cap, not at the scheduled minute. These refusals answer 400 with the flat body { statusCode, code, message }, not the { error } envelope: TOO_LONG, TOO_MANY_ITEMS, MEDIA_UNSUPPORTED, MEDIA_REQUIRED, MEDIA_TOO_LARGE (over the channel's video size cap), MEDIA_TOO_LONG (over its duration cap). The full list is under Channel-limit refusals.
Settings
Pass these under platformSettings.tiktok. Every key is optional. An unknown key is refused with PLATFORM_SETTING_UNKNOWN and the dotted path of the key.
| Key | Value | Meaning |
|---|---|---|
privacyLevel | PUBLIC_TO_EVERYONE, MUTUAL_FOLLOW_FRIENDS, FOLLOWER_OF_CREATOR or SELF_ONLY | Checked against what the account may use |
disableComment | boolean | |
disableDuet | boolean | |
disableStitch | boolean | |
brandContentToggle | boolean | Paid partnership disclosure |
brandOrganicToggle | boolean | Own-brand promotion disclosure |
{ "tiktok": { "privacyLevel": "SELF_ONLY", "disableDuet": true } }A post to a channel that is not live is accepted and stored, and its target row records the refusal at delivery time. Do not schedule customer-facing posts there until this page says live.
