Skip to content

API

TikTok scheduling API

SkedCast's REST API schedules video and photo carousel to TikTok with one authenticated POST call. The request has the same shape as for every other connected platform, plus any fields specific to TikTok.

All platforms

Scheduling to TikTok through SkedCast's API#

SkedCast's /v1 REST API schedules video and photo carousel to TikTok the same way it does every other platform: one POST https://api.skedcast.com/v1/posts call with a content caption and a targets block naming the connected accounts.

You need a TikTok account connected through TikTok's login, connected once through the console or through a connect link that POST /v1/clients/{id}/connect-invites creates.

The request is one contract for every connected platform. The fields that are specific to TikTok are listed below.

TikTok-specific fields#

FieldNotes
privacyLevelRequired. One of PUBLIC_TO_EVERYONE, MUTUAL_FOLLOW_FRIENDS, FOLLOWER_OF_CREATOR or SELF_ONLY. A missing value returns a 422 naming the field.

Send these in the overrides object of the "tiktok" entry in variants. Every other field on the post (caption, media, schedule) is the same as on every other platform.

Example: schedule a post to TikTok#

json
{
  "clientId": "00000000-0000-4000-8000-000000000001",
  "content": "Day 12 of building a scheduler in public.",
  "mediaIds": ["00000000-0000-4000-8000-000000000003"],
  "targets": { "mode": "accounts", "accountIds": ["00000000-0000-4000-8000-000000000002"] },
  "schedule": { "type": "at", "scheduledAt": "2030-01-15T15:00:00Z" },
  "variants": [
    { "platform": "tiktok", "overrides": { "privacyLevel": "PUBLIC_TO_EVERYONE" } }
  ]
}
POST https://api.skedcast.com/v1/posts — send Authorization: Bearer sked_live_… and an Idempotency-Key header. Replace the example ids with your own.

TikTok facts#

FactValue
Max caption length2,200 characters
Media per postone video, or up to 35 photos as a carousel, per post (not mixed).
Native platform schedulingNo. SkedCast holds the timer and publishes at the scheduled time.
SkedCast's default pacing15 / day, with at least 1 hr between posts, per account. This is SkedCast's per-account pacing, not TikTok's own published limit. See the rate limits reference.
Published-post URL (permalink)Returned once TikTok confirms the post is public. A SELF_ONLY post may never get a public URL. Until then externalId is TikTok's publish id, not the video id.

Reading status and results#

GET https://api.skedcast.com/v1/post-targets/{id} returns the TikTok target's status (for example scheduled, on_hold, published, failed or missed). Once the post is published, externalId and permalink point at the live post (see the table above).

  • on_hold: holdReason says why (pacing, a platform limit, media still processing, your plan, or a channel that needs reconnecting) and retryAt says when the next try is.
  • missed: the scheduled time passed while the post waited. outcomeReason says why; reschedule it.
  • failed: failureReason says why. When the post may already be live, outcomeReason is delivery_unconfirmed: check the account, because a retry is refused.
  • requiredAction says what you must do (reconnect_channel, change_plan, contact_support, reschedule, retry or check_platform), or is null when nothing is needed.
  • Instead of polling, subscribe to the target.published and target.failed webhooks (one per destination; post.published and post.failed report the whole post). See the webhooks reference below.
  • Or connect an MCP client and ask an agent to check. See the MCP hub below.
TikTokapischedulingrest

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.