TikTok hub

TikTok profile videos API

List public uploads for a TikTok handle as structured video rows — captions, stats, media URLs, and cursor pagination in the shared Social Fetch envelope.

GET /v1/tiktok/profiles/{handle}/videos

1 credit +2 credits per hosted file (hostMedia), max 24 files Max 49 credits Failed requests are free

About this endpoint

GET /v1/tiktok/profiles/{handle}/videos takes a TikTok handle (with or without a leading @) and returns data.videos plus data.page (hasMore, nextCursor). Each row carries id, caption, createdAt, url, thumbnailUrl, durationMs, pinned, isAd, engagement stats, and download-related media URLs. Optional query params: sortBy (latest or popular), cursor, userId (when you already have the numeric id), region, trim for a smaller payload, includePinned=false to leave out pinned videos, and hostMedia for SocialFetch-hosted copies.

thumbnailUrl and media.download* URLs are source-platform CDN links when TikTok exposes them. They can expire or fail outside the original retrieval context and are not SocialFetch-hosted assets. For SocialFetch-hosted copies on this list page, pass hostMedia=true (up to 24 assets / 90-day retention; +2 credits per successfully stored asset; prefers watermark-free video when present).

data.lookupStatus says what was found: found, private or not_found. Private and missing accounts always come back with no videos; found with an empty data.videos array means no uploads on this page (for example none in the selected sort window). Bill from meta.creditsCharged.

TikTok profile videos API FAQ

How do I list TikTok videos for a profile via API?

Call GET /v1/tiktok/profiles/{handle}/videos with your Social Fetch API key (x-api-key). Pass the TikTok username as the path parameter, with or without a leading @. Read data.videos and data.page in the JSON response.

How much does the TikTok profile videos API cost?

1 credit per successful list page by default. With hostMedia, +2 credits per hosted asset (up to 24 assets, 49 credits max). Always bill from meta.creditsCharged on the response.

What does each TikTok profile video row include?

id, caption, createdAt, url, thumbnailUrl, durationMs, pinned, isAd, stats (views, likes, comments, shares, saves), and media download URLs. Optional details may carry extra TikTok-native fields that are not duplicated at the top level.

How does pagination work on TikTok profile videos?

When data.page.hasMore is true, pass data.page.nextCursor as the cursor query param on the next request. Keep the same handle and filters across pages.

Can I sort TikTok profile videos by latest or popular?

Yes. Pass optional sortBy=latest or sortBy=popular. When you omit sortBy, the feed uses the default ordering for that request.

Why is data.videos empty when the TikTok handle looks valid?

Check data.lookupStatus. private means the account is private, so TikTok shows no videos; not_found means there is no such account. With found, an empty array means the account has no videos on this page, for example none in the selected sort window.

Do I need TikTok OAuth to list a profile's videos?

No. You authenticate to Social Fetch with an API key. The route reads public profile feed data; it does not act on behalf of a logged-in TikTok user.

How is this different from GET /v1/tiktok/videos (single video)?

This route pages a creator's feed by handle. Single-video detail is GET /v1/tiktok/videos with a video URL. Use the list route to discover ids, then the single-video or transcript routes when you need one clip in depth.