Open in ChatGPT
Coding with AI?
Connect your agent to our MCP and let it integrate any endpoint for you in one shot.

TikTok User Videos

Get a user’s videos, newest first, by username, numeric user ID, or profile URL. Returns the caption, link, publication date, engagement metrics (plays, likes, comments, shares, downloads, saves), playback and download URLs, cover images, the sound used, and author details for each video.

Endpoint

GET /v1/tiktok/user/videos

Price: $0.006 per page Free tier: 50 requests/month

Parameters

Provide exactly one of username, user_id, or url.

Parameter Required Description
username One required TikTok username, with or without leading @ (max 100 characters).
user_id One required Numeric TikTok user ID, as returned by Search Users or User Profile.
url One required TikTok profile URL, e.g. https://www.tiktok.com/@tiktok (max 500 characters).
pages No Number of pages to fetch, 1-1000 (default: 1). Each page returns up to 30 videos.
get_sentiment No Set to true to add AI emotion analysis (Plutchik’s Wheel) to each result. Adds +$0.001 per page to the cost. Returns emotion scores, dominant emotion, intensity, and polarity.

Response Fields

Field Type Description
videos array Array of the user’s videos, newest first
videos[].video_id string Numeric video ID
videos[].title string Video caption
videos[].url string Direct link to the video
videos[].date string Publication date and time
videos[].date_timestamp integer/null Publication date as a Unix timestamp
videos[].author string Author’s TikTok username
videos[].source string "TikTok"
videos[].domain string "tiktok.com"
videos[].snippet string Video caption text
videos[].region string 2-letter region code the video was posted from
videos[].play_count integer Number of plays/views
videos[].likes integer Number of likes
videos[].comments integer Number of comments
videos[].shares integer Number of shares
videos[].downloads integer Number of downloads
videos[].saves integer Number of saves (favorites)
videos[].duration integer Video duration in seconds (0 for photo posts)
videos[].is_ad boolean Whether the video is an ad
videos[].is_pinned boolean Whether the video is pinned to the author’s profile
videos[].author_name string Author’s display name
videos[].author_id string Author’s numeric user ID
videos[].author_avatar string Author’s avatar URL
videos[].author_url string Link to the author’s profile
videos[].cover string Video cover/thumbnail URL
videos[].dynamic_cover string Animated cover URL
videos[].origin_cover string Original cover frame URL
videos[].video_url string Watermark-free playback/download URL (temporary)
videos[].video_url_watermarked string Watermarked playback URL (temporary)
videos[].size integer File size of the watermark-free video in bytes
videos[].size_watermarked integer File size of the watermarked video in bytes
videos[].images string[] Image URLs for photo posts; empty for videos
videos[].music_id string ID of the sound used
videos[].music_title string Title of the sound used
videos[].music_author string Artist of the sound used
videos[].music_url string Playback URL of the sound
videos[].music_cover string Cover image of the sound
videos[].music_album string Album of the sound, or empty string
videos[].music_original boolean Whether the sound is an original sound
videos[].music_duration integer Sound duration in seconds
videos[].mentioned_user_ids string[] Numeric IDs of the users mentioned in the caption
videos[].sentiment object/null Emotion analysis results. Only present when get_sentiment=true. Returns null if analysis fails.
videos[].sentiment.emotions object Plutchik emotion scores (0-100) for: joy, trust, fear, surprise, sadness, disgust, anger, anticipation.
videos[].sentiment.dominant_emotion string The emotion with the highest score.
videos[].sentiment.emotional_intensity integer Overall emotional intensity on a scale of 0-10.
videos[].sentiment.polarity string Overall sentiment polarity: positive, negative, or neutral.
username string The user’s username
pages integer Number of pages returned
count integer Number of results returned

Example Request

cURL

curl "https://apidirect.io/v1/tiktok/user/videos?username=tiktok&pages=2" \
  -H "X-API-Key: YOUR_API_KEY"

Python

import requests

response = requests.get(
    "https://apidirect.io/v1/tiktok/user/videos",
    headers={"X-API-Key": "YOUR_API_KEY"},
    params={
        "username": "tiktok",
        "pages": 2
    }
)
print(response.json())

Example Response

{
  "videos": [
    {
      "video_id": "7694797676306615583",
      "title": "this summer gave us pop songs, glam routines, and a few main character moments",
      "url": "https://www.tiktok.com/@tiktok/video/7694797676306615583",
      "date": "2026-10-09 22:25:11",
      "date_timestamp": 1791584711,
      "author": "tiktok",
      "source": "TikTok",
      "domain": "tiktok.com",
      "snippet": "this summer gave us pop songs, glam routines, and a few main character moments",
      "region": "US",
      "play_count": 647770,
      "likes": 4597,
      "comments": 1640,
      "shares": 333,
      "downloads": 13,
      "saves": 436,
      "duration": 49,
      "is_ad": false,
      "is_pinned": false,
      "author_name": "TikTok",
      "author_id": "107955",
      "author_avatar": "https://p16-common-sign.tiktokcdn-eu.com/.../avatar.jpeg",
      "author_url": "https://www.tiktok.com/@tiktok",
      "cover": "https://p16-common-sign.tiktokcdn-eu.com/.../cover.jpeg",
      "dynamic_cover": "https://p16-common-sign.tiktokcdn-eu.com/.../dynamic_cover.webp",
      "origin_cover": "https://p16-common-sign.tiktokcdn-eu.com/.../origin_cover.jpeg",
      "video_url": "https://v19.tiktokcdn-eu.com/.../video.mp4",
      "video_url_watermarked": "https://v19.tiktokcdn-eu.com/.../video_wm.mp4",
      "size": 10246341,
      "size_watermarked": 9402354,
      "images": [],
      "music_id": "7694797733856660255",
      "music_title": "original sound - tiktok",
      "music_author": "TikTok",
      "music_url": "https://sf16-music.tiktokcdn-eu.com/.../music.mp3",
      "music_cover": "https://p16-common-sign.tiktokcdn-eu.com/.../music_cover.jpeg",
      "music_album": "",
      "music_original": true,
      "music_duration": 49,
      "mentioned_user_ids": [
        "161804240246620160"
      ]
    }
  ],
  "username": "tiktok",
  "pages": 2,
  "count": 60
}