TikTok
Mutation
Use the scheduleTikTokPost
mutation to schedule video content to TikTok:
mutation ScheduleTikTokPost($input: ScheduleTikTokPostInput!) {
scheduleTikTokPost(input: $input) {
success
errors {
field
message
}
post {
id
socialAccount {
id
username
}
publishingStatus
caption
description
privacyLevel
allowUsersToComment
allowUsersToDuet
allowUsersToStitch
isBrandContent
isPaidPartnership
isAiGeneratedContent
gallery {
id
galleryMediaSet {
id
media {
url
mimeType
}
}
}
submissions {
id
postAt
publishingMethod
}
}
}
}
Input Parameters
ScheduleTikTokPostInput
PUBLIC_TO_EVERYONE
, FOLLOWER_OF_CREATOR
, MUTUAL_FOLLOW_FRIENDS
, SELF_ONLY
READY_TO_PUBLISH
, DRAFT
(default: READY_TO_PUBLISH
)TikTokPostSubmissionInputType
Each submission defines a specific posting schedule:
AUTOMATIC
, MANUAL
(default: AUTOMATIC
)Examples
Simple TikTok Video
Schedule a basic TikTok video with a video from URL.
{
"input": {
"username": "myhandle",
"caption": "Check out this amazing dance! 💃 #dance #viral #fyp",
"mediaUrl": "https://example.com/dance-video.mp4",
"privacyLevel": "PUBLIC_TO_EVERYONE",
"allowUsersToComment": true,
"allowUsersToDuet": true,
"allowUsersToStitch": false,
"isBrandContent": false,
"isPaidPartnership": false,
"submissions": [
{
"postAt": "2025-12-01T18:00:00Z"
}
]
}
}
TikTok Video with Content Library Media
Schedule a video using media from your Content Library.
{
"input": {
"username": "myhandle",
"caption": "Tutorial time! Save this for later 📚 #tutorial #howto #learn",
"description": "Step-by-step guide to mastering this technique",
"mediaName": "tutorial-video.mp4",
"privacyLevel": "PUBLIC_TO_EVERYONE",
"allowUsersToComment": true,
"allowUsersToDuet": false,
"allowUsersToStitch": true,
"autoAddMusic": true,
"isBrandContent": false,
"isPaidPartnership": false,
"submissions": [
{
"postAt": "2025-12-01T16:30:00Z"
}
]
}
}
Branded Content Video
Schedule a TikTok video with brand content disclosures.
{
"input": {
"username": "myhandle",
"caption": "Loving this new product! #sponsored #brandpartner #ad",
"mediaUrl": "https://example.com/brand-video.mp4",
"privacyLevel": "PUBLIC_TO_EVERYONE",
"allowUsersToComment": true,
"allowUsersToDuet": true,
"allowUsersToStitch": true,
"isBrandContent": true,
"isPaidPartnership": true,
"isAiGeneratedContent": false,
"submissions": [
{
"postAt": "2025-12-01T20:00:00Z"
}
]
}
}
AI-Generated Content Video
Schedule a video created with AI tools.
{
"input": {
"username": "myhandle",
"caption": "AI-generated content experiment! What do you think? 🤖 #ai #tech #future",
"mediaUrl": "https://example.com/ai-video.mp4",
"privacyLevel": "PUBLIC_TO_EVERYONE",
"allowUsersToComment": true,
"allowUsersToDuet": false,
"allowUsersToStitch": false,
"isBrandContent": false,
"isPaidPartnership": false,
"isAiGeneratedContent": true,
"submissions": [
{
"postAt": "2025-12-01T14:00:00Z"
}
]
}
}
Response Types
Success Response
{
"data": {
"scheduleTikTokPost": {
"success": true,
"errors": [],
"post": {
"id": "123",
"socialAccount": {
"id": "456",
"username": "myhandle"
},
"publishingStatus": "READY_TO_PUBLISH",
"caption": "Check out this amazing dance! 💃 #dance #viral #fyp",
"description": null,
"privacyLevel": "PUBLIC_TO_EVERYONE",
"allowUsersToComment": true,
"allowUsersToDuet": true,
"allowUsersToStitch": false,
"isBrandContent": false,
"isPaidPartnership": false,
"isAiGeneratedContent": false,
"gallery": {
"id": "789",
"media": [
{
"id": "101",
"url": "https://cdn.example.com/dance-video.mp4",
"type": "video"
}
]
},
"submissions": [
{
"id": "112",
"postAt": "2025-12-01T18:00:00Z",
"publishingMethod": "AUTOMATIC"
}
]
}
}
}
}
Error Response
{
"data": {
"scheduleTikTokPost": {
"success": false,
"errors": [
{
"field": "mediaUrl",
"message": "TikTok videos must be between 3 seconds and 10 minutes long."
}
],
"post": null
}
}
}
Validation Rules
- Video Duration: Minimum 3 seconds, maximum 10 minutes
- File Size: Maximum 287.6MB per video
- Video Format: Supports MP4, MOV, MPEG, AVI, WMV, 3GPP, WEBM
- Aspect Ratios: Vertical (9:16) recommended, also supports 1:1 and 16:9
- Resolution: Minimum 540x960, maximum 1080x1920 for vertical videos
- Frame Rate: Minimum 23fps, maximum 60fps
- Audio: Required for video content
- Caption Length: No strict limit, but shorter captions perform better
- Hashtags: Use 3-5 relevant hashtags for better discoverability
- Brand Content: Must be properly disclosed if sponsored
- AI Content: Must be labeled if AI-generated
- Scheduling: Posts must be scheduled for future dates only
- Account Limits: Respects your plan's monthly post limits
Common Errors
The specified username is not connected to your Postpone account. Connect the account in your settings first.
Your video duration is outside TikTok's accepted range. Trim your video to be between 3 seconds and 10 minutes.
You must include a video file. Use gallery
, mediaUrl
, or mediaName
to attach a video to your post.
Your video format is not supported. Use MP4, MOV, MPEG, AVI, WMV, 3GPP, or WEBM format.
Your video file is too large. TikTok supports videos up to 287.6MB in size.
Your video aspect ratio is not optimal. Use vertical (9:16), square (1:1), or horizontal (16:9) formats.
The postAt
timestamp must be in the future. Check your timezone settings.
When isBrandContent
is true, ensure your content follows TikTok's branded content guidelines.
You've reached your plan's TikTok post limit for the scheduled month. Upgrade your plan or schedule for a different month.