Skip to content
Reading with an AI assistant?View as MarkdownOpen in ClaudeOpen in ChatGPT

Guides

Publish to TikTok with the API

A TikTok video needs one required override, privacyLevel. TikTok requires an explicit visibility choice on every post, so there is no default, and the value must be one the connected creator account allows.

Browse docs

6 min read

What do you need before you publish?#

You need one connected account for the platform. Connect it in the SkedCast console. If a client owns the account, create a connect link with POST /v1/clients/{id}/connect-invites and send it to them. They authorize from that page without a SkedCast login.

GET /v1/accounts lists the connected accounts with their ids. Pass that id in targets.accountIds below.

How do you schedule a TikTok post with the API?#

bash
curl -X POST https://api.skedcast.com/v1/posts \
  -H "Authorization: Bearer sked_live_YOUR_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{
    "clientId": "<clientId>",
    "content": "Launch day is here 🚀",
    "mediaIds": ["<mediaAssetId>"],
    "targets": { "mode": "selection", "accountIds": ["<tiktokAccountId>"] },
    "schedule": { "type": "at", "scheduledAt": "2030-01-15T15:00:00Z" }
  }'
The base body. A TikTok post also needs the privacyLevel override shown below.

Which TikTok fields can you set?#

Put everything platform-specific in one variants entry with "platform": "tiktok" and an overrides object. Send only tiktok keys on a tiktok variant. SkedCast reads the keys in the table below and ignores the rest.

FieldTypeValues / defaultNotes
privacyLevelenum — RequiredPUBLIC_TO_EVERYONE \| MUTUAL_FOLLOW_FRIENDS \| FOLLOWER_OF_CREATOR \| SELF_ONLYNo default. Must be a visibility the connected creator account allows.
yourBrandbooleanfalseThe creator is promoting their own brand or business (brand_organic_toggle).
brandedContentbooleanfalseA paid partnership or third-party promotion (brand_content_toggle). Cannot be combined with privacyLevel: "SELF_ONLY".
disableCommentbooleanfalse—
disableDuetbooleanfalse—
disableStitchbooleanfalse—
brandedContentAcceptedbooleanfalseMust be true when brandedContent is on: you accept TikTok's Branded Content Policy. It is not sent to TikTok.
aiDisclosurebooleanfalseLabels the post as AI-generated on TikTok. The post-level aiDisclosure sets it too.
photoCoverIndexinteger0 (the first photo)Photo posts only: which attached photo TikTok shows as the cover.
autoAddMusicbooleanfalsePhoto posts only: let TikTok add a recommended soundtrack.

How do you add TikTok-specific settings?#

json
{
  "clientId": "<clientId>",
  "content": "Day in the life 🎬",
  "mediaIds": ["<videoAssetId>"],
  "coverFrameMs": 2500,
  "targets": { "mode": "selection", "accountIds": ["<tiktokAccountId>"] },
  "variants": [
    {
      "platform": "tiktok",
      "overrides": { "privacyLevel": "PUBLIC_TO_EVERYONE", "disableDuet": true, "yourBrand": true }
    }
  ],
  "schedule": { "type": "at", "scheduledAt": "2030-01-15T15:00:00Z" }
}
The same POST /posts body, with a variants entry added.

How do you check that the post published?#

Publishing creates one post target per account. GET /v1/post-targets/{id} (or GET /v1/posts/{id}) reports status, plus externalId (TikTok's own post id) and permalink (its public URL) once published. To avoid polling, subscribe to the target.published and target.failed webhooks (see the webhooks guide).

tiktokapipublish

FAQ

Why does a TikTok post fail when I set no overrides?
privacyLevel is required and has no default. Set it on the tiktok variant to PUBLIC_TO_EVERYONE, MUTUAL_FOLLOW_FRIENDS, FOLLOWER_OF_CREATOR or SELF_ONLY.
Can I combine brandedContent with a private post?
No. brandedContent: true cannot be combined with privacyLevel: "SELF_ONLY", because TikTok requires branded content to be visible.

Ready to broadcast everywhere?

Sign up free — no credit card. You land on the Free plan, and you can start a one-time 7-day Studio trial from your workspace whenever you are ready. Connect your first accounts, import a batch, and watch one post fan out across every platform.