TikTok Upload API Post Videos, Photos & Carousels Programmatically

The TikTok Content Posting API without the OAuth headache. One REST endpoint to upload videos, photo carousels and slideshows — direct post or draft, with scheduling and privacy controls.

tiktok-upload.ts
import { UploadPost } from 'upload-post';

const uploader = new UploadPost('your-api-key');

await uploader.upload('video.mp4', {
  title: 'My TikTok Video',
  platforms: ['tiktok']
});

TikTok Content Posting API — Everything Included

A complete API to automate your TikTok content

TikTok Video Upload API

Upload videos to TikTok with one REST call. Send a local file or a public video URL — we handle transcoding and publishing.

Photo Carousel / Slideshow

Publish single images or multi-image photo carousels and slideshows to TikTok programmatically.

Direct Post or Draft Mode

Publish straight to the account (DIRECT_POST) or push to the TikTok inbox to finish in-app (MEDIA_UPLOAD).

Privacy & Interaction Controls

Set privacy level and disable duet, stitch or comments per post — all from the API.

Schedule & Queue

Schedule posts with scheduled_date or drop them into your auto-publishing queue.

AIGC & Brand Disclosure

Flag AI-generated content (is_aigc) and brand/paid-partnership content to stay compliant with TikTok policy.

Upload a Video to TikTok via API

One POST request to /api/upload — send a file or a public URL

Request — cURL
curl -X POST https://api.upload-post.com/api/upload \
  -H 'Authorization: Apikey your-api-key-here' \
  -F 'user=my-profile' \
  -F 'platform[]=tiktok' \
  -F 'video=@/path/to/video.mp4' \
  -F 'title=New TikTok video just dropped!' \
  -F 'privacy_level=PUBLIC_TO_EVERYONE' \
  -F 'disable_comment=false'
Response — 200 OK
{
  "success": true,
  "results": {
    "tiktok": {
      "success": true,
      "publish_id": "v2.123456789",
      "video_was_transcoded": true
    }
  },
  "usage": { "count": 12, "limit": 100 }
}

Long uploads switch to background automatically — poll the Upload Status endpoint with your request_id. Full reference in the Upload Video API docs.

Pro tip: post in Draft mode for more reach

Set post_mode=MEDIA_UPLOAD instead of direct posting. The video lands in your TikTok inbox so you can finish it natively inside the TikTok app: add a trending sound, native text and stickers, and pick the best cover frame. Clips finished this way tend to get noticeably more reach than fully-automated direct posts, because TikTok's algorithm favors videos that use in-app trending audio.

Rule of thumb: use DIRECT_POST for hands-off, high-volume automation, and MEDIA_UPLOAD (Draft) when reach on a specific video matters most. You can mix both per request.

TikTok API Parameters

The most-used fields for the TikTok upload endpoint

Parameter Type Required Description
video File / URL Yes The video file (multipart) or a public video URL to publish.
title / tiktok_title String No Caption for the post. Up to 2,200 chars for video, 90 for photo posts.
privacy_level String No PUBLIC_TO_EVERYONE, MUTUAL_FOLLOW_FRIENDS, FOLLOWER_OF_CREATOR or SELF_ONLY.
post_mode String No DIRECT_POST (publish now) or MEDIA_UPLOAD (send to TikTok inbox / draft).
disable_duet / disable_stitch / disable_comment Boolean No Turn off duet, stitch or comments for the post.
cover_timestamp Integer No Millisecond timestamp of the frame used as the video cover.
is_aigc Boolean No Declare the content as AI-generated.
scheduled_date ISO-8601 No Future date/time to schedule the publish (≤ 365 days ahead).

See the complete parameter list in the API documentation.

Start Uploading Videos in Minutes

Three steps to integrate the TikTok Upload API

1

Create your account

Sign up for Upload-Post and grab your API key from the dashboard.

2

Connect TikTok

Authorize your TikTok account once — we manage the OAuth and Content Posting API access.

3

Upload programmatically

POST to /api/upload with platform[]=tiktok and your video. Done.

TikTok Upload API — FAQ

Common questions about posting to TikTok programmatically

Is there an API to upload videos to TikTok?

Yes. Upload-Post exposes the TikTok Content Posting API through a single REST endpoint (POST /api/upload). You send your video file or a public URL with platform[]=tiktok and we publish it to the connected TikTok account. You avoid building your own TikTok developer app, OAuth flow and audited-client review.

How do I upload a video to TikTok programmatically?

Send a multipart POST request to https://api.upload-post.com/api/upload with your API key in the Authorization header, user (your profile), platform[]=tiktok and the video field (a file or a public URL). The API returns a publish_id you can track with the Upload Status endpoint. A working curl and JavaScript example is shown above.

What is the TikTok Content Posting API?

The TikTok Content Posting API is TikTok's official way to publish videos and photo posts from outside the app. It supports two modes: DIRECT_POST publishes straight to the account, and MEDIA_UPLOAD sends the media to the user's TikTok inbox to finish editing in-app. Upload-Post wraps both modes behind one parameter (post_mode).

Does the TikTok upload API support photo carousels and slideshows?

Yes. Besides videos, you can publish single images and multi-image photo carousels / slideshows to TikTok programmatically through the same endpoint.

Can I schedule TikTok posts with the API?

Yes. Add a scheduled_date (ISO-8601, up to 365 days in the future) to schedule the post, or use add_to_queue to drop it into your next available auto-publishing slot.

What privacy and interaction settings can I control?

You can set privacy_level (PUBLIC_TO_EVERYONE, MUTUAL_FOLLOW_FRIENDS, FOLLOWER_OF_CREATOR, SELF_ONLY) and toggle disable_duet, disable_stitch and disable_comment per post. You can also declare AI-generated content with is_aigc and flag brand/paid-partnership content.

How much does the TikTok upload API cost?

TikTok uploads require a paid plan — they are not available on the Free tier. Every other part of the API (account, key, other platforms) is free to start with no credit card. See the pricing page for current plans.

Should I post directly or use Draft (MEDIA_UPLOAD) mode?

For maximum reach, many creators prefer Draft mode (post_mode=MEDIA_UPLOAD): the video is sent to your TikTok inbox so you can finish it inside the app, adding a trending sound, native text and a custom cover before publishing. TikTok tends to reward videos that use in-app trending audio with more reach. Use DIRECT_POST for fully hands-off automation, and MEDIA_UPLOAD when a specific video's reach matters most.

Do I need TikTok developer approval to use it?

No. Upload-Post operates an approved TikTok Content Posting API integration, so you connect your TikTok account and start posting without submitting your own app for TikTok's audited-client review.

Ready to automate your TikTok uploads?

Start posting videos to TikTok programmatically today. No credit card required.

Create Free Account

Prefer an AI agent? Use the TikTok Claude Code skill or the TikTok MCP server.