Skip to main content
POST
/
upload
/
video
Upload Video
curl --request POST \
  --url https://api.d1g.qzz.io/api/v1/upload/video \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: multipart/form-data' \
  --form tiktokAccountId=123e4567-e89b-12d3-a456-426614174000 \
  --form 'title=Amazing TikTok Video' \
  --form privacyLevel=PUBLIC_TO_EVERYONE \
  --form video='@example-file' \
  --form videoUrl=https://example.com/video.mp4 \
  --form 'description=Check this out! #viral #trending' \
  --form disableDuet=false \
  --form disableStitch=false \
  --form disableComment=false
{
  "success": true,
  "data": {
    "uploadId": "dd3c9a25-f6a0-4ef7-b227-830fa0da70e4",
    "status": "pending",
    "message": "Video upload queued. Processing in background."
  }
}

Authorizations

Authorization
string
header
required

Use JWT token (from Supabase auth) or API key (format: sk_live_...)

Body

multipart/form-data
tiktokAccountId
string<uuid>
required
Example:

"123e4567-e89b-12d3-a456-426614174000"

title
string
required
Required string length: 1 - 150
Example:

"Amazing TikTok Video"

privacyLevel
enum<string>
default:PUBLIC_TO_EVERYONE
required
Available options:
PUBLIC_TO_EVERYONE,
MUTUAL_FOLLOW_FRIENDS,
FOLLOWER_OF_CREATOR,
SELF_ONLY
video
file

Video file (max 1GB) - required if videoUrl not provided

videoUrl
string

Video URL - required if video file not provided

Example:

"https://example.com/video.mp4"

description
string
Maximum string length: 2200
Example:

"Check this out! #viral #trending"

disableDuet
boolean
default:false
disableStitch
boolean
default:false
disableComment
boolean
default:false

Response

202 - application/json

Upload accepted and queued for processing

success
boolean
Example:

true

data
object