TikTok Trending Videos Scraper avatar

TikTok Trending Videos Scraper

Pricing

$0.65 / 1,000 trending videos

Go to Apify Store
TikTok Trending Videos Scraper

TikTok Trending Videos Scraper

Collect TikTok videos trending in the US, Japan, Vietnam, Thailand, or Indonesia. Rank the trending list by views, engagement rate, or six-second view rate for the last 7 or 30 days. Each video includes its creator, sound, and link, and no TikTok login is needed.

Pricing

$0.65 / 1,000 trending videos

Rating

0.0

(0)

Developer

Maxime Dupré

Maxime Dupré

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

8 days ago

Last modified

Share

This TikTok trending scraper helps marketers, content creators, and social media researchers see which videos are trending on TikTok. Pick one or more markets. Each run saves the videos to an Apify dataset with their views, creators, sounds, and links, so you can compare what is popular across markets.

Use it to:

📊 What each video row includes

Each row is one TikTok video. Rows can include:

  • The rank, market, video link, caption, cover image link, and post date.
  • Views, likes, comments, shares, and saves.
  • The creator's handle, display name, follower count, and verified status.
  • The sound the video uses, and its hashtags.
  • On trending lists: lifetime views (since the video was posted), plus organic views, engagement rate, and six-second view rate for the time window you chose. The most-liked viewer comments also appear when TikTok provides them.

TikTok does not show every detail for every video, so some fields are left out of a row.

  1. Pick the markets you want: US, JP, VN, TH, or ID.
  2. Pick Find videos by to choose a trending list or one of TikTok's feeds.
  3. For a trending list, pick Rank videos by, Time window, and an optional Category.
  4. Set Maximum results to stop early. The form starts at 20. Leave it empty to return all available results until the source is exhausted.
  5. Start the run, then open the results from the run's Output tab.

⚙️ Input

The form has seven fields. Only Result type is required, and it is set to videos. The other fields have defaults or are optional.

Input fields

FieldTypeWhat it does
resultType (Result type)stringThe kind of data to collect. videos is the only option.
markets (Markets)array of stringsCountry codes to collect from: US, JP, VN, TH, or ID. Add more codes to collect from several markets in one run. A code outside this list stops the run from starting. Defaults to US.
discoveryMethod (Find videos by)stringWhere the videos come from. trending-list uses the videos TikTok ranks in each market. for-you-feed uses TikTok's For You feed. explore-feed uses TikTok's Explore trending feed. Defaults to trending-list.
rankBy (Rank videos by)stringTrending lists only. Sets the order: views, engagement-rate, or six-second-view-rate. Defaults to views. Feed runs ignore it.
timeWindow (Time window)stringTrending lists only. Sets the period the trends cover: 7-days or 30-days. Defaults to 7-days.
category (Category)stringTrending lists only. Optional. Keeps only videos in one category, such as Beauty & Care. Leave it empty to include every category.
maxItems (Maximum results)integerOptional. Stops the run after this many results. With several markets, the limit counts results from all of them together. The form starts at 20. Leave it empty to return all available results until the source is exhausted. On a trending list, TikTok shows only a few top videos for each market, sort order, and time window, so a higher limit may return fewer videos than you ask for.

Example input

This is the default form input, with a limit of 20 results.

{
"resultType": "videos",
"markets": [
"US"
],
"discoveryMethod": "trending-list",
"rankBy": "views",
"timeWindow": "7-days",
"maxItems": 20
}

🧾 Output

Each run saves one row for each video in a dataset. A video appears once per run, in the first market where the run found it. Later markets do not add another row.

The rows come in two shapes, depending on Find videos by. Trending list rows include the trend numbers, and top comments when TikTok provides them. Feed rows, from TikTok's feeds, leave the trend numbers and top comments out.

The Output tab shows an overview table with the rank, market, caption, views, and video link.

Trending list rows

FieldTypeWhat it does
rankintegerPosition of the video in its market's trending list, using the Rank videos by setting.
marketstringThe country code where the run first found the video: US, JP, VN, TH, or ID.
videoIdstringTikTok's ID for the video. Use it to match this row with other data about the same video.
videoUrlstringLink that opens the video on TikTok.
captionstringThe caption the creator wrote for the video.
publishedAtstringWhen the video was posted on TikTok, as a date and time.
coverImageUrlstringLink to the video's cover image.
creator.handlestringThe creator's TikTok username, without the @ sign.
creator.displayNamestringThe name the creator shows on their profile.
creator.followerCountintegerNumber of followers the creator has. Left out when TikTok does not provide it.
creator.isVerifiedbooleantrue when TikTok shows the creator as verified.
viewsintegerViews in the time window you chose, 7 or 30 days.
lifetimeViewsintegerTotal views since the video was posted, as TikTok reports them.
organicViewsintegerOrganic views in the time window you chose, as TikTok reports them.
engagementRatenumberEngagement rate TikTok reports for the time window, as a percentage. For example, 5.2 means 5.2%.
sixSecondViewRatenumberSix-second view rate TikTok reports for the time window, as a percentage. For example, 40 means 40%.
durationSecondsintegerLength of the video in seconds.
likesintegerTotal likes TikTok reports on the video's page.
commentsintegerTotal comments TikTok reports on the video's page.
sharesintegerTotal shares TikTok reports on the video's page.
savesintegerTotal saves (bookmarks) TikTok reports on the video's page.
hashtagsarray of stringsHashtag names the video uses, without the # sign. Left out when TikTok does not provide them.
sound.titlestringName of the sound or song the video uses.
sound.artistNamestringArtist or creator behind the sound, as TikTok shows it.
sound.isOriginalAudiobooleantrue when TikTok marks the sound as original audio.
isAdbooleantrue when TikTok labels the video as an ad.
topCommentsarray of objectsThe most-liked viewer comments on the video, where TikTok provides them. Only top comments are included, not full comment threads.
topComments.textstringText of the comment.
topComments.likesintegerNumber of likes on the comment.

Example trending list row

This is a real row from a US trending list run.

{
"rank": 1,
"market": "US",
"videoId": "7678774988710661407",
"videoUrl": "https://www.tiktok.com/@guacamolly.com/video/7678774988710661407",
"caption": "#mioPartner raise ur hand if ur bad at drinking water 🙋‍♀️🌟 I would be lost without my @mio to help me stay hydrated! lmk ya fav flavaaaaa",
"publishedAt": "2026-08-27T18:09:03.000Z",
"coverImageUrl": "https://p16-common-sign.tiktokcdn-us.com/tos-useast8-p-0068-tx2/owEOAfzINLEAfIPAIVIG1TeEQA7NApkSIqg9dj~tplv-tiktokx-origin.image?dr=9643&nonce=85488&refresh_token=da22ec2529cd0df0a5be9176a3fe1359&x-expires=1792760400&x-signature=hssoqSaBlwf9sDgZtpEh0kNtjuI%3D&idc=useast5&ps=13740610&shcp=89439a58&shp=c6b69ba0&t=4d5b0474",
"creator": {
"handle": "guacamolly.com",
"displayName": "MOLLY FAYE",
"followerCount": 1333125,
"isVerified": false
},
"views": 14440580,
"lifetimeViews": 84915901,
"organicViews": 997560,
"engagementRate": 0.037,
"sixSecondViewRate": 0.977,
"durationSeconds": 28,
"likes": 37900,
"comments": 117,
"shares": 1003,
"saves": 2360,
"hashtags": [
"miopartner"
],
"sound": {
"title": "original sound",
"artistName": "MOLLY FAYE",
"isOriginalAudio": true
},
"isAd": true,
"topComments": [
{
"text": "girl i thought it was a vape💀",
"likes": 790
},
{
"text": "drink WATER, that is all",
"likes": 93
},
{
"text": "I ain’t ever seen that flavor mio before",
"likes": 39
},
{
"text": "Yesss !!!!!! I love mio ✨✨",
"likes": 20
},
{
"text": "My dumb ass thought you were shaking a vape 😭",
"likes": 15
},
{
"text": "mio!!! omg yes my roots fr",
"likes": 13
},
{
"text": "muscle memory",
"likes": 11
},
{
"text": "BIRTHDAY CAKE WATER",
"likes": 7
},
{
"text": "Northeastern omg",
"likes": 6
},
{
"text": "Mio is treated like a biohazard when getting thrown out byw",
"likes": 6
}
]
}

Feed rows (TikTok feeds)

FieldTypeWhat it does
rankintegerPosition of the video in the results for its market. When Maximum results is set, feed videos are ordered by view count.
marketstringThe country code where the run first found the video: US, JP, VN, TH, or ID.
videoIdstringTikTok's ID for the video. Use it to match this row with other data about the same video.
videoUrlstringLink that opens the video on TikTok.
captionstringThe caption the creator wrote for the video.
publishedAtstringWhen the video was posted on TikTok, as a date and time.
coverImageUrlstringLink to the video's cover image.
creator.handlestringThe creator's TikTok username, without the @ sign.
creator.displayNamestringThe name the creator shows on their profile.
creator.followerCountintegerNumber of followers the creator has. Left out when TikTok does not provide it.
creator.isVerifiedbooleantrue when TikTok shows the creator as verified.
viewsintegerThe public view count TikTok shows on the video.
durationSecondsintegerLength of the video in seconds.
likesintegerTotal likes TikTok reports on the video's page.
commentsintegerTotal comments TikTok reports on the video's page.
sharesintegerTotal shares TikTok reports on the video's page.
savesintegerTotal saves (bookmarks) TikTok reports on the video's page.
hashtagsarray of stringsHashtag names the video uses, without the # sign. Left out when TikTok does not provide them.
sound.titlestringName of the sound or song the video uses.
sound.artistNamestringArtist or creator behind the sound, as TikTok shows it.
sound.isOriginalAudiobooleantrue when TikTok marks the sound as original audio.
isAdbooleantrue when TikTok labels the video as an ad. We have not yet verified this label for feed rows.

Feed rows do not include the trend numbers or top comments.

Example feed row

This is a real row from a US For You feed run.

{
"rank": 3,
"market": "US",
"videoId": "7680966021896768799",
"videoUrl": "https://www.tiktok.com/@xincam8/video/7680966021896768799",
"caption": "#Cops #Police #Bodycam #Copsoftiktok #Viral",
"publishedAt": "2026-09-02T15:51:35.000Z",
"coverImageUrl": "https://p16-common-sign.tiktokcdn-us.com/tos-useast8-p-0068-tx2/o4YCvEfEvAmgqlWVQQBVRIAlaaIZFZEeD3aERY~tplv-tiktokx-origin.image?dr=9636&x-expires=1792328400&x-signature=VPQAM%2FdBGDPEAFCeq6uec2uYTbM%3D&t=4d5b0474&ps=13740610&shp=81f88b70&shcp=43f4a2f9&idc=useast5",
"creator": {
"handle": "xincam8",
"displayName": "Anime Queen 🫅",
"followerCount": 58900,
"isVerified": false
},
"views": 43000000,
"durationSeconds": 79,
"likes": 1900000,
"comments": 60300,
"shares": 1200000,
"saves": 286300,
"hashtags": [
"cops",
"police",
"bodycam",
"copsoftiktok",
"viral"
],
"sound": {
"title": "âm thanh gốc",
"artistName": "Anime Queen 🫅",
"isOriginalAudio": true
},
"isAd": false
}

💳 Pricing

This Actor uses pay per event pricing. You pay $0.00065 for each TikTok video saved to the dataset. Set Maximum results to limit how many videos a run saves, and so how many charges it makes.

🔌 Integrations

Results are saved to an Apify dataset. You can view them in Apify Console, download them as JSON, CSV, or Excel, or read them through the Apify API.

Watch this video on YouTube:

❓ FAQ

Which countries can I collect videos from?

The Actor covers five markets: the US, Japan, Vietnam, Thailand, and Indonesia. Use the codes US, JP, VN, TH, or ID. Any other code stops the run from starting.

On a trending list, TikTok shows only a few top videos for each market, sort order, and time window. The run stops at what TikTok shows, so it can return fewer videos than your limit.

The trend numbers (lifetime views, organic views, engagement rate, and six-second view rate) and the top comments come only from trending lists. Feed rows do not include them.

Why are some fields missing from my rows?

TikTok does not show every detail for every video. A field is left out of a row when TikTok does not provide it. Examples are follower count, hashtags, and top comments.

Does the Actor rank hashtags, sounds, or creators?

No. Each row shows the sound for that video and its hashtags when it has them. The Actor does not make separate rankings of hashtags, sounds, or creators.

Can it search TikTok by keyword or collect one creator's videos?

No. It collects trending lists and feeds by market. The Related Actors section lists Actors for keyword search and creator video collection.

Does it download the videos?

No. It gives you a link to each video's page on TikTok and a link to its cover image. It does not store video files.

Does it keep history or compare runs?

No. Each run is a snapshot of what the Actor found in that run.

Do I need a TikTok login?

No. The Actor runs without any TikTok login.

Can I use the Actor through an API?

Yes. You can start runs and read results through the Apify API, as you can with other Apify Actors.

The Actor collects public data without logging in. Before you use the data, check TikTok's terms of service and the laws that apply to you.

📝 Changelog

v0.0 (16-10-2026)

  • Initial release.

🆘 Support

For issues, questions, or feature requests, file a ticket and I'll fix or implement it in less than 24h 🫡

Made with ❤️ by Maxime Dupré