TikTok Trending Videos Scraper: Hashtag Category Stats
Pricing
Pay per usage
TikTok Trending Videos Scraper: Hashtag Category Stats
Tiktok Trending Videos Scraper extracts real-time trending videos from TikTok. Capture views, likes, shares, captions, hashtags, creators, and metadata. Ideal for research, content planning, trend analysis, and workflows needing structured TikTok trending video insights.
Pricing
Pay per usage
Rating
5.0
(1)
Developer
API Empire
Maintained by CommunityActor stats
2
Bookmarked
31
Total users
3
Monthly active users
6 days ago
Last modified
Categories
Share
TikTok Scraper — Extract Videos, Industry & Engagement Data as JSON
TikTok Trending Videos Scraper: Hashtag Category Stats pulls trending TikTok videos and returns each one already classified into a niche/industry category, flagged for sponsored (isAd) status, and scored with a computed engagement rate, rank, and percentile within the current run. Every response returns typed, normalized JSON — no HTML, no selectors, no manual parsing. Feed it a country to discover trends or paste direct video URLs, and you get category-labeled, engagement-ranked video data ready for a spreadsheet, a database, or an AI pipeline.
What is TikTok Trending Videos Scraper: Hashtag Category Stats?
TikTok Trending Videos Scraper: Hashtag Category Stats is an Apify Actor that scrapes public TikTok video data and enriches every video with a locally computed niche/industry classification, a real isAd/sponsored flag, and an engagement rate with rank and percentile against the rest of the current run's result set. It runs against TikTok's public trending-discovery surface and public video detail pages, and it also accepts direct video URLs as input so results don't have to depend on TikTok's own trending list at all. No TikTok account or login is required to run it.
Key capabilities:
- Classify trending videos into a 20-category niche/industry taxonomy (Apparel & Accessories, Beauty & Personal Care, Food & Beverage, Tech & Electronics, and more)
- Flag genuine sponsored/Spark Ad videos via TikTok's own
isAdfield - Compute
engagementRate,rankInResultSet, andpercentileRankfor every video in the result set - Add optional niche/industry-average engagement benchmarks (
nicheBenchmark) - Export as JSON or CSV — no proxy management required by default
What data does TikTok Trending Videos Scraper: Hashtag Category Stats collect?
The Actor returns one row per video, combining raw TikTok video data with locally derived classification and engagement analytics.
| Data Type | Key Fields | JSON Field Names |
|---|---|---|
| Trending video data | Title, hashtags, cover image, duration, author handle, publish date | title, hashtags, cover, duration, authorHandle, publishedAt |
| Industry / category classification | Local niche label, classification method, per-industry benchmark | industryCategory, industryClassificationMethod, nicheBenchmark |
| Engagement & ranking stats | Views/likes/comments/shares, computed engagement rate, run rank and percentile, sponsored flag | views, likes, comments, shares, engagementRate, rankInResultSet, percentileRank, isAd |
Need more TikTok data?
If you need hashtag-level rankings instead of video-level data, API-Empire also publishes TikTok Trending Hashtags Scraper By Country And Industry, which returns Top 100 trending-hashtag rankings and per-hashtag analytics across multiple countries and industries in one run. For an ads-and-creator angle, Trending Videos Insights With Industry Category Breakdown returns TikTok Top Ads filtered by content niche alongside a standalone trending-creator leaderboard — note that despite its name, that Actor is an ads/creator dataset, not a general video-trends dataset.
How does TikTok Trending Videos Scraper: Hashtag Category Stats differ from the official TikTok API?
TikTok's own Research API and Developer API are built for a small set of approved use cases — neither offers a self-serve "give me trending videos classified by industry" query. TikTok Trending Videos Scraper: Hashtag Category Stats runs immediately against TikTok's public pages and adds the industry classification, sponsored flag, and engagement analytics that neither TikTok API exposes.
| Feature | TikTok Research/Developer API | TikTok Trending Videos Scraper: Hashtag Category Stats |
|---|---|---|
| Access requirement | Requires an approved research or developer application before any access | Runs immediately on Apify, no TikTok account or approval needed |
| Eligible users | Restricted to qualifying academic researchers / approved developers | Open to any Apify user |
| Trending-by-industry classification | Not a supported query type | Every video gets a local niche/industry label automatically |
| Direct video-URL lookup | Not designed for ad hoc single-URL lookups | Native videoUrls input mode — paste any public video URL |
| Engagement analytics | Raw counts only; no derived rate, rank, or percentile | Computed engagementRate, rankInResultSet, percentileRank, and niche benchmarks |
| Output consistency | Scoped to whatever query types are approved | One consistent JSON schema regardless of discovery vs. direct-URL mode |
| Setup time | Application and review before first request | Start a run with default input immediately |
The official TikTok API path makes sense if you already have an approved research account and need TikTok's own data access under its terms. For teams that need industry-classified, engagement-ranked video data today without an approval process, TikTok Trending Videos Scraper: Hashtag Category Stats is the faster path.
Why do developers and teams scrape TikTok?
For marketers and brand teams
Marketers use the local industry classification and the real isAd flag to answer two questions at once: which niches are trending, and how much of that trend is organic versus paid. Because targetIndustries filters to a chosen niche and onlyPromotedVideos isolates sponsored content, a brand team can pull only Beauty & Personal Care videos, drop every Spark Ad, and sort the rest by engagementRate to find organically over-performing creators worth a partnership pitch — all from one run, without manually tagging a single row by hand afterward.
For researchers and analysts
Analysts studying which content categories perform best on TikTok use engagementRate, rankInResultSet, and percentileRank to compare videos on a normalized basis instead of raw view counts, which skew heavily toward a handful of viral outliers. The optional nicheBenchmark object adds an industry-average engagementRate for the same run, so a researcher can see at a glance whether a given video is above or below its own niche's typical performance. Because industryClassificationMethod is always reported as local_heuristic, researchers know exactly which fields are TikTok-sourced and which are derived, keeping the methodology transparent for citation.
For AI engineers and agent builders
Because every field — industryCategory, engagementRate, isAd, hashtags — is typed JSON with stable key names, an agent can pull a batch of videos for a niche, reason over engagementRate and nicheBenchmark directly, and recommend which trending format to replicate, without a parsing step between the scrape and the LLM call. The direct videoUrls input mode also lets an agent hand off a list of URLs it discovered elsewhere and get back the same classifier and analytics fields on demand, useful as a tool call inside a larger content-research or competitive-monitoring agent loop.
For developers building data products
Developers building trend dashboards or content-research tools get a stable dataset schema instead of a page to parse, with the same 28 fields returned whether a video came from country discovery or a direct URL, tagged by sourceMode so the two paths never get confused. Because the Actor also accepts the base actor's original input keys (countryCode, sortBy, period, maxItems, includeDetailedVideoData) as fallbacks, an integration built against a simpler TikTok video scraper can point at this Actor without a rewrite. Scheduled runs against a fixed videoUrls list build a time series for tracking how a niche's engagement rate moves.
How to scrape TikTok (step by step)
- Open TikTok Trending Videos Scraper: Hashtag Category Stats on its Apify Store listing (
api-empire/tiktok-trending-videos-scraper-hashtag-category-stats) and start a new run. - Provide input — nothing is required, but for reliable results today, paste one or more TikTok video URLs into
videoUrls(recommended); alternatively setdiscoveryCountry,trendRankBy, andlookbackPeriodto use the country-based discovery list. - Set niche/performance filters —
targetIndustries,minEngagementRate,onlyPromotedVideos, andincludeNicheBenchmarksare all applied after the videos are fetched. - Start the run.
- Download results as JSON or CSV, or read them via the Apify API/dataset endpoint.
What to do when TikTok changes its structure
This Actor already adapted once: TikTok deprecated its trending-discovery endpoint, so it now reads public video detail pages' embedded itemStruct JSON, with a Playwright fallback for empty responses. The Actor stays maintained, and its output schema is designed to remain stable for integrations even when the fetch mechanism changes. No turnaround time is guaranteed for any given break.
⬇️ Input
None of the 11 input parameters are required.
| Parameter | Required | Type | Description | Example Value |
|---|---|---|---|---|
discoveryCountry | No | String | Country to pull the trending list from (fallback key: countryCode). Only used when videoUrls is empty. | "US" |
trendRankBy | No | String | Sort metric for the discovery list: Views (vv), Likes (like), Comments (comment), or Shares (repost) (fallback key: sortBy). | "vv" |
lookbackPeriod | No | String | Trending window to scrape: last 7 or 30 days (fallback key: period). | "7" |
maxResults | No | Integer | Maximum number of videos to return, from discovery or from videoUrls (fallback key: maxItems). Minimum 1, maximum 1000. | 10 |
includeEngagementStats | No | Boolean | In discovery mode, fetch each video's detail page for likes/comments/bookmarks/shares/videoUrl (fallback key: includeDetailedVideoData). Always fetched automatically in direct video-URL mode. | false |
videoUrls | No | Array | Bypass country discovery and run the classifier + engagement analytics directly against these TikTok video URLs. Recommended — TikTok's discovery endpoint is currently deprecated server-side. | ["https://www.tiktok.com/@mrbeast/video/7558512477600861471"] |
targetIndustries | No | Array | Only keep videos whose locally classified industry matches one of the selected categories. Empty = keep all industries. | ["Beauty & Personal Care"] |
minEngagementRate | No | Number | Only keep videos with a computed engagementRate at or above this value. 0 = no filter. | 0 |
onlyPromotedVideos | No | Boolean | Only keep videos where TikTok's own isAd field is true. | false |
includeNicheBenchmarks | No | Boolean | Add a nicheBenchmark object comparing each video's engagementRate to the average for its classified industry within this run. | false |
proxyConfiguration | No | Object | Optional Apify Proxy configuration for the video-page fetches. | {"useApifyProxy": false} |
Example input:
{"discoveryCountry": "US","trendRankBy": "vv","lookbackPeriod": "7","maxResults": 10,"includeEngagementStats": true,"videoUrls": ["https://www.tiktok.com/@mrbeast/video/7558512477600861471"],"targetIndustries": ["Beauty & Personal Care"],"minEngagementRate": 0,"onlyPromotedVideos": false,"includeNicheBenchmarks": true,"proxyConfiguration": { "useApifyProxy": false }}
The most common input mistake is leaving videoUrls empty and relying on discoveryCountry — TikTok deprecated the underlying trending-discovery endpoint server-side, so discovery mode currently returns 0 rows; supply one or more videoUrls for reliable results.
⬆️ Output
Results are written to the Actor's dataset as typed JSON and can be exported as JSON or CSV. Every video — whether it came from country discovery or a direct URL — is pushed as one row with the same 28-field schema, tagged by sourceMode. Every pushed row is billed under the row_result charged event; the Actor pushes no separate placeholder or error rows, so nothing needs to be filtered out to avoid double-billing.
Scraped video (with industry classification and engagement stats)
{"id": "7558512477600861471","item_id": "7558512477600861471","sourceMode": "video-url","title": "Wait for it... #satisfying #fyp","industryCategory": "News & Entertainment","industryClassificationMethod": "local_heuristic","isAd": false,"engagementRate": 8.4231,"rankInResultSet": 1,"percentileRank": 100.0,"nicheBenchmark": {"industry": "News & Entertainment","industryAvgEngagementRate": 6.1122,"industryVideoCount": 4,"aboveIndustryAverage": true},"views": 45000000,"likes": 3200000,"comments": 45000,"bookmarks": 120000,"shares": 89000,"hashtags": ["satisfying", "fyp", "viral"],"authorHandle": "@mrbeast","musicId": "7123456789012345678","country_code": null,"region": null,"cover": "https://p16-sign-va.tiktokcdn.com/example-cover.jpeg","duration": 34,"item_url": "https://www.tiktok.com/@mrbeast/video/7558512477600861471","videoUrl": "https://v16-webapp.tiktok.com/example-video.mp4","publishedAt": "2025-11-02T14:30:00Z","createTimeISO": "2025-11-02T14:30:00Z","scrapedAt": "2026-07-25T12:00:00Z"}
country_code and region are only populated in country-discovery mode, sourced from the trending list itself — in direct video-URL mode they are honestly reported as null rather than guessed. In discovery mode with includeEngagementStats left off, likes, comments, bookmarks, shares, and videoUrl are omitted from the row entirely (not just null); set includeEngagementStats to true, or use videoUrls, to get those fields.
How many results can you scrape with TikTok Trending Videos Scraper: Hashtag Category Stats?
maxResults caps a single run at 1 to 1,000 videos (default 10), enforced by the input schema; there's no separate pagination for you to manage. Direct video URLs are capped to the first maxResults entries in videoUrls and fetched concurrently (up to 8 at a time), while country-discovery mode pages through the trending list 20 items at a time internally until it hits maxResults or runs out of pages. One verified platform-side limit: TikTok's own discovery endpoint currently returns a non-OK response server-side, so discovery mode returns 0 rows regardless of maxResults until TikTok's endpoint is available again — videoUrls is the reliable way to reach your full maxResults today. No benchmark run time is quoted here since none has been independently measured.
Integrate TikTok Trending Videos Scraper: Hashtag Category Stats and automate your workflow
TikTok Trending Videos Scraper: Hashtag Category Stats works with any language or tool that can send an HTTP request, through the standard Apify API.
REST API integration
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_API_TOKEN>")run = client.actor("api-empire/tiktok-trending-videos-scraper-hashtag-category-stats").call(run_input={"videoUrls": ["https://www.tiktok.com/@mrbeast/video/7558512477600861471"],"targetIndustries": ["Beauty & Personal Care"],"includeNicheBenchmarks": True,})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item["title"], item["industryCategory"], item["engagementRate"])
Works in Python, Node.js, Go, Ruby, cURL.
MCP for AI agents
The Actor can be called as a tool through Apify's hosted Actors MCP Server (mcp.apify.com), which exposes any public Apify Actor by ID to MCP-compatible clients. Point a client such as Claude Desktop or Cursor at the Apify MCP server and reference api-empire/tiktok-trending-videos-scraper-hashtag-category-stats as the Actor to run.
Automation platforms (n8n, Make)
In n8n, the official Apify node's Run Actor action starts this Actor and its Get Dataset Items action retrieves the resulting video rows, so a scheduled workflow can pull newly classified trending videos into Slack, Google Sheets, or a database automatically. In Make, the Apify app's Run Actor module works the same way, letting the industry-classified, engagement-ranked output feed directly into a downstream scenario.
Is it legal to scrape TikTok?
Yes — TikTok Trending Videos Scraper: Hashtag Category Stats only collects data already public on TikTok's own trending pages and video detail pages, without logging into any account or accessing private content. The output includes creator-identifying fields such as authorHandle, which counts as personal data in some jurisdictions, so storage and use of that field should have a lawful basis under GDPR/CCPA if you're handling it in bulk. The industryCategory and engagementRate fields are locally derived from public data, not TikTok-sourced personal data. Consult legal counsel for commercial use cases involving bulk personal data.
Frequently asked questions
Does TikTok Trending Videos Scraper: Hashtag Category Stats work without a TikTok account?
Yes. It fetches TikTok's public trending list and public video detail pages anonymously — no TikTok account, login, or API key is required to run it.
How often is the scraped data updated?
Every run fetches live from TikTok at request time; nothing is served from a cache. Note that the country-based discovery source is currently returning a dead/deprecated response server-side on TikTok's side, so a "live fetch" in discovery mode presently means 0 rows — direct videoUrls fetches are live and working.
What happens if a TikTok video URL is deleted, private, or unavailable?
The Actor skips it and moves on rather than failing the whole run — a video whose detail page can't be parsed (after both the plain HTTP fetch and the Playwright fallback fail) is simply left out of the output, and the run continues with the remaining URLs or discovery results.
Can I scrape private or restricted TikTok videos?
No. The Actor only reads public video detail pages and the public trending-discovery list — there is no login flow and no access to private accounts or content beyond what discoveryCountry publicly exposes.
Does TikTok Trending Videos Scraper: Hashtag Category Stats work for AI agent workflows and LLM pipelines?
Yes. Every response is typed, normalized JSON with stable field names, so it can be passed directly into an LLM context window or indexed into a vector store. It's also callable through Apify's Actors MCP Server for MCP-compatible agent clients, or as a plain HTTP endpoint from any agent framework.
How does TikTok Trending Videos Scraper: Hashtag Category Stats handle TikTok's anti-bot system?
For country discovery, it launches a headless Playwright browser with anti-automation flags disabled to capture TikTok's own signing headers before calling the discovery endpoint. For video pages, it tries a plain HTTP fetch first and falls back to a full Playwright browser render when the fetch returns an empty shell. An optional Apify Proxy configuration is available for the video-page fetches, though no proxy is used by default.
Does TikTok Trending Videos Scraper: Hashtag Category Stats return data in a format LLMs can use directly?
Yes. Output fields use stable, typed JSON keys — no HTML, no selectors, no manual parsing — so results can be passed straight to an LLM, a RAG index, or an agent tool call.
Can I use TikTok Trending Videos Scraper: Hashtag Category Stats without managing proxies?
Yes. No proxy is used by default (proxyConfiguration prefills to useApifyProxy: false); proxy configuration is available as an optional input if you want to route the video-page fetches through Apify Proxy.
What happens when TikTok changes its structure or blocks the scraper?
The Actor is actively maintained, and its output schema is designed to stay stable on your end — field names and types don't change even when the underlying fetch mechanism has to be updated behind them, as already happened once with the discovery endpoint. No specific turnaround time is guaranteed for any given break.
Your feedback
Found a bug, an empty field, or something that doesn't match what's documented here? We want to know. Report it through the Actor's page on the Apify Store or via Apify's standard Actor issue/support channel — active maintenance is how this Actor keeps working as TikTok's own site changes.