Body parameters
- type
string- required
true- description
- YouTube: @handle, /channel/UC… URL, or UC… ID.
- TikTok: profile URL (tiktok.com/@user).
- Instagram: profile URL (instagram.com/user/).
- type
string- required
false- default
"videos"- values
videosshortsliveplaylistspodcasts- scope
- YouTube channels only
- description
- Which tab to list:
videos(the default),shorts, orlive(streams: past broadcasts and upcoming ones). playlistsandpodcastslist the channel'splaylistsinstead of itsvideos:data.kindisplaylist_list, and each row's url is accepted by the playlist endpoint.- A tab the channel does not have (
liveon a channel that has never streamed, say) answers 200 with an empty list, which is free, and a notice such as"This channel has no Live tab."
- Which tab to list:
- type
string- required
false- default
"newest"- values
newestpopularoldest- scope
- YouTube channels only
- description
popularis YouTube's own Popular order, most viewed first, and it leaves out videos with no views.- Not accepted with the playlists and podcasts tabs.
- type
string (1-200 characters)- required
false- scope
- YouTube channels only
- description
- Search inside this channel: the page holds its videos that match, rather than its latest uploads.
- Leave
tabandsortunset.
- type
integer (1–50)- required
false- default
5- description
Max items to return per page: videos, or the playlists or channels some listing options return.
- type
string- required
false- description
- Opaque pagination cursor from a previous response's
next_cursor(max 256 characters). - Omit for the first page.
- Cursors are scoped to the listing that issued them, so send the same platform and listing options with each page.
- Offset-based sources cannot page past the first 2000 items.
- Opaque pagination cursor from a previous response's
- type
string- required
false- description
- Newest video ID you have already seen.
- The response is trimmed to videos newer than it.
- A poll with
since_video_idis a check for new uploads and costs 1 credit whether or not it finds any (a plain listing that comes back empty stays free). - It needs newest-first videos: on a YouTube channel, the videos, shorts or live
tabwith the defaultsortand noquery.
{
"ok": true,
"request_id": "req_…",
"data": {
"kind": "video_list",
"source": "channel_videos",
"platform": "tiktok",
"videos": [
{
"videoId": "7690953765293231373",
"url": "https://www.tiktok.com/@khanacademy/video/7690953765293231373",
"title": "Lower Car Payment? Check the Loan First! The best deal isn’t always the one with the lowest monthly payment. Learn more in Khan Academy’s Monthly payment versus total cost lesson! Link in bio",
"duration": 35,
"channel": "@khanacademy",
"publishedAt": "2026-09-29T13:49:18Z",
"stats": {
"plays": 539
}
},
{
"videoId": "7687991816741768462",
"url": "https://www.tiktok.com/@khanacademy/video/7687991816741768462",
"title": "Learn more in Khan Academy’s Beyond the car payment lesson in our FREE Financial Literacy course! Link in bio.",
"duration": 42,
"channel": "@khanacademy",
"publishedAt": "2026-09-21T14:15:17Z",
"stats": {
"plays": 2519
}
}
],
"next_cursor": "eyJvIjoxMH0"
},
"usage": {
"credits_spent": 1,
"balance": 656,
"bytes": 0
}
}Every TikTok endpoint
Frequently asked questions
How do I list a TikTok creator's videos?
POST the profile URL (tiktok.com/@user) as channel with a limit. The platform is read from the URL. Keep sending data.next_cursor back as cursor for older videos until it is null.
Does this need a TikTok developer account?
No. It is TranscriptFetch's own endpoint, called with your TranscriptFetch API key. One page costs 1 credit.
How do I get notified of a creator's new TikToks?
Poll with since_video_id set to the newest videoId you have seen: only newer videos come back, for 1 credit a poll. Or create a monitor on the profile and receive each new video, optionally with its transcript, by webhook.
Can I sort or search within a TikTok profile?
No. sort, query and tab are YouTube channel options and are refused on TikTok. Videos come back newest first; filter or sort the rows on your side.