TikTok collection videos API
List public TikTok posts in a collection or playlist URL, with cursor pagination in the shared Social Fetch envelope.
GET /v1/tiktok/collections/videos1 credit per successful request.
About this endpoint
`GET /v1/tiktok/collections/videos` takes a public TikTok collection URL (TikTok also calls this a playlist), for example `https://www.tiktok.com/@kibblemaster808/collection/Want-to-go-7665668414573546258`. The response returns `data.collectionId`, a `data.videos` array, and `data.page` (`hasMore`, `nextCursor`). Each video row matches the profile-feed shape: id, caption, createdAt, url, thumbnailUrl, durationMs, pinned, isAd, engagement stats, and media download URLs. Pass optional `cursor` with the same `url` when `data.page.hasMore` is true.
This route has no `lookupStatus`. An empty `data.videos` array can mean no public videos in the collection, or other cases. Bill from `meta.creditsCharged`. For a creator's own uploads use `GET /v1/tiktok/profiles/{handle}/videos`. For posts that reuse a sound use `GET /v1/tiktok/music/{clipId}/videos`. For a single post by URL use `GET /v1/tiktok/videos`.
TikTok collection videos API FAQ
How do I list TikTok videos in a collection via API?
Call `GET /v1/tiktok/collections/videos` with your Social Fetch API key (`x-api-key`) and the public collection URL as `url`. Read `data.videos` and `data.page` in the JSON response. See the API docs for parameters and examples.
What URL should I pass for a TikTok collection?
A public collection (playlist) URL that includes the creator handle, slug, and numeric id, such as `https://www.tiktok.com/@handle/collection/Name-123456789`. A bare numeric id is not enough.
How much does the TikTok collection videos endpoint cost?
Pricing is documented on the operation in the API registry (shown on this page). Confirm on every response with meta.creditsCharged — that field is the billing source of truth. Each paginated page is a separate billed request.
How does pagination work on TikTok collection videos?
When `data.page.hasMore` is true, pass `data.page.nextCursor` as the `cursor` query param on the next request. Keep the same collection `url` across pages.
What does each collection video row include?
The same shape as profile feed rows: 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.
Why is data.videos empty for a collection URL that looks valid?
This route has no `lookupStatus`. An empty array can mean no public videos in this collection, or other cases. Do not treat an empty list as a hard "collection not found" signal without additional checks.
How is this different from profile videos, music videos, or keyword search?
This route pages posts saved in one public collection. `GET /v1/tiktok/profiles/{handle}/videos` pages a creator's feed by handle. `GET /v1/tiktok/music/{clipId}/videos` pages posts that reuse a sound. `GET /v1/tiktok/search` is free-text keyword discovery. Use collection videos when the playlist URL is the join key.
Do I need TikTok OAuth to list videos in a collection?
No. You authenticate to Social Fetch with an API key. The route reads public collection video data; it does not act on behalf of a logged-in TikTok user.
Other TikTok endpoints
- ProfileGET /v1/tiktok/profiles/{handle}
- Profile videosGET /v1/tiktok/profiles/{handle}/videos
- Profile followersGET /v1/tiktok/profiles/{handle}/followers
- Profile followingGET /v1/tiktok/profiles/{handle}/following
- Profile regionGET /v1/tiktok/profiles/{handle}/region
- Profile audienceGET /v1/tiktok/profiles/{handle}/audience
- Live streamGET /v1/tiktok/profiles/{handle}/live
- Profile engagementGET /v1/tiktok/profiles/{handle}/engagement