Try it live
Go to the downloader and test with a real TikTok link
Open Downloader
GET Endpoint

Single endpoint. No versioning, no auth. One URL and you're done.

GET /api/tiktok?url={tiktok_url}

Replace {tiktok_url} with any TikTok or vt.tiktok.com URL, URL-encoded.

Query Parameters
ParameterTypeRequiredDescription
url string Yes Full TikTok video/slideshow URL or short link (vt.tiktok.com)
Response Schema
application/json
status
boolean
true on success, false on error
type
string
"video" or "image" (slideshow)
username
string
TikTok display name of the creator
caption
string
Video or slideshow caption text
avatar
string
Creator profile picture URL
may be empty
video
string
Direct download link, no watermark
empty for slideshow posts
music
string
Direct audio download link (MP3)
may be empty
images
string[]
Array of image URLs for slideshows
empty array for regular videos
Code Examples
JavaScript / fetch
javascript
// Download TikTok video
const url = "https://www.tiktok.com/@user/video/123456789";
const res  = await fetch(`/api/tiktok?url=${encodeURIComponent(url)}`);
const data = await res.json();

if (data.status) {
  console.log("Creator:", data.username);
  console.log("Video:",   data.video);   // no watermark
  console.log("Music:",   data.music);   // audio only
  console.log("Images:",  data.images);  // slideshow
}
cURL
bash
curl "https://your-domain.vercel.app/api/tiktok?url=https%3A%2F%2Fwww.tiktok.com%2F%40user%2Fvideo%2F123"
Success Response (video)
json
{
  "status":   true,
  "type":     "video",
  "username": "creator123",
  "caption":  "My cool video #fyp",
  "avatar":   "https://p16-sign.tiktokcdn.com/...",
  "video":    "https://tikcdn.io/ssstik/...",
  "music":    "https://tikcdn.io/ssstik/m/...",
  "images":   []
}
Python
python
import requests, urllib.parse

url = "https://www.tiktok.com/@user/video/123456789"
api = f"https://your-domain.vercel.app/api/tiktok?url={urllib.parse.quote(url)}"
data = requests.get(api).json()

if data["status"]:
    print(f"Video: {data['video']}")
Error Responses

All errors return {"status": false, "error": "message"}

400
Bad Request
Missing ?url= param, or URL is not a valid TikTok link
502
Bad Gateway
Source returned an error — link may be private, expired, or region-locked
405
Method Not Allowed
Only GET requests are accepted
502
No Media Found
Video exists but no downloadable links were extracted