TikTok

TikTok API: Post a Video

How to publish a video to TikTok via API, including the direct-post and inbox draft modes.

Quick answer

Publish a TikTok video with one call: POST /api/posts, referencing a connected TikTok profile ID and an uploaded media ID, with options.tiktok.mode set to inbox (draft to the creator’s TikTok inbox) or direct. No TikTok developer app or audit is needed — customers connect through PostGate’s already-audited TikTok app.

You do not need your own TikTok developer app, and you do not need to wait on TikTok's audit process, to publish a video to TikTok through PostGate. Customers connect through PostGate's own TikTok app — which has already passed TikTok's audit — and every video post is a single call to PostGate's unified POST /api/posts endpoint.

01

The request: one video, one call

Reference a connected TikTok profile ID and an uploaded media ID. PostGate handles the TikTok-specific upload flow (it pulls the video from your media URL server-side) so you never proxy raw bytes to TikTok's API yourself.

Publish a TikTok videoPostGate API
curl -X POST https://postgate.studio/api/posts \
  -H "Authorization: Bearer pg_live_..." \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: launch-video-482" \
  -d '{
    "post": {
      "body": "New drop, out now.",
      "options": { "tiktok": { "mode": "inbox" } }
    },
    "profiles": ["pro_tiktok123"],
    "media": ["med_01JXYZ"]
  }'
02

Why does the example use inbox mode?

mode: "inbox" sends the video as a draft to the creator's TikTok inbox — the person taps to review and post it themselves inside the TikTok app. It needs no privacy level, no music-usage confirmation, and no creator-info lookup, which makes it the simplest single-request path. Switch to mode: "direct" once you need the post to publish immediately without that manual tap; see direct post vs. inbox mode for the fields direct posting requires.

03

Reading the result

The response's targets array carries one entry for the TikTok profile with its own status, attempt count, and — once TikTok finishes processing — a platform_post_id and permalink. TikTok processes video asynchronously, so a freshly created target is normal to see as publishing before it settles to published.

04

What limits is this single request still subject to?

One video per post, up to 4 GB and 10 minutes long. A caption over 2,200 characters is rejected before TikTok ever sees the request. And every account posting through an unaudited developer app — including PostGate's own shared app for direct posting — is bound by TikTok's posting caps; see TikTok API rate limits for the exact numbers.

Frequently asked questions

When should I use direct mode instead of inbox mode?

Switch to mode: "direct" once you need the post to publish immediately without a manual tap from the creator. Inbox mode sends the video as a draft to the creator’s TikTok inbox, where they tap to review and post it themselves — it needs no privacy level, no music-usage confirmation, and no creator-info lookup, which makes it the simplest single-request path.

How do I know when my TikTok video is published?

The response’s targets array carries one entry for the TikTok profile with its own status, attempt count, and — once TikTok finishes processing — a platform_post_id and permalink. TikTok processes video asynchronously, so a freshly created target is normal to see as publishing before it settles to published.

What are the video limits for posting to TikTok via API?

One video per post, up to 4 GB and 10 minutes long. A caption over 2,200 characters is rejected before TikTok ever sees the request. Every account posting through an unaudited developer app — including PostGate’s own shared app for direct posting — is also bound by TikTok’s posting caps.

Do I upload the video bytes to TikTok myself?

No. You reference an uploaded media ID in the request, and PostGate handles the TikTok-specific upload flow — it pulls the video from your media URL server-side, so you never proxy raw bytes to TikTok’s API yourself.

Build it with PostGate

One API for every social platform your customers care about — sandboxed, documented, and ready today.

Start building Read the docs