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.
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
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' {
"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
Create your account
Sign up for Upload-Post and grab your API key from the dashboard.
Connect TikTok
Authorize your TikTok account once — we manage the OAuth and Content Posting API access.
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 AccountPrefer an AI agent? Use the TikTok Claude Code skill or the TikTok MCP server.