TikTok Channel Videos API
The TikTok Channel Videos API returns a paginated list of recent videos posted to a TikTok channel, including engagement stats, thumbnails, and metadata for each video.
Endpoint
https://api.socialkit.dev/tiktok/channel-videosExample Request
GET https://api.socialkit.dev/tiktok/channel-videos?access_key=<your-access-key>&url=https://www.tiktok.com/@khaby.lame&limit=30Response
{
"success": true,
"data": {
"type": "tiktok_channel_videos",
"url": "https://www.tiktok.com/@khaby.lame",
"channelName": "khaby.lame",
"results": [
{
"videoId": "7312345678901234567",
"description": "Simplicity is the key 🔑 #learnfromkhaby #comedy",
"url": "https://www.tiktok.com/@khaby.lame/video/7312345678901234567",
"thumbnail": "https://p16-sign.tiktokcdn-us.com/...",
"duration": 14,
"createTime": "2024-01-15T12:34:56.000Z",
"views": 12500000,
"likes": 1430000,
"comments": 8200,
"shares": 45000,
"collects": 62000
}
],
"hasMore": true,
"cursor": "1705318496000"
}
}Parameters
url string Required
The TikTok profile URL of the channel whose videos you want to retrieve.
access_key string Required
Your API access key. Can be provided via the access_key query parameter, x-access-key header, or request body.
limit number Optional Defaults to 30, max 100
Maximum number of videos to return.
cursor string Optional
Pagination cursor returned in a previous response. Pass it to fetch the next page of results.
cache boolean Optional Defaults to false
Cache the response for faster subsequent requests.
cache_ttl number Optional Defaults to 2592000
Cache TTL in seconds. Maximum 2592000 (1 month), minimum 3600 (1 hour).
Response Fields
Top-level:
channelName: Channel username (without @ prefix)url: The profile URL that was queriedhasMore: Whether more videos are available beyond this pagecursor: Pass this value ascursorin your next request to get the next page.nullwhen there are no more results.
Each item in results:
videoId: Unique TikTok video IDdescription: Video caption (truncated to 300 characters)url: Direct link to the video on TikTokthumbnail: Cover image URL (may expire)duration: Video length in secondscreateTime: ISO 8601 publish timestampviews: Total play countlikes: Total like countcomments: Total comment countshares: Total share countcollects: Total saves/bookmarks count
Pagination
Use hasMore and cursor together to paginate through all of a channel’s videos:
let cursor = null;
let allVideos = [];
do {
const res = await fetch(
`https://api.socialkit.dev/tiktok/channel-videos?access_key=YOUR_KEY` +
`&url=https://www.tiktok.com/@username&limit=30` +
(cursor ? `&cursor=${cursor}` : '')
).then(r => r.json());
allVideos.push(...res.data.results);
cursor = res.data.hasMore ? res.data.cursor : null;
} while (cursor);Use Cases
- Content Auditing: Review all recent posts from a creator or brand account
- Feed Monitoring: Track new uploads from channels you follow or compete with
- Engagement Analysis: Identify top-performing videos by views, likes, or saves
- Influencer Research: Evaluate posting frequency and content quality before a partnership
- Analytics Dashboards: Power creator analytics tools with real-time video data
- Trend Detection: Spot viral content early by monitoring high-view videos from key accounts
Notes
- Results are ordered by recency (newest first)
- Thumbnail URLs are temporary CDN links and may expire
collects(saves/bookmarks) may be 0 for older videos before TikTok tracked this metric- This endpoint uses a real browser to load the channel page, so response time is typically 5–15 seconds
- Private accounts return an error; only public profiles are supported