TikTok Video details API
type is videoDetail.
Video details (mode videoDetail)
type is videoDetail. It has all the video fields above and two more: isAiGenerated (true when labelled AI-generated) and repostCount. If the main data path is down the fields come from a second one: then authorRegion, downloadCount and isAiGenerated can be null.
The input that produced this run
Mode videoDetail. Parameters as sent, with what each one does.
| Parameter | Value | What it does |
|---|---|---|
mode | "videoDetail" | What to get: videos by keyword, hashtag, profile, sound, repost list, playlist, photo search or explore category; profiles by keyword or similar to a profile; sounds or places by keyword; the sounds a profile has made;... |
videos | ["7694335322922044703"] | Video IDs (7694335322922044703) or full video links (https://www.tiktok.com/@khaby.lame/video/7694335322922044703). Short vm.tiktok.com, vt.tiktok.com or tiktok.com/t/ share links work in videoDetail mode; for... |
maxResults | 10 | Maximum items for each keyword, hashtag, profile, sound, video or category (up to 1000). Video details, profile details and analytics return one record per input, so the limit rarely matters there. A search inside... |
39 fields in every videoDetail
From the first record of the run above. Identity fields of ordinary users are masked on this site.
| Field | Type | Example |
|---|---|---|
type | str | videoDetail |
videoId | str | 7694335322922044703 |
url | str | https://www.tiktok.com/@khaby.lame/video/7694335322922044703 |
description | str | Was the ball out, or was it just my imagination? 馃え#learnf... |
hashtags | list | ["learnfromkhaby", "comedy"] |
createdAt | str | 2026-10-08T16:31:16Z |
durationSeconds | float | 30.6 |
playCount | int | 7886487 |
likeCount | int | 736174 |
commentCount | int | 13344 |
shareCount | int | 21682 |
collectCount | int | 42616 |
downloadCount | int | 6571 |
authorHandle | str | <masked> |
authorName | str | <masked> |
authorFollowerCount | null | null |
authorVerified | str | <masked> |
authorId | str | <masked> |
authorSecUid | str | <masked> |
authorAvatarUrl | str | <masked> |
authorBio | str | <masked> |
authorRegion | str | <masked> |
musicTitle | str | original sound - khaby.lame |
musicAuthor | str | <masked> |
coverUrl | str | https://p19-common-sign.tiktokcdn-us.com/tos-useast8-p-00... |
videoUrl | str | https://v45.tiktokcdn-us.com/03556634fac5be09c7d17ea8bfbb... |
textLanguage | str | en |
isPinned | bool | false |
isSlideshow | bool | false |
mentions | list | [] |
width | int | 720 |
height | int | 1280 |
musicId | str | 7694335437137087262 |
musicOriginal | bool | false |
authorFollowingCount | null | null |
isPaidContent | bool | false |
isAd | bool | false |
isAiGenerated | bool | true |
repostCount | int | 0 |
A real run, 39 fields per record
Run on 2026-11-09 with input {"mode": "videoDetail", "videos": ["7694335322922044703"], "maxResults": 10}. Personal fields of ordinary users are masked here.
| musicTitle | textLanguage | description | createdAt | durationSeconds | playCount |
|---|---|---|---|---|---|
| original sound - khaby.lame | en | Was the ball out, or was it just my imagination? 馃え#learnf... | 2026-10-08T16:31:16Z | 30.6 | 7886487 |
All 39 fields in one record
typevideoDetailvideoId7694335322922044703urlhttps://www.tiktok.com/@khaby.lame/video/7694335322922044703descriptionWas the ball out, or was it just my imagination? 馃え#learnf...hashtagscreatedAt2026-10-08T16:31:16ZdurationSeconds30.6playCount7886487likeCount736174commentCount13344shareCount21682collectCount42616downloadCount6571authorHandleauthorNameauthorFollowerCountauthorVerifiedauthorIdauthorSecUidauthorAvatarUrlauthorBioauthorRegionmusicTitleoriginal sound - khaby.lamemusicAuthorcoverUrlhttps://p19-common-sign.tiktokcdn-us.com/tos-useast8-p-00...videoUrlhttps://v45.tiktokcdn-us.com/03556634fac5be09c7d17ea8bfbb...textLanguageenisPinnedisSlideshowmentionswidth720height1280musicId7694335437137087262musicOriginalauthorFollowingCountisPaidContentisAdisAiGeneratedrepostCount0
Good to know before you run it
- Short share links (vm.tiktok.com, vt.tiktok.com, tiktok.com/t/) work in
videoDetailmode. In every other mode use the full profile, video or tag link. Each short link costs what a video ID costs; one that no longer opens a video, points to a profile, or does not answer in time returns nothing for that link and the run goes on. If a short link brings nothing, open it in a browser and paste the full video link instead. - Video details, profile details and analytics: an unknown ID returns nothing and costs no per-item fee, and the next ID still runs.
What one videoDetail costs
Start fee (run-start) 路 $0.00005 路 For each keyword, hashtag, profile, sound or category you give it, and for each video (comments), profile (followers, following) or keyword (keywordSuggest) in those modes. In videoDetail, profile and videoAnalytics it is charged once per run, not per input. The first one is charged when the first request succeeds, even if that request returns nothing. Each further one is charged before that input's first request and is kept even if that input then fails or returns nothing.
Run this request yourself
The same input as above, three ways.