TikTok Upload API
This section details how to upload videos and photos (carousels) to TikTok using the API.
Base URL
https://api.multi-upload-tool.com/api/v1
Authentication
All requests require an API Token in the header:
x-api-token: YOUR_API_TOKEN
Requirements
TikTok Video Requirements
- Supported Formats: MP4 (recommended), WebM, MOV
- Supported Codecs: H.264 (recommended), H.265, VP8
- Framerate: Minimum: 23 FPS, Maximum: 60 FPS
- Picture Size: Minimum: 360 pixels (height and width), Maximum: 4096 pixels (height and width)
- Duration: Maximum via API: 10 minutes. (Note: All TikTok creators can post 3-minute videos. Some creators have access to 5-minute or 10-minute videos. Users may trim videos in the TikTok app.)
- Size: Maximum: 4GB
TikTok Photo Requirements
While the API allows photo uploads to TikTok (e.g., for slideshows with auto_add_music), specific format requirements (resolution, aspect ratio, file size) are not detailed in the provided source.
- General Guidance: Only image formats: JPG, JPEG, or WEBP are compatible.
- Please refer to the official TikTok documentation for specific photo guidelines.
Upload Video
Upload a single video file to TikTok.
Endpoint
POST /upload/tiktok
Content-Type
multipart/form-data
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
accountId | string | Yes | The ID of the connected TikTok account. |
file | File | Yes | The video file to upload (MP4, WebM). |
title | string | Yes | The caption/title of the post (max 2200 characters). |
privacy_level | string | No | Visibility: PUBLIC_TO_EVERYONE (default), MUTUAL_FOLLOW_FRIENDS, FOLLOWER_OF_CREATOR, SELF_ONLY. |
disable_comment | boolean | No | Disable comments on the post. |
disable_duet | boolean | No | Disable Duet feature. |
disable_stitch | boolean | No | Disable Stitch feature. |
brand_content_toggle | boolean | No | Mark as branded content. |
brand_organic_toggle | boolean | No | Mark as organic branded content. |
is_aigc | boolean | No | Mark as AI-Generated Content (AIGC). |
video_cover_timestamp_ms | number | No | Timestamp (in ms) for the video cover image. |
schedule_date | string | No | ISO 8601 date string to schedule the post (e.g., 2025-12-25T10:00:00Z). |
Example Request
curl -X POST https://api.multi-upload-tool.com/api/v1/upload/tiktok \
-H "x-api-token: YOUR_API_TOKEN" \
-F "accountId=123" \
-F "file=@/path/to/video.mp4" \
-F "title=My amazing video #tiktok" \
-F "privacy_level=PUBLIC_TO_EVERYONE" \
-F "is_aigc=false"Example Response
{
"success": true,
"message": "Upload queued successfully",
"data": {
"uploadId": 456,
"status": "pending",
"jobId": "job_789"
}
}Upload Photos (Carousel)
Upload multiple photos to create a TikTok carousel.
Endpoint
POST /upload/tiktok
Content-Type
multipart/form-data
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
accountId | string | Yes | The ID of the connected TikTok account. |
files | File[] | Yes | Array of photo files to upload. |
title | string | Yes | The caption/title of the post. |
media_type | string | Yes | Must be set to PHOTO. |
privacy_level | string | No | Visibility options (same as video). |
auto_add_music | boolean | No | Automatically add music to the carousel. |
photo_cover_index | number | No | Index of the image to use as cover (1-based). |
disable_comment | boolean | No | Disable comments. |
schedule_date | string | No | ISO 8601 date string to schedule the post. |
Example Request
curl -X POST https://api.multi-upload-tool.com/api/v1/upload/tiktok \
-H "x-api-token: YOUR_API_TOKEN" \
-F "accountId=123" \
-F "files=@/path/to/photo1.jpg" \
-F "files=@/path/to/photo2.jpg" \
-F "title=My photo dump 📸" \
-F "media_type=PHOTO" \
-F "auto_add_music=true"Example Response
{
"success": true,
"message": "Upload queued successfully",
"data": {
"uploadId": 457,
"status": "pending",
"jobId": "job_790"
}
}Check Upload Status
Check the status of a queued or completed upload.
Endpoint
GET /posts/:id
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
id | number | Yes | The uploadId returned from the upload endpoint. |
Example Request
curl -X GET https://api.multi-upload-tool.com/api/v1/posts/456 \
-H "x-api-token: YOUR_API_TOKEN"Example Response
{
"success": true,
"data": {
"id": 456,
"userId": 1,
"connectedAccountId": 123,
"platform": "tiktok",
"title": "My amazing video #tiktok",
"status": "completed",
"uploadedAt": "2023-10-27T10:00:00.000Z",
"metadata": "{\"videoId\":\"v123456\",\"shareUrl\":\"https://www.tiktok.com/@user/video/123456\"}",
"fileSize": "15000000"
}
}