Skip to Content

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

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

Content-Type

multipart/form-data

Parameters

Query Parameters

ParameterTypeRequiredDescription
asyncbooleanNoDefault true. If false, the API waits for upload completion.

Body Parameters

ParameterTypeRequiredDescription
accountIdstringYesThe ID of the connected TikTok account.
videoFileYesThe video file (MP4, WebM).
titlestringYesThe caption of the post.
descriptionstringNoAdditional description (will be appended to title for TikTok).
scheduledDatestringNoISO 8601 date string to schedule the post (e.g., 2025-12-25T10:00:00Z).
privacy_levelstringNoPUBLIC_TO_EVERYONE (default), MUTUAL_FOLLOW_FRIENDS, FOLLOWER_OF_CREATOR, SELF_ONLY.
disable_commentbooleanNoDisable comments on the post.
disable_duetbooleanNoDisable Duet feature.
disable_stitchbooleanNoDisable Stitch feature.
brand_content_togglebooleanNoMark as branded content.
brand_organic_togglebooleanNoMark as organic branded content.
is_aigcbooleanNoMark as AI-Generated Content (AIGC).
video_cover_timestamp_msnumberNoTimestamp (in ms) for the video cover image.
post_modestringNoDIRECT_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 "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 scheduledDate is provided, status will be "scheduled" and scheduledFor will contain the ISO date.


Upload multiple photos to create a TikTok carousel.

Endpoint

POST /upload

Content-Type

multipart/form-data

Parameters

Query Parameters

ParameterTypeRequiredDescription
asyncbooleanNoDefault true. If false, the API waits for upload completion.

Body Parameters

ParameterTypeRequiredDescription
accountIdstringYesThe ID of the connected TikTok account.
photoFile[]YesArray of image files.
titlestringYesThe caption of the post.
descriptionstringNoAdditional description.
scheduledDatestringNoISO 8601 date string to schedule the post.
privacy_levelstringNoPUBLIC_TO_EVERYONE (default), MUTUAL_FOLLOW_FRIENDS, FOLLOWER_OF_CREATOR, SELF_ONLY.
disable_commentbooleanNoDisable comments on the post.
auto_add_musicbooleanNoAutomatically add music to the carousel.
photo_cover_indexnumberNoIndex of the image to be used as cover (1-based).
post_modestringNoDIRECT_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.

Endpoint

GET /upload/:id

Parameters

ParameterTypeRequiredDescription
idnumberYesThe uploadId returned from the upload endpoint.

Example Request

curl -X GET https://api.multi-upload-tool.com/api/v1/upload/456 \ -H "x-api-key: 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" } }