The TikTok scheduling API

Create a TikTok post with one HTTP call. It joins the same queue the dashboard uses, retries on failure, and reports back what actually went out.

Publish to TikTok

# POST a text-and-media post to your connected TikTok channel
curl -X POST https://api.postwharf.com/v1/posts \
  -H "Authorization: Bearer $POSTWHARF_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "text": "Shipping today.",
    "channels": ["ch_your_tiktok_channel"],
    "media": ["med_optional"]
  }'

Schedule it instead

curl -X POST https://api.postwharf.com/v1/posts \
  -H "Authorization: Bearer $POSTWHARF_KEY" \
  -H "Content-Type: application/json" \
  -d '{"text":"Tuesday drop","channels":["ch_your_tiktok_channel"],"publish_at":"2026-09-01T09:00:00Z"}'

Find your TikTok channel id

curl https://api.postwharf.com/v1/channels \
  -H "Authorization: Bearer $POSTWHARF_KEY"

Each connected account is a channel. The one you want has "platform": "tiktok".

Check what happened

curl https://api.postwharf.com/v1/posts/post_xxx \
  -H "Authorization: Bearer $POSTWHARF_KEY"

The response carries one delivery per channel with its status, the live URL once published, and the error text if it failed. Deliveries are re-checked after publishing, so a TikTok post removed later stops reporting as live.

What TikTok accepts

2,200 characters, counting the caption. Up to 35 images or 1 video per post — TikTok does not take both in the same post.

Read from the table the API enforces, so a post over 2,200 is refused when you create it rather than truncated on the way to TikTok.

Worth knowing about TikTok

Publishing goes through an audited API client, so posts go out public.

Every other network

Instagram · X · LinkedIn · YouTube · Facebook · Threads · Pinterest · Bluesky · Reddit · Telegram · Discord · Snapchat · WordPress