TikTok Trending Videos Scraper
Pricing
$0.65 / 1,000 trending videos
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é
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
8 days ago
Last modified
Categories
Share
📈 Find the TikTok videos trending in five countries
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:
- Check the videos trending in a market you choose with TikTok trending videos by country.
- Rank trending videos by engagement rate with TikTok engagement rate scraper.
- Collect videos from TikTok's For You feed in a market you choose with TikTok For You page scraper.
- Narrow a trending list to one category, such as Beauty & Care, with TikTok trending beauty videos scraper.
- Find the creators behind trending videos, with their handles and display names, using TikTok trending creators scraper.
- Check the sound each trending video uses, including whether it is original audio, with TikTok trending sounds scraper.
📊 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.
▶️ Run a trending video collection
- Pick the markets you want:
US,JP,VN,TH, orID. - Pick Find videos by to choose a trending list or one of TikTok's feeds.
- For a trending list, pick Rank videos by, Time window, and an optional Category.
- Set Maximum results to stop early. The form starts at 20. Leave it empty to return all available results until the source is exhausted.
- 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
| Field | Type | What it does |
|---|---|---|
resultType (Result type) | string | The kind of data to collect. videos is the only option. |
markets (Markets) | array of strings | Country 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) | string | Where 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) | string | Trending lists only. Sets the order: views, engagement-rate, or six-second-view-rate. Defaults to views. Feed runs ignore it. |
timeWindow (Time window) | string | Trending lists only. Sets the period the trends cover: 7-days or 30-days. Defaults to 7-days. |
category (Category) | string | Trending lists only. Optional. Keeps only videos in one category, such as Beauty & Care. Leave it empty to include every category. |
maxItems (Maximum results) | integer | Optional. 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
| Field | Type | What it does |
|---|---|---|
rank | integer | Position of the video in its market's trending list, using the Rank videos by setting. |
market | string | The country code where the run first found the video: US, JP, VN, TH, or ID. |
videoId | string | TikTok's ID for the video. Use it to match this row with other data about the same video. |
videoUrl | string | Link that opens the video on TikTok. |
caption | string | The caption the creator wrote for the video. |
publishedAt | string | When the video was posted on TikTok, as a date and time. |
coverImageUrl | string | Link to the video's cover image. |
creator.handle | string | The creator's TikTok username, without the @ sign. |
creator.displayName | string | The name the creator shows on their profile. |
creator.followerCount | integer | Number of followers the creator has. Left out when TikTok does not provide it. |
creator.isVerified | boolean | true when TikTok shows the creator as verified. |
views | integer | Views in the time window you chose, 7 or 30 days. |
lifetimeViews | integer | Total views since the video was posted, as TikTok reports them. |
organicViews | integer | Organic views in the time window you chose, as TikTok reports them. |
engagementRate | number | Engagement rate TikTok reports for the time window, as a percentage. For example, 5.2 means 5.2%. |
sixSecondViewRate | number | Six-second view rate TikTok reports for the time window, as a percentage. For example, 40 means 40%. |
durationSeconds | integer | Length of the video in seconds. |
likes | integer | Total likes TikTok reports on the video's page. |
comments | integer | Total comments TikTok reports on the video's page. |
shares | integer | Total shares TikTok reports on the video's page. |
saves | integer | Total saves (bookmarks) TikTok reports on the video's page. |
hashtags | array of strings | Hashtag names the video uses, without the # sign. Left out when TikTok does not provide them. |
sound.title | string | Name of the sound or song the video uses. |
sound.artistName | string | Artist or creator behind the sound, as TikTok shows it. |
sound.isOriginalAudio | boolean | true when TikTok marks the sound as original audio. |
isAd | boolean | true when TikTok labels the video as an ad. |
topComments | array of objects | The most-liked viewer comments on the video, where TikTok provides them. Only top comments are included, not full comment threads. |
topComments.text | string | Text of the comment. |
topComments.likes | integer | Number 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)
| Field | Type | What it does |
|---|---|---|
rank | integer | Position of the video in the results for its market. When Maximum results is set, feed videos are ordered by view count. |
market | string | The country code where the run first found the video: US, JP, VN, TH, or ID. |
videoId | string | TikTok's ID for the video. Use it to match this row with other data about the same video. |
videoUrl | string | Link that opens the video on TikTok. |
caption | string | The caption the creator wrote for the video. |
publishedAt | string | When the video was posted on TikTok, as a date and time. |
coverImageUrl | string | Link to the video's cover image. |
creator.handle | string | The creator's TikTok username, without the @ sign. |
creator.displayName | string | The name the creator shows on their profile. |
creator.followerCount | integer | Number of followers the creator has. Left out when TikTok does not provide it. |
creator.isVerified | boolean | true when TikTok shows the creator as verified. |
views | integer | The public view count TikTok shows on the video. |
durationSeconds | integer | Length of the video in seconds. |
likes | integer | Total likes TikTok reports on the video's page. |
comments | integer | Total comments TikTok reports on the video's page. |
shares | integer | Total shares TikTok reports on the video's page. |
saves | integer | Total saves (bookmarks) TikTok reports on the video's page. |
hashtags | array of strings | Hashtag names the video uses, without the # sign. Left out when TikTok does not provide them. |
sound.title | string | Name of the sound or song the video uses. |
sound.artistName | string | Artist or creator behind the sound, as TikTok shows it. |
sound.isOriginalAudio | boolean | true when TikTok marks the sound as original audio. |
isAd | boolean | true 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.
Why did my trending list run return fewer videos than my limit?
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.
Why do feed rows have fewer fields than trending list rows?
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.
Is it legal to scrape TikTok data?
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 🫡
🔗 Related Actors
- TikTok Creative Center Scraper for Top Ads: Compare ranked trending hashtags by market before you plan a post.
- TikTok Hashtag Search Scraper: Look up view and user counts for hashtags that match a keyword.
- TikTok Search Scraper: Search public TikTok videos or creator profiles by keyword, which this Actor does not do.
- TikTok Profile Videos API Scraper: Collect the public uploads from a creator you already know, which this Actor does not do.
- TikTok Music Posts Scraper: Find the posts that use a sound, to see how that sound is used across videos.
Made with ❤️ by Maxime Dupré