TikTok Creative Center Scraper for Top Ads
Pricing
from $1.25 / 1,000 top ads
TikTok Creative Center Scraper for Top Ads
Collect ranked public TikTok Creative Center Top Ads and trending hashtags for creative and competitor research. Choose a market, time window, CTR ranking, and useful filters, then save structured rows with source links and public metrics.
Pricing
from $1.25 / 1,000 top ads
Rating
0.0
(0)
Developer
Maxime Dupré
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
🎯 Public TikTok Creative Center research for marketers
This TikTok Creative Center scraper helps marketing teams, creative researchers, and competitor analysts collect ranked public TikTok Creative Center Top Ads and trending hashtags. Choose a market and time window, rank Top Ads by CTR, and save source links, creative details, public performance data, and hashtag popularity in an Apify Dataset. Public Creative Center access does not require a user-supplied source credential.
- Compare ranked public ads by market and time window with TikTok Top Ads.
- Review public ad creative and performance fields for campaign research with TikTok Ad Examples.
- Track ranked hashtag names, categories, and popularity signals with TikTok Trending Hashtags.
- Plan hashtag-focused Creative Center research with TikTok Hashtag Research.
- Explore both supported result types in one public data workflow with TikTok Creative Center.
📊 Public Top Ads and Trending Hashtags
Each Dataset row represents one eligible public Creative Center result. Top Ads rows can include source identity, caption, rank, market, creative details, public performance values, media links, landing-page context, and target countries. Trending hashtag rows can include rank, market, category, public video and view counts, and source or analytics links. Optional fields appear only when TikTok provides them, and unavailable source values are not invented.
▶️ Run a Focused TikTok Creative Center Collection
- Choose
Top AdsorTrending hashtagsinresultType. - For Top Ads, choose a ranking signal and add any matching keyword, industry, objective, language, format, or likes filter.
- Choose the
marketandtimeWindow. SetmaxItemswhen you want to stop after a chosen number of returned rows. - Start the Actor and open the
resultslink to review the Dataset.
The Actor uses public Creative Center surfaces and does not require a user-supplied source credential.
⚙️ Input
Choose one public result type. Filters for the other result type are ignored.
Input fields
| Field | Type | What it does |
|---|---|---|
resultType | string: topAds or trendingHashtags | Chooses ranked public Top Ads or ranked public trending hashtags. |
topAdsRanking | string: ctr, engagement, impressions, conversion, viewRate, or forYou | Chooses the signal used to rank Top Ads. |
topAdsKeyword | optional string | Searches Top Ads with one brand or product keyword. Leave it empty for all keywords. |
topAdsIndustry | optional string | Filters Top Ads by one Creative Center industry value. Leave it empty for all industries. |
topAdsObjective | optional string | Filters Top Ads by one campaign objective value. Leave it empty for all objectives. |
topAdsLanguage | optional string | Filters Top Ads by one ad language value. Leave it empty for all languages. |
topAdsFormat | string: all, spark, or nonSpark | Chooses whether Top Ads can include all formats, Spark ads, or non-Spark ads. |
topAdsLikesBand | optional string | Filters Top Ads by one source likes band, such as 10K-100K. Leave it empty for all bands. |
trendingHashtagCategory | optional string | Filters trending hashtags by one industry or category. Leave it empty for all categories. |
market | string | Sets the Creative Center market, such as US. |
timeWindow | string: 7d or 30d | Sets the lookback window for Top Ads or trending hashtags. |
maxItems | optional integer, minimum 1 | Stops after this many returned rows. Leave it empty to return all available results until the public source is exhausted. |
Example input
This is the public input from a successful current-beta default-input run.
{"resultType": "topAds","topAdsRanking": "ctr","topAdsFormat": "all","market": "US","timeWindow": "30d","maxItems": 25}
🧾 Output
The run output exposes a link to the successful Dataset.
Run output
| Field | Type | What it does |
|---|---|---|
results | URL string | Opens the successful Creative Center results in the default Dataset view. |
Top Ads rows
| Field | Type | What it does |
|---|---|---|
resultType | string | Identifies this row as topAds. |
adId | string | Source identifier for the Top Ad. |
rank | integer | Rank reported by the public source. |
market | string | Creative Center market reported for the row. |
caption | string | Source caption for the Top Ad. |
industry | string | Source industry when available. |
campaignObjective | string | Source campaign objective when available. |
videoDurationSeconds | number | Source video duration in seconds when available. |
videoDimensions | object | Video dimensions when available. |
videoDimensions.width | integer | Video width in pixels. |
videoDimensions.height | integer | Video height in pixels. |
advertiser | object | Advertiser identity when available. |
advertiser.name | string | Advertiser or brand name. |
performance | object | Public performance values reported for the Top Ad. |
performance.ctr | number | Source-reported click-through rate. |
performance.likes | integer | Source-reported like count. |
performance.comments | integer | Source-reported comment count. |
performance.shares | integer | Source-reported share count. |
performance.relativeCost | number | Relative cost signal reported by the source. |
media | object | Source-hosted media links. |
media.coverImageUrl | URL string | Direct source URL for the ad cover image. |
media.videoUrl | URL string | Main direct source URL for the ad video. |
media.alternateVideoUrls | array of URL strings | Direct source URLs for other available video resolutions. |
landingPage | object | Landing-page context when available. |
landingPage.url | URL string | Public landing-page URL. |
landingPage.title | string | Landing-page title when available. |
targetCountries | array of strings | Countries targeted by the Top Ad when reported. |
hashtags | array of strings | Hashtags in the Top Ad creative when exposed. |
mentions | array of strings | Mentions in the Top Ad creative when exposed. |
sourceUrl | URL string | Public Creative Center source URL for the row. |
This complete row is from a successful current-beta default-input run.
{"resultType": "topAds","adId": "7449696075790336017","rank": 1,"market": "US","caption": "Hardcore Gamer? Entropia is a Real Cash Economy MMO, meaning every item has a real world value.","industry": "label_23125000000","campaignObjective": "campaign_objective_traffic","videoDurationSeconds": 23.546,"videoDimensions": {"width": 720,"height": 1280},"advertiser": {"name": "EntropiaUniverseOfficial"},"performance": {"ctr": 0.03,"likes": 904,"comments": 1,"shares": 12,"relativeCost": 2},"media": {"coverImageUrl": "https://p16-common-sign.tiktokcdn.com/tos-alisg-p-0051c001-sg/o8CbbeGNEWGelWDDIQEJoo1IBKVLIGVTDQAALf~tplv-noop.image?dr=18692&refresh_token=acecf39f&x-expires=1790129594&x-signature=ZvSocHVBWXToKIRV7VZ4hFEG1RM%3D&t=9276707c&ps=14f1eb3e&shp=9e36835a&shcp=317596d8&idc=my2&VideoID=v14033g50000da439enog65la0i39vig","videoUrl": "https://v16m-default.tiktokcdn.com/77a29cbb2b09e41fcef6f1644fd3f923/6ab335ba/video/tos/alisg/tos-alisg-ve-0051c001-sg/owxZQgEfXGAnRoIgZULODbOgbGDAMC9xIZeeFI/?a=0&bti=NTU4QDM1NGA%3D&&bt=1460&ft=cApXJCz7ThWHJUhHLGZmo0P&mime_type=video_mp4&rc=NzM5OTs0ZWloNTY8NDszZ0Bpank2M285cmg2ZDMzODYzNEBjNS4vLzBfXzUxYWBfNTQuYSNmNmZeMmRrNjFhLS1kMDFzcw%3D%3D&vvpl=1&l=20260923041251D0538D8FBBB0CACB24BE&btag=e000b8000","alternateVideoUrls": ["https://v16m-default.tiktokcdn.com/9f85b9db2bd0cc80b8d7a87fab8664b0/6ab335ba/video/tos/alisg/tos-alisg-ve-0051c001-sg/ogMIiAAihIBzxmQwvSBsmGEVXCoVBfMAo0Uz0i/?a=0&bti=NTU4QDM1NGA%3D&&bt=2792&ft=cApXJCz7ThWHJUhHLGZmo0P&mime_type=video_mp4&rc=OjY6OTo6ODdmZ2Q1ZmYzM0Bpank2M285cmg2ZDMzODYzNEBeNDUtYS4yXjAxNTUzMy9jYSNmNmZeMmRrNjFhLS1kMDFzcw%3D%3D&vvpl=1&l=20260923041251D0538D8FBBB0CACB24BE&btag=e000b8000","https://v16m-default.tiktokcdn.com/78500cc25b801d8f4a8fc8339bd1ff7f/6ab335ba/video/tos/alisg/tos-alisg-ve-0051c001-sg/oARVGzQCIimMuWBAVozBiBzAsE20ohdfwAviFm/?a=0&bti=NTU4QDM1NGA%3D&&bt=506&ft=cApXJCz7ThWHJUhHLGZmo0P&mime_type=video_mp4&rc=ZzZkNDc6NTo4Ojs1MzU7ZUBpank2M285cmg2ZDMzODYzNEA1MmAyYTMwNjQxNGM2Xl4tYSNmNmZeMmRrNjFhLS1kMDFzcw%3D%3D&vvpl=1&l=20260923041251D0538D8FBBB0CACB24BE&btag=e000b8000","https://v16m-default.tiktokcdn.com/eb50e5bcd13d840a9330ad662f560756/6ab335ba/video/tos/alisg/tos-alisg-ve-0051c001-sg/o4AJABzzoiVQCmKEGCifAiosdBzvvVIzm1hM0w/?a=0&bti=NTU4QDM1NGA%3D&&bt=747&ft=cApXJCz7ThWHJUhHLGZmo0P&mime_type=video_mp4&rc=Ozw6Z2UzZTo0ZmU7Mzg4aEBpank2M285cmg2ZDMzODYzNEBhLS9gLl42X18xNl8tXjMvYSNmNmZeMmRrNjFhLS1kMDFzcw%3D%3D&vvpl=1&l=20260923041251D0538D8FBBB0CACB24BE&btag=e000b8000","https://v16m-default.tiktokcdn.com/a30f5a6c768c53b539ae7f42ffc2ca70/6ab335ba/video/tos/alisg/tos-alisg-ve-0051c001-sg/oMmzoz3BfAAAQ0BVBz9iGvEwMimsVsIChoiIAC/?a=0&bti=NTU4QDM1NGA%3D&&bt=995&ft=cApXJCz7ThWHJUhHLGZmo0P&mime_type=video_mp4&rc=Z2VoZTlnNDZmaDU2NzVkOUBpank2M285cmg2ZDMzODYzNEBgLjU1YzMyXy0xMTUwLjY0YSNmNmZeMmRrNjFhLS1kMDFzcw%3D%3D&vvpl=1&l=20260923041251D0538D8FBBB0CACB24BE&btag=e000b8000"]},"landingPage": {"url": "https://www.entropiauniverse.com/?ccode=tiktok&utm_source=tiktok&utm_medium=paid","title": "Entropia Universe - The Ultimate MMO Experience"},"targetCountries": ["GB","US","FR","DE","PL","SE","IE","BE","NO","HU","FI","DK","RO"],"sourceUrl": "https://ads.tiktok.com/business/creativecenter/topads/7449696075790336017/pc/en?countryCode=US&period=30"}
Trending hashtag rows
| Field | Type | What it does |
|---|---|---|
resultType | string | Identifies this row as trendingHashtags. |
hashtag | string | Source name of the trending hashtag. |
rank | integer | Rank reported by the public source. |
market | string | Creative Center market reported for the row. |
category | string | Source category for the trending hashtag. |
popularity | object | Public popularity metrics for the hashtag. |
popularity.videoCount | integer | Source-reported number of public videos for the hashtag. |
popularity.viewCount | integer | Source-reported public view count for the hashtag. |
sourceUrl | URL string | Public source URL for the hashtag. |
analyticsUrl | URL string | Public analytics URL when available. |
This complete row is from a successful current-beta trending-hashtag run.
{"resultType": "trendingHashtags","hashtag": "securepayeveryday","rank": 1,"market": "US","category": "14000000000","popularity": {"videoCount": 51580,"viewCount": 52239570},"sourceUrl": "https://ads.tiktok.com/creative/creativeCenter/trends/hashtag/7619137204643856414?region=US&period=30","analyticsUrl": "https://ads.tiktok.com/creative/creativeCenter/trends/hashtag/7619137204643856414?region=US&period=30"}
💳 Pricing
This Actor uses pay-per-event pricing. A primary event covers one successfully returned public row of its matching type. Current tier prices are shown in the Apify pricing panel.
| Event | What it covers |
|---|---|
Top Ad | One public Top Ad saved to your Dataset. |
Trending Hashtag | One public trending hashtag with its available trend metrics saved to your Dataset. |
🔌 Integrations
Open the results link in Apify, use the default Dataset API, or export the saved rows in a standard Apify format.
❓ FAQ
Which public data can I collect?
Choose ranked public Top Ads or ranked public trending hashtags. Top Ads can include creative, performance, media, landing-page, and targeting fields. Hashtag rows can include category, popularity, and source links.
Do I need a TikTok account or API key?
No. This Actor uses public Creative Center surfaces and does not require a user-supplied source credential.
How are Top Ads ranked?
CTR is the default ranking signal. The input also offers engagement, impressions, conversion, view rate, and For You choices for the selected Top Ads collection.
Can one run collect both result types?
No. Choose one resultType per run. Filters for the other result type are ignored.
What happens when TikTok does not provide a field?
Optional fields are omitted from that row. The Actor keeps source values as available and does not create replacement values.
What does an empty maxItems value do?
Leaving maxItems empty returns all available results until the public source is exhausted.
Are the media and source links permanent?
They are source-hosted links, so the source may change or expire them. The Actor does not promise long-term media storage.
Can one run combine several independently configured ad searches?
No. A run uses one selected result type and one set of input filters.
📝 Changelog
v0.0 (22-09-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 Keywords Discovery Tool - Expand hashtag and keyword research before selecting a market.
- TikTok Hashtag Search Scraper - Review public hashtag metrics for campaign planning.
- TikTok Shop Trending Products - Add TikTok Shop trend signals to product research.
- TikTok Creative Center Top Ads Scraper - Compare a separate public Top Ads workflow for creative research.
- TikTok Ads Scraper - Creative Center Top Ads Data, No API Key - Review another Creative Center Top Ads collection when comparing ad data.
Made with ❤️ by Maxime Dupré