TikTok Trending Hashtags And Videos Scraper avatar

TikTok Trending Hashtags And Videos Scraper

Pricing

$19.99/month + usage

Go to Apify Store
TikTok Trending Hashtags And Videos Scraper

TikTok Trending Hashtags And Videos Scraper

๐Ÿ”ฅ TikTok Trending Hashtags And Videos Scraper pulls real-time trending tags, views, and engagement. ๐Ÿ” Hashtag research: related tags, popularity, growth. ๐Ÿ“ˆ Export CSV/JSON or use API. ๐Ÿš€ Ideal for creators, brands, and marketers.

Pricing

$19.99/month + usage

Rating

0.0

(0)

Developer

ScrapeEngine

ScrapeEngine

Maintained by Community

Actor stats

0

Bookmarked

7

Total users

1

Monthly active users

2 days ago

Last modified

Share

TikTok Trending Hashtags And Videos Scraper pulls the live trending-hashtag ranking for any country, time window, and industry, then opens each hashtag's own TikTok page to capture its real top videos โ€” caption, author, music, and engagement stats โ€” as linked child rows. Every hashtag_name, rank, video_views, trend, and diggCount returns as structured JSON, no HTML parsing needed. Start a run below to pull your first ranking.

It's an Apify Actor that discovers TikTok's currently trending hashtags โ€” ranked by country, 7/30/120-day window, and industry category โ€” and, for each one, fetches the hashtag's real live top videos as linked child rows carrying a parentId back to the parent hashtag. It returns one structured JSON dataset with no manual parsing. No TikTok account or login is required or used anywhere in the run. It's built for social media marketers, agencies, creators, and researchers who need both the trend signal and the content behind it in one place.

TikTok's Creative Center exposes a small anonymous preview of the hashtag ranking with no login; the full 100-hashtag list needs a logged-in TikTok Ads account.

Data CategoryPublic (no login)Restricted (logged-in Ads account)
Hashtag name, rank, view/publish countsSmall preview, per country/periodFull ranked list
Popularity curve (trend history)Yes, for previewed hashtagsโ€”
Country/industry taggingYesIndustry & "new entrant" server-side filtering
Rank-change directionNot exposed todayโ€”
Top videos per hashtagYes, via the public hashtag pageโ€”
Ad/promoted flagNot exposed todayโ€”

This Actor only returns publicly visible data โ€” what any visitor sees, nothing behind a login wall.

Each run returns two linked row types โ€” hashtag rows (type: "hashtag") and video rows (type: "video", linked via parentId) โ€” covering ranking, engagement, and per-video creator data.

Hashtag identity, ranking and country/industry fields

Field NameDescription
id / hashtag_idThe hashtag's TikTok ID
hashtag_nameThe hashtag text, without #
type"hashtag" for parent rows, "video" for linked video rows
isChild / parentIdfalse/null for hashtag rows; true and the parent hashtag ID for video rows
rankPosition in the trending ranking
rank_diff_type / rank_change_readableRaw rank-change code and a human label ("Up"/"Down"/"Same"/"New"); both null when TikTok's live endpoint doesn't expose the field
periodThe requested ranking window in days
country_infoObject (code, name) โ€” the row's true source country
industry_infoObject (industry_ids, industry_labels), or null if untagged
is_promotedBoolean ad flag, null when TikTok doesn't expose it for that row
webVideoUrlPublic hashtag page link (hashtag rows) or the video's own deep link (video rows)

Hashtag metrics and trend fields

Field NameDescription
video_viewsTotal views reported for the hashtag
publish_cntTotal videos published under the hashtag
trendArray of { "time", "value" } popularity-curve points
analyticsExtra blob (video_views, publish_cnt, rank, industry_ids, trend, creators) โ€” present only when Result Mode includes analytics

Linked video, creator and AI fields

Field NameDescription
captionThe video's on-screen caption/description text
authorMetaObject: id, uniqueId, nickname, verified, avatar, followers, following, heart, videoCount
musicMetaObject: musicId, musicName, musicAuthor, original, playUrl
videoMetaObject: duration, width, height, coverUrl
diggCount / playCount / commentCount / shareCount / collectCountLikes, plays, comments, shares, saves
hashtagsOther hashtags detected in the caption/challenges
createTime / createTimeISOVideo publish time, raw and ISO-8601
aiSentiment / aiTopics / aiLanguageCaption sentiment, topic keywords, detected language โ€” filled only when AI caption analysis is on and a valid key is supplied, otherwise null
scrapedAtISO-8601 UTC timestamp of collection

๐Ÿค– Add-on: Need additional TikTok data?

Pair this Actor with ../tiktok-trending-videos-insights-and-branded-hashtag-views-likes for TikTok Top Ads cost/CTR analytics (brand, cost-per-like, engagement score) rather than organic hashtag trends. If you need creator profiles attached to individual trending videos without going through a hashtag, ../tiktok-trending-videos-scraper-with-author-profile fetches discovery-mode or direct-URL videos with full author bio and follower data.

TikTok's own public developer program is the Research API, and it is not a general commercial access point: eligibility is limited to vetted academic institutions and not-for-profit/independent research bodies (in the US, EEA, UK, Switzerland, or youth-safety researchers in Brazil), applicants must submit a justified research proposal and proof of ethics approval, and TikTok's own overview states approval typically takes about four weeks (TikTok Developers, "Research API & Display API," checked 2026-07-25).

FeatureTikTok Research APITikTok Trending Hashtags And Videos Scraper
Who can access itApproved academic/non-profit researchers onlyAnyone with an Apify account
Approval processApplication + ethics review, ~4-week typical waitNone โ€” runs immediately
Trending hashtag ranking by country/industryNot a documented product featureYes, built in
Per-hashtag top videos as linked rowsNot documentedYes, via parentId
Commercial use of the dataProhibited (non-commercial research only)Unrestricted
Output formatResearch-specific export under TikTok's termsStructured JSON dataset

Use TikTok's Research API only if you already qualify as an approved academic or non-profit researcher and need it under TikTok's own terms. Use this Actor when you need trending-hashtag and video data now, for commercial or operational use, without an application process.

No input field is required โ€” the default configuration runs a global trending-hashtag ranking out of the box. To scope a run:

  1. Open TikTok Trending Hashtags And Videos Scraper on Apify and click Start.
  2. Pick resultMode โ€” ๐Ÿ† Trending Ranking, ๐Ÿ“Š Ranking + Analytics, or ๐Ÿ”ฌ Custom Hashtag Analytics for your own hashtagsToAnalyze list.
  3. Set targetCountry, trendingWindow/analyticsWindow, industryCategory, and maxHashtags (up to 100) to scope the ranking; toggle fetchTopVideos and maxVideosPerHashtag (up to 50) for linked video rows.
  4. Start the run and let it finish.
  5. Download the dataset as JSON, CSV, or Excel, or read it via the Apify API.

There's no URL list โ€” scale comes from the parameters themselves. maxHashtags collects up to 100 hashtag rows per run, each with up to 50 linked videos via maxVideosPerHashtag. For custom analytics, hashtagsToAnalyze accepts an unlimited array of your own hashtags in one run. To cover every market, either set targetCountry to ๐ŸŒ All (which aggregates real per-country batches automatically) or loop separate runs across specific country codes.

  • A social media manager tracking trend timing uses rank, rank_change_readable, and trend to catch a hashtag's popularity curve before it peaks.
  • A marketing strategist prioritizing campaign hashtags uses hashtag_name, video_views, and publish_cnt to pick hashtags with real, current reach.
  • A creator or agency doing content research uses each hashtag's linked caption, authorMeta, and diggCount/playCount to see which creators and formats are winning under a trend right now.
  • A competitive-intel or brand-safety analyst uses industry_info and country_info to benchmark which topics are trending by market and vertical.
  • An AI/LLM use case: an agent building an automated trend briefing feeds hashtag_name, caption, aiSentiment, and aiTopics straight into an LLM to summarize what's driving a trend this week, with no HTML scraping or selector maintenance.

The Actor navigates a real TikTok Creative Center page first, through a headless Chromium browser (Playwright), to seed an anonymous session before requesting hashtag data โ€” reducing bot suspicion rather than hitting the API cold. Hashtag requests retry up to 3 times with exponential backoff on a non-200 response or network error. TikTok's tag pages occasionally return an empty response body for the video-list request โ€” a soft anti-bot response, not a hard block โ€” so the video fetch retries once on a fresh browser context/session before giving up on that hashtag; no video rows are fabricated if both attempts come back empty. An optional proxyConfiguration (off by default) can route both the hashtag and video requests through Apify proxy. If a hashtag's video fetch errors outright, that hashtag's row is still pushed and the run continues with the remaining hashtags.

โฌ‡๏ธ Input

ParameterRequiredTypeDescriptionExample Value
resultModeNostring (enum)๐Ÿ† Trending Ranking / ๐Ÿ“Š Ranking + Analytics / ๐Ÿ”ฌ Custom Hashtag Analytics for your own hashtag list"top100"
targetCountryNostring (enum)Country to pull trends for, or ๐ŸŒ All Countries for global aggregation"US"
trendingWindowNostring (enum)Time window for the trending ranking: "7", "30", or "120" days"7"
analyticsWindowNostring (enum)Time window for analytics curves: "7", "30", "120", "365", or "1095" days"30"
industryCategoryNostring (enum)Narrow the ranking by industry; leave blank for all industries"20000000001"
onlyNewEntriesNobooleanReturn only hashtags newly entering the ranking (default false)false
maxHashtagsNointegerCap on hashtag rows to collect, 1โ€“10020
hashtagsToAnalyzeNoarrayYour own hashtags (no #) to analyze โ€” used only in ๐Ÿ”ฌ Custom Hashtag Analytics mode["skincare", "fyp"]
fetchTopVideosNobooleanFetch each hashtag's top videos as linked child rows (default true)true
maxVideosPerHashtagNointegerCap on video rows per hashtag, 0โ€“50 (default 5)5
enableAiAnalysisNobooleanTurn on AI sentiment/topic/language classification of video captions (default false)false
aiModelNostring (enum)AI model/provider for caption classification (default "claude-haiku-4-5")"claude-haiku-4-5"
aiApiKeyNostring (secret)Your own API key for the selected AI provider; required only when AI analysis is on"sk-ant-..."
proxyConfigurationNoobjectApify proxy configuration; no proxy used by default{ "useApifyProxy": false }

Example input

{
"resultMode": "top100_with_analytics",
"targetCountry": "US",
"trendingWindow": "7",
"analyticsWindow": "30",
"industryCategory": "",
"onlyNewEntries": false,
"maxHashtags": 20,
"hashtagsToAnalyze": [],
"fetchTopVideos": true,
"maxVideosPerHashtag": 5,
"enableAiAnalysis": false,
"aiModel": "claude-haiku-4-5",
"aiApiKey": "",
"proxyConfiguration": { "useApifyProxy": false }
}

โฌ†๏ธ Output

Each run writes typed, normalized JSON rows to one Apify dataset, exportable as JSON, CSV, Excel, or XML โ€” field names stay the same across runs. Video rows are also mirrored to a separate per-run video dataset. Every pushed row, hashtag or video, bills one row_result charged event; no separate uncharged accounting rows are pushed.

Example output

Hashtag (parent) row:

{
"id": "163892104123456789",
"type": "hashtag",
"isChild": false,
"parentId": null,
"hashtag_id": "163892104123456789",
"hashtag_name": "skincare",
"caption": null,
"country_info": { "code": "US", "name": "United States", "id": "US", "value": "United States", "label": "US" },
"industry_info": { "industry_ids": ["20000000001"], "industry_labels": ["Beauty & Personal Care"] },
"is_promoted": null,
"trend": [ { "time": 1752537600, "value": 812345 }, { "time": 1752624000, "value": 843210 } ],
"video_views": 98234123,
"publish_cnt": 45211,
"rank": 3,
"rank_diff_type": null,
"rank_change_readable": null,
"period": "7",
"authorMeta": null,
"musicMeta": null,
"diggCount": null,
"playCount": null,
"commentCount": null,
"shareCount": null,
"webVideoUrl": "https://www.tiktok.com/tag/skincare",
"aiSentiment": null,
"aiTopics": null,
"aiLanguage": null,
"scrapedAt": "2026-07-25T10:14:32.501Z"
}

Linked video (child) row:

{
"id": "7398214410023456789",
"type": "video",
"isChild": true,
"parentId": "163892104123456789",
"hashtag_name": "skincare",
"caption": "morning routine that actually cleared my skin #skincare",
"is_promoted": false,
"createTime": 1753180800,
"createTimeISO": "2026-07-22T08:00:00+00:00",
"authorMeta": { "uniqueId": "glow.with.k", "nickname": "Glow with K", "verified": false, "followers": 184200, "following": 312, "heart": 5210044, "videoCount": 812 },
"musicMeta": { "musicId": "70123456789", "musicName": "original sound", "musicAuthor": "glow.with.k", "original": true },
"videoMeta": { "duration": 38, "width": 1080, "height": 1920, "coverUrl": "https://p16-sign.tiktokcdn.com/example-cover.jpeg" },
"diggCount": 48213,
"playCount": 1204531,
"commentCount": 621,
"shareCount": 1890,
"collectCount": 3021,
"hashtags": ["skincare", "skincareroutine", "fyp"],
"webVideoUrl": "https://www.tiktok.com/@glow.with.k/video/7398214410023456789",
"aiSentiment": "positive",
"aiTopics": ["skincare", "morning-routine", "beauty"],
"aiLanguage": "en",
"scrapedAt": "2026-07-25T10:14:41.223Z"
}

How does it work?

The Actor launches a headless Chromium browser and first opens TikTok's own Creative Center trends page to seed a real anonymous session and cookies. It then posts to TikTok's live hashtag-ranking endpoint โ€” the same request the page's own JavaScript fires โ€” to collect the trending hashtag list for the chosen country, window, and industry. When video fetching is on, it opens each hashtag's public tiktok.com/tag/ page in a fresh browser context and listens for the same video-list network response the real page loads, capturing caption, author, music, and stats directly from TikTok's own traffic rather than parsed HTML. Only data any visitor can already see is returned โ€” nothing requires a TikTok login. Field names stay stable across runs even as TikTok changes its page layout, because the Actor reads structured API responses, not the visual page.

Integrations

TikTok Trending Hashtags And Videos Scraper runs on Apify, so it works with anything that can call an HTTP API or the Apify client libraries โ€” no proprietary SDK required.

from apify_client import ApifyClient
client = ApifyClient("<APIFY_API_TOKEN>")
run = client.actor("scraper-engine/tiktok-trending-hashtags-and-videos-scraper").call(run_input={
"targetCountry": "US",
"maxHashtags": 20,
"fetchTopVideos": True,
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["hashtag_name"], item.get("rank"))

Works in Go, Ruby, Node.js, cURL โ€” any language that can make an HTTP request.

MCP integration for AI agents

TikTok Trending Hashtags And Videos Scraper is reachable through Apify's Actors MCP Server at https://mcp.apify.com, which exposes Apify Store Actors as callable tools for MCP-compatible clients including Claude Desktop, Claude Code, Cursor, and VS Code. Connect it with apify mcp install claude-code --tools scraper-engine/tiktok-trending-hashtags-and-videos-scraper, or add the hosted URL with a bearer-token Authorization header to any MCP client config.

No-code tools (n8n, Make, LangChain)

In n8n, use the HTTP Request node (or the community Apify node) pointed at this Actor's run endpoint, with your Apify API token in the Authorization header. In Make, use the Apify app's "Run Actor and get dataset items" module to feed hashtag/video rows into a downstream scenario. In LangChain, call the same Apify API endpoint from a custom Tool, or load the dataset with the community Apify loader, so an agent can pull current TikTok trends mid-conversation.

Scraping publicly available TikTok data is generally lawful, since this Actor only returns what any visitor can already see on TikTok's public trends page and public hashtag video feeds โ€” no login wall, no private account data. The hashtag ranking and analytics fields (views, publish counts, trend curves) are aggregate content metrics, not personal data. The linked video rows do include public creator handles, nicknames, and follower counts, which can qualify as personal data about an identifiable individual, so storing or reusing that data at scale can fall under GDPR/CCPA-type regimes, and TikTok's own Terms of Service separately restrict automated access. Consult legal counsel if your use case involves bulk storage or reuse of creator data, especially across the EU/UK or California.

Frequently asked questions

What TikTok hashtag and video fields does this scraper return?

It returns hashtag_name, rank, video_views, publish_cnt, and trend for every hashtag, plus caption, authorMeta, diggCount, and webVideoUrl for every linked video. See the full data fields tables above for every key.

No. It reads TikTok's live public Creative Center endpoint and public hashtag video pages with an anonymous browser session โ€” there's no username, password, or session-cookie field anywhere in the input.

How many hashtags and videos can I extract in one run?

maxHashtags collects up to 100 hashtag rows per run, and maxVideosPerHashtag fetches up to 50 linked videos per hashtag โ€” up to 5,000 video rows in a single run at the maximums.

What happens if a hashtag has no videos or TikTok returns an empty feed?

The hashtag row is still pushed with its ranking data; the video fetch retries once on a fresh browser session, and if TikTok's tag page still returns nothing, no video rows are added for that hashtag โ€” never fabricated placeholders.

Can I scrape multiple TikTok hashtags at once?

Yes. maxHashtags returns multiple ranked hashtags per run, and hashtagsToAnalyze accepts an array of your own hashtags to resolve against the live trending data in Custom Hashtag Analytics mode.

Does this scraper work with Claude, ChatGPT, and other AI agent tools?

Yes. It's callable as a plain HTTP endpoint through the Apify API from any agent framework, and it's reachable through Apify's Actors MCP Server (https://mcp.apify.com) for MCP-compatible clients like Claude Desktop and Claude Code.

Does this scraper return data in a format LLMs can use directly?

Yes. It returns typed, normalized JSON with consistent field names across runs โ€” no HTML parsing or CSS selectors. Pass the dataset directly to an LLM, index it into a vector store, or feed it to an agent tool.

What happens when TikTok changes its layout or anti-bot system?

The Actor is maintained and its output schema stays stable across TikTok changes, because it reads TikTok's own network responses rather than parsing the visual page. No specific fix turnaround time is promised.

Can I use this scraper without managing proxies or browser infrastructure?

Yes. The Actor runs its own headless Chromium browser via Playwright and handles session seeding and retries; proxy use is optional and only needed if you want requests routed through Apify proxy.

Which fields work best for AI training data and RAG indexing?

For RAG, index caption (video text), hashtag_name, and aiTopics as the high-information text fields. For training data, rank, video_views, publish_cnt, and the engagement counts (diggCount, playCount, commentCount, shareCount) are the most consistently structured numeric fields across every run, returned as typed primitives rather than strings.

Scraper NameWhat it extracts
Trending Videos Insights and Branded Hashtag Views & LikesTikTok Top Ads cost/CTR analytics
TikTok Trending Videos Scraper With Author ProfileTrending/direct-URL videos with full creator profile
Instagram Hashtag ScraperInstagram posts and reels by hashtag
Google Trends ScraperInterest-over-time popularity timelines
YouTube Comments Scraper : AI Sentiment AnalyticsComments with AI sentiment and spam heuristics

Your feedback

Found a bug or missing a field? Let us know so we can take a look โ€” feedback like this is what keeps this Actor accurate as TikTok's site changes.