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-key: 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
- Formats: JPG, JPEG, WEBP.
- Aspect Ratio: 9:16 required. Images that don’t match this ratio are automatically padded/resized to 1080x1920 pixels.
- Max Images: Up to 35 images per carousel.
Upload Video
Upload a single video file to TikTok.
Endpoint
POST /upload
Content-Type
multipart/form-data
Parameters
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
async | string | No | Default "true". If "false", the API waits for upload completion. Passed as a query string value. |
Body Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
accountId | string | Yes | The ID of the connected TikTok account. |
video | File | Yes | The video file (MP4, WebM). |
title | string | Yes | The caption of the post. |
description | string | No | Additional description (will be appended to title for TikTok). |
schedule_date | string | No | ISO 8601 date string to schedule the post (e.g., 2025-12-25T10:00:00Z). Must be in the future and within 6 months. |
privacy_level | string | No | PUBLIC_TO_EVERYONE (default), MUTUAL_FOLLOW_FRIENDS, FOLLOWER_OF_CREATOR, SELF_ONLY. If the requested level is not available for the creator, falls back to SELF_ONLY. |
disable_comment | boolean | string | No | Disable comments on the post. Accepts true/false or "true"/"false". |
disable_duet | boolean | string | No | Disable Duet feature. |
disable_stitch | boolean | string | No | Disable Stitch feature. |
brand_content_toggle | boolean | string | No | Mark as branded content. |
brand_organic_toggle | boolean | string | No | Mark as organic branded content. |
is_aigc | boolean | string | No | Mark as AI-Generated Content (AIGC). |
video_cover_timestamp_ms | number | No | Timestamp (in ms) for the video cover image. |
post_mode | string | No | DIRECT_POST (default), DRAFT. |
Example Request
curl -X POST https://api.multi-upload-tool.com/api/v1/upload \
-H "x-api-key: YOUR_API_TOKEN" \
-F "accountId=123" \
-F "video=@/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",
"scheduledFor": null
}
}Scheduled post: If
schedule_dateis provided,statuswill be"scheduled"andscheduledForwill contain the ISO date.
Upload Photos (Carousel)
Upload multiple photos to create a TikTok carousel.
Endpoint
POST /upload
Content-Type
multipart/form-data
Parameters
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
async | string | No | Default "true". If "false", the API waits for upload completion. |
Body Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
accountId | string | Yes | The ID of the connected TikTok account. |
photo | File[] | Yes | Array of image files (JPG, JPEG, WEBP). Images are automatically padded to 9:16 (1080x1920). |
title | string | Yes | The caption of the post. |
description | string | No | Additional description. |
schedule_date | string | No | ISO 8601 date string to schedule the post. Must be in the future and within 6 months. |
privacy_level | string | No | PUBLIC_TO_EVERYONE (default), MUTUAL_FOLLOW_FRIENDS, FOLLOWER_OF_CREATOR, SELF_ONLY. |
disable_comment | boolean | No | Disable comments on the post. |
auto_add_music | boolean | No | Automatically add music to the carousel. |
photo_cover_index | number | No | Index of the image to be used as cover (1-based). |
post_mode | string | No | DIRECT_POST, DRAFT. |
Example Request
curl -X POST https://api.multi-upload-tool.com/api/v1/upload \
-H "x-api-key: YOUR_API_TOKEN" \
-F "accountId=123" \
-F "photo=@/path/to/photo1.jpg" \
-F "photo=@/path/to/photo2.jpg" \
-F "title=My photo dump 📸" \
-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. See the Posts API for details on listing and filtering uploads.