Tiktok Trending Hashtags Scraper avatar

Tiktok Trending Hashtags Scraper

Pricing

$14.99/month + usage

Go to Apify Store
Tiktok Trending Hashtags Scraper

Tiktok Trending Hashtags Scraper

Scrapes trending TikTok hashtags by region or category, capturing hashtag names, views, related tags, top videos, creators, and engagement metrics. Ideal for trend research, content planning, influencer insights, and automated discovery of high-growth hashtag opportunities

Pricing

$14.99/month + usage

Rating

0.0

(0)

Developer

Scrapio

Scrapio

Maintained by Community

Actor stats

0

Bookmarked

19

Total users

3

Monthly active users

3 days ago

Last modified

Share

TikTok Trending Hashtags Scraper pulls TikTok Creative Center's live trending-hashtag ranking — rank, video views, publish count, industry, country context, and a full popularity-trend curve — for any of 73 countries and three time windows. Unlike scraping frameworks that return raw HTML, TikTok Trending Hashtags Scraper returns typed JSON — ready for your model, your database, or your pipeline without any parsing. This guide covers every field it returns and how marketing, research, and data teams actually deploy it in ongoing pipelines.

TikTok Trending Hashtags Scraper connects to TikTok Creative Center's public trend-discovery surface and returns the current trending-hashtag ranking, optional deep per-hashtag analytics, or analytics for a custom hashtag watchlist you supply. No TikTok account, login, or API key is required — it works entirely against TikTok's publicly accessible Creative Center pages.

  • Fetches the live Top 100 trending-hashtag ranking for a chosen country and period (7/30/120 days)
  • Enriches each hashtag with a nested analytics object (views, publish count, trend curve, top creators) in the same run
  • Resolves analytics for your own custom hashtag list instead of the general trending ranking
  • Filters the ranking by 18 TikTok Creative Center industry categories
  • Isolates hashtags that newly entered the Top 100 in the selected period
  • Tracks rank movement (new/up/down/same) across runs using its own persisted rank history
  • Escalates through no-proxy, datacenter, and residential proxies automatically if TikTok rate-limits a request

⚡ Features & Capabilities

TikTok Trending Hashtags Scraper's capabilities split into three areas: what it collects, how it holds up across runs, and where it sits relative to the rest of the TikTok toolset in the Scrapio catalog.

Core features

  • Live Top 100 rankingrank, hashtag_name, hashtag_id, video_views, publish_cnt pulled directly from TikTok Creative Center's current GetHashtagList endpoint, not a cached snapshot
  • Country and period control — 73-country enum (or ALL) crossed with 7/30/120-day windows via country and top100_period
  • Industry filtering — narrow the ranking to 1 of 18 Creative Center industry categories with top100_industry
  • New-entrant detectiontop100_new_on_board flag isolates hashtags that are new to the Top 100 this period
  • Custom hashtag analyticshashtag_list fetches the same field set for your own hashtags instead of the general ranking
  • Nested analytics blobtop100_with_analytics / analytics result types add analytics.trend, analytics.top_creators, and repeat the numeric fields for convenient downstream access
  • Cross-run rank trackingrank_diff_type / rank_change_readable are derived from a persistent, actor-owned rank-history store keyed by hashtag + country + period, not from a dead TikTok field
  • Automatic proxy escalationproxyConfiguration drives a none → datacenter → residential fallback chain when TikTok returns a blocked status

TikTok Trending Hashtags Scraper covers trending hashtags, per-hashtag analytics, and the creators behind them. For trending videos with author engagement, use tiktok-trending-videos-insights-author-engagement. For a growth-tracking view of trending videos across runs (view/like/comment/share deltas), use tiktok-trending-videos-scraper-with-video-views-count. Together these three cover TikTok's trend-discovery surface: hashtags, videos, and video growth over time.

Why do developers and data teams scrape TikTok?

TikTok's trend-discovery data attracts a specific set of buyers, since hashtag rank, view counts, and industry classification map directly onto commercial and research decisions rather than general web content.

🏢 Marketing, social, and content strategy teams

Social media managers and agencies pull rank and rank_change_readable for a target country/industry to build a weekly content calendar, prioritizing hashtags flagged "new" or "up" over ones marked "down". Combined with publish_cnt and video_views, teams can distinguish an oversaturated hashtag (high publish_cnt, flat trend) from an emerging one (low publish_cnt, rising trend curve) before briefing creators, and export the ranking straight into a content-planning sheet via CSV.

📊 AI training data and RAG indexing

The trend time series and industry_info.industry_labels are the highest-information fields for AI use: trend gives a normalized 0–100 popularity curve usable as a numeric feature, while industry_labels gives a clean categorical tag with no free-text cleanup needed. For RAG, indexing hashtag_name alongside rank_change_readable and period lets an agent answer "what's trending in [industry] right now" directly from retrieved rows. For training data, rank, publish_cnt, and video_views are consistently typed integers across every record, requiring no schema normalization before use.

📱 Competitive and market intelligence

Brands and analysts track how a competitor's owned or sponsored hashtags move through rank and rank_diff_type over successive scheduled runs, watching video_views and publish_cnt for the growth rate behind a campaign rather than a single-point-in-time count.

🔬 Research and academic use

Researchers studying platform virality use the trend popularity curve and cross-run rank_change_readable history to model how hashtags rise and fall over 7/30/120-day windows. Scope is limited to TikTok's own public Creative Center preview — no private account or message data is ever involved.

🎥 Product and SaaS development

Teams building trend-monitoring dashboards, hashtag-recommendation tools, or content-calendar SaaS products use this actor as the ingestion layer, scheduling runs per country/industry combination and writing rank, trend, and rank_change_readable straight into their own database schema.

🍚 Input Parameters

None of the eight input parameters are required — every field has a default, so an empty run returns the global Top 100 for the last 7 days.

ParameterRequiredTypeDescriptionExample Value
result_typeNostringWhat to return: top100 (Top 100 Ranking, default), top100_with_analytics (Top 100 + nested analytics), or analytics (analytics for hashtag_list)"top100_with_analytics"
countryNostringCountry to pull the ranking/analytics for; "ALL" (default) for global"US"
top100_periodNostringTime window for the Top 100 ranking: "7" (default), "30", or "120" days"30"
analytics_periodNostringTime window for analytics curves (used when result_type is analytics): "7", "30" (default), "120", "365", or "1095" days"365"
top100_industryNostringFilter the Top 100 by one of 18 Creative Center industry IDs; "" (default) = all industries"9000000002"
top100_new_on_boardNobooleanReturn only hashtags newly entering the Top 100 in the chosen period; default falsetrue
hashtag_listNoarrayHashtags (without #) to fetch analytics for; only used when result_type is analytics; default []["rainbowpfp", "grwm"]
proxyConfigurationNoobjectApify proxy configuration; no proxy used by default — the actor escalates to datacenter then residential automatically on a blocked response{ "useApifyProxy": false }

Input example

{
"result_type": "top100_with_analytics",
"country": "US",
"top100_period": "7",
"top100_industry": "",
"top100_new_on_board": false,
"hashtag_list": [],
"proxyConfiguration": { "useApifyProxy": false }
}

Supported URL types and input formats

This actor does not take page URLs as input — it drives TikTok Creative Center's own trend endpoint using country, period, and industry selectors, plus an optional plain-text hashtag list.

  • Global Top 100, no filters: { "result_type": "top100", "country": "ALL", "top100_period": "7" }"ALL" is normalized to the US request internally, since that mirrors how TikTok's own Creative Center client resolves an unset country.
  • Industry-filtered Top 100 with analytics: { "result_type": "top100_with_analytics", "country": "GB", "top100_period": "30", "top100_industry": "10000000000" } — food & beverage hashtags trending in the UK over 30 days, with the nested analytics blob.
  • Custom hashtag watchlist: { "result_type": "analytics", "country": "US", "analytics_period": "365", "hashtag_list": ["rainbowpfp", "grwm"] } — hashtags are matched case-insensitively against the current live trending preview; a hashtag not present there returns no analytics for that combination.

📦 Output Format

Every run pushes one typed JSON record per hashtag to the dataset, in addition to writing the same array to the key-value store as output.json. Results are downloadable through Apify's standard dataset export formats (JSON, CSV, Excel/XLSX, and the Console table view) — no format-specific behavior is built into the actor itself.

Real, verified row from a top100 run (13 fields — the actor's full output for this result type):

{
"hashtag_id": "1598391085330438",
"hashtag_name": "rainbowpfp",
"country_info": { "id": "US", "value": "United States", "label": "US" },
"industry_info": { "industry_ids": ["23000000000"], "industry_labels": ["Baby, Kids & Maternity"] },
"is_promoted": null,
"trend": [
{ "time": 1783641600, "value": 0 },
{ "time": 1784160000, "value": 100 }
],
"publish_cnt": 176599,
"video_views": 157573033,
"rank": 1,
"rank_diff_type": "new",
"period": "7",
"rank_change_readable": "New",
"scrapedAt": "2026-07-18T05:51:48.260386+00:00"
}

is_promoted is honestly reported as null — TikTok's current public payload does not include a promoted/ad flag at all, and this actor never substitutes a guessed false for a field TikTok simply doesn't send.

Output for hashtag analytics

When result_type is top100_with_analytics or analytics, every row above gains a nested analytics object:

{
"hashtag_id": "1598391085330438",
"hashtag_name": "rainbowpfp",
"country_info": { "id": "US", "value": "United States", "label": "US" },
"industry_info": { "industry_ids": ["23000000000"], "industry_labels": ["Baby, Kids & Maternity"] },
"is_promoted": null,
"trend": [{ "time": 1783641600, "value": 0 }, { "time": 1784160000, "value": 100 }],
"publish_cnt": 176599,
"video_views": 157573033,
"rank": 1,
"rank_diff_type": "new",
"period": "7",
"rank_change_readable": "New",
"scrapedAt": "2026-07-18T05:51:48.260386+00:00",
"analytics": {
"video_views": 157573033,
"publish_cnt": 176599,
"rank": 1,
"industry_info": { "industry_ids": ["23000000000"], "industry_labels": ["Baby, Kids & Maternity"] },
"trend": [{ "time": 1783641600, "value": 0 }, { "time": 1784160000, "value": 100 }],
"top_creators": []
}
}

analytics.top_creators is a direct, unmodified pass-through of TikTok's own topCreators array for that hashtag — this actor does not rename or restructure its contents, so it is empty whenever TikTok's live response doesn't include creator data for that hashtag/country/period combination, and populated with whatever creator fields TikTok itself sends when it does.

Schema stability and export options

All 13 base fields (plus analytics when requested) are guaranteed present on every row, even when TikTok's own upstream field disappears — is_promoted stays in the schema as null rather than being dropped, and rank_diff_type/rank_change_readable are computed from this actor's own persisted rank-history store rather than removed when TikTok's equivalent field went dark. The analytics key is written to every export (JSON, CSV, Excel) but is not part of the default Console table view's 13 visible columns — open the row detail or switch to the JSON/CSV export to see it.

🎯 Strategy 1: Real-time enrichment pipeline

Trigger a run on demand — from a content-calendar tool, a Zapier/Make webhook, or a manual Console start — with result_type: "analytics" and hashtag_list set to the hashtags a creator is considering. Read back rank, video_views, publish_cnt, and analytics.trend for each, and append them as enrichment columns on the inbound record (a content brief, a campaign row, a CRM entry) before it reaches a human reviewer. Because unresolved hashtags are simply omitted from the output rather than erroring, downstream logic can treat a missing row as "not currently trending" without extra branching.

🎯 Strategy 2: Scheduled monitoring and alerting

Use an Apify Schedule to run the actor on a recurring cadence against the same country + top100_period combination. Because this actor persists its own cross-run rank history (keyed by hashtag + country + period), every scheduled run automatically produces a real rank_diff_type of "new", "up", "down", or "same" compared to the previous run — no external diffing step is required. Alert your team when a tracked hashtag's rank_change_readable flips to "Up" or "New", or when top100_new_on_board surfaces a fresh entrant in your target industry.

🎯 Strategy 3: Bulk dataset build

For a research or training dataset spanning multiple markets, queue one run per country (or per country + top100_industry pair) and aggregate each run's dataset into a CSV or database table keyed by hashtag_id + country_info.id + period. Because every field returns as a typed primitive (strings, integers, booleans, nested objects), rows can be loaded directly into a table schema without a normalization pass. No actor-level concurrency limit is documented in the input schema, so parallelism is bounded by your own Apify plan and TikTok's anonymous-preview response size rather than a fixed cap in this actor.

Strategy comparison at a glance

StrategyBest forRun patternOutput format
Real-time enrichmentEnriching a single hashtag or short list on demandOn-demand / webhook-triggered single runJSON appended to the calling system's record
Scheduled monitoringTracking rank movement on a fixed watchlist over timeRecurring Apify Schedule against the same country/periodDataset diffed via rank_diff_type each run
Bulk dataset buildMulti-country or multi-industry research datasetsParallel runs, one per country/industry combinationAggregated CSV or database table
Scraper NameWhat it extracts
tiktok-trending-videos-insights-author-engagementTikTok Ads Creative Center top ads enriched with real organic video engagement and the creator's public profile
tiktok-trending-videos-scraper-with-video-views-countTrending TikTok videos tracked across runs, with view/like/comment/share deltas and rank-shift status
instagram-hashtag-engagement-scraperInstagram posts and reels by hashtag, enriched with derived engagement metrics
instagram-related-hashtag-stats-scraper-top-creators-with-engagementInstagram hashtag stats, related tags, top posts, and a ranked top-creators list
google-trends-scraper-regional-popularity-breakdownGoogle Trends search-interest data broken down by region, for cross-referencing a hashtag's topic against broader search demand

TikTok Trending Hashtags Scraper works with any language or tool that can make an HTTP request, via the Apify API or an official SDK.

Python

import csv
from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
countries = ["US", "GB", "DE"]
all_rows = []
for country in countries:
run = client.actor("tiktok-trending-hashtags-scraper-pay-per-events").call(
run_input={
"result_type": "top100_with_analytics",
"country": country,
"top100_period": "7",
}
)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
all_rows.append(item)
with open("tiktok_trending_hashtags.csv", "w", newline="", encoding="utf-8") as f:
writer = csv.DictWriter(f, fieldnames=[
"hashtag_id", "hashtag_name", "rank", "video_views",
"publish_cnt", "rank_change_readable", "period", "scrapedAt",
])
writer.writeheader()
for row in all_rows:
writer.writerow({k: row.get(k) for k in writer.fieldnames})
print(f"Saved {len(all_rows)} hashtag rows across {len(countries)} countries")

Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });
const run = await client.actor('tiktok-trending-hashtags-scraper-pay-per-events').call({
result_type: 'analytics',
country: 'US',
analytics_period: '30',
hashtag_list: ['rainbowpfp', 'grwm'],
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
for (const item of items) {
console.log(item.hashtag_name, item.rank, item.rank_change_readable);
}

Async and scheduled pipelines

For large or recurring jobs, start the run asynchronously via client.actor(...).start() (Python) or .start() (Node.js) instead of .call(), then poll the run status or attach an Apify webhook to fire when the run finishes — no result is blocked on a held-open HTTP connection. For ongoing monitoring, an Apify Schedule triggers the run on a fixed cadence, which is what makes the rank-history-based Strategy 2 above work without any external scheduler.

🏢 Marketing, social, and content strategy teams

A social agency running campaigns across several markets pulls rank, rank_change_readable, and top100_industry filters per client vertical every week, feeding hashtags marked "New" or "Up" directly into the next content brief instead of relying on guesswork.

📊 AI training and RAG teams

Teams building a TikTok-trend-aware assistant index hashtag_name, industry_info.industry_labels, and the trend curve so the assistant can answer "what's trending in [industry] in [country] right now" from retrieved rows instead of a stale training cutoff.

📱 Competitive and market intelligence analysts

Analysts track a competitor's or their own brand's hashtags over scheduled runs, watching rank_diff_type and video_views growth to time a campaign push or catch a competitor's hashtag losing momentum before a report is due.

🔬 Researchers

Academic and market researchers studying platform virality pull the trend popularity curve and cross-run rank history across countries and industries to model how trends propagate — scoped to TikTok's own public preview data only.

🎥 Product and SaaS builders

Teams building hashtag-recommendation tools or trend dashboards schedule runs per country/industry and write rank, trend, and rank_change_readable straight into their product's own database as the ingestion layer.

Yes — scraping publicly accessible data, like TikTok Creative Center's trending-hashtag ranking, is generally lawful; courts have distinguished scraping public web data from unauthorized computer access (hiQ Labs, Inc. v. LinkedIn Corp., 9th Cir., 2019). Separately, TikTok's Terms of Service may restrict automated access to its platform — violating a website's terms is a potential civil contract matter between you and TikTok, not a criminal one, but it is a real risk to weigh. On data protection: the base trending-hashtag ranking is aggregate, non-personal data, but the optional analytics.top_creators field can carry public creator-identifying data (handles, follower counts) when TikTok includes it, so GDPR/CCPA-style lawful-basis considerations apply specifically to that field, not to the ranking itself. TikTok Trending Hashtags Scraper returns only publicly accessible data. What you do with that data is your responsibility — consult legal counsel for commercial applications involving personal data.

❓ Frequently asked questions

Yes — it requires no TikTok login, account, or API key. It runs entirely against TikTok Creative Center's public Trends page, seeding a session by loading that page before querying the live ranking endpoint.

It navigates the public Trends page with a real Playwright browser session to seed cookies before firing the ranking request through that same session, retries up to 3 times with backoff on a non-200 response, and automatically escalates from no proxy to datacenter proxy to residential proxy if TikTok returns a blocked status (403/429/503).

It handles blocking through automatic proxy escalation and retries rather than a guaranteed unblockable connection; no uptime or success-rate figure is published for this behavior. Running with a residential proxy configured is the most resilient option for larger or geo-targeted volumes.

It fetches live on every run — there is no caching layer. rank_diff_type and rank_change_readable, however, are intentionally computed by comparing the current live fetch to this actor's own stored result from the previous run, not from a cached value.

Why do I only get a handful of hashtags per country/period?

TikTok Creative Center's anonymous, logged-out access exposes only a small public preview of its full ranking; the actor requests up to 100 hashtags by default but returns exactly what TikTok's public preview makes available for that country and period, and logs a warning rather than padding the result when TikTok returns fewer.

For RAG, index hashtag_name, industry_info.industry_labels, and rank_change_readable for direct-answer retrieval; the trend array is the richest numeric feature for a training set. All fields return as typed primitives or nested objects — no text parsing or normalization is needed before loading them into a model context or feature pipeline.

Does using analytics.top_creators raise data-protection concerns?

It can — that field is a direct pass-through of whatever public creator data TikTok's own response includes for a hashtag, and is empty when TikTok doesn't return any. The base trending-hashtag ranking itself contains no personal data; if your use case pulls analytics.top_creators, the lawful basis for storing and using that public creator data is yours to establish.

What happens if a hashtag in my custom list isn't found?

It is simply excluded from the output, and the actor logs which hashtags it couldn't resolve. This happens when a hashtag isn't present in TikTok's current live anonymous preview for the selected country and period — it is not an error condition.

Yes, as an HTTP endpoint callable by any agent framework through the Apify API — every response is typed JSON, so an agent can parse it directly into its context window without an HTML-scraping or cleanup step.

ℹ️ Disclaimer

TikTok Trending Hashtags Scraper extracts only publicly available data from TikTok. This tool is intended for lawful use cases only. Users are responsible for complying with TikTok's terms of service and applicable data protection laws in their jurisdiction.