Tiktok Creative Center Scraper avatar

Tiktok Creative Center Scraper

Pricing

from $1.40 / 1,000 fetches

Go to Apify Store
Tiktok Creative Center Scraper

Tiktok Creative Center Scraper

Scrape TikTok Creative Center Top Ads and trends in one Actor. Search ads by brand or product keyword, extract ad analytics, keyframes, percentile benchmarks, and recommendations, or collect trending hashtags, hashtag analytics, and trending videos for creative and competitor research.

Pricing

from $1.40 / 1,000 fetches

Rating

5.0

(1)

Developer

doliz

doliz

Maintained by Community

Actor stats

14

Bookmarked

1.2K

Total users

114

Monthly active users

15 days

Issues response

2 hours ago

Last modified

Share

中文 README

TikTok Creative Center Scraper extracts official Top Ads and TikTok trends as structured JSON. Search ads by brand or product keyword, analyze ad performance and creative keyframes, or collect trending hashtags, hashtag analytics, and trending videos for creative and competitor research.

Start Now (On Apify)

What can you scrape from TikTok Creative Center?

  • TikTok Top Ads: search ads by brand or product keyword, filter by region, industry, objective, period, language, format, and likes, and sort by a performance metric.
  • Ad analytics: retrieve ad detail analytics, keyframe performance, percentile benchmarks, and related ad recommendations.
  • TikTok trends: collect ranked trending hashtags, hashtag analytics, popularity curves, and trending videos with region, period, and content-tag filters plus performance sorting.
  • Automation-ready output: export official responses as structured Dataset items for dashboards, creative intelligence, competitive monitoring, and scheduled market research.

The Actor calls TikTok Creative Center backend APIs directly instead of automating the browser UI. One Actor covers Top Ads Dashboard, Top Ads Spotlight, Ad Analytics, Ad Keyframe, Ad Percentile, Ad Recommend, Trending Hashtags, Hashtag Analytics, and Trending Videos.

How to scrape TikTok Creative Center data

  1. Open the Actor on Apify and choose a Top Ads or trends target.
  2. Add cookies from an account that can access TikTok Creative Center.
  3. Set the target-specific filters. For Top Ads Dashboard, dashboard_search accepts a brand or product keyword.
  4. Run the Actor and export the Dataset as JSON, CSV, Excel, XML, or through the Apify API.

TikTok Creative Center scraper use cases

  • Find high-performing TikTok ads by market, industry, objective, language, or keyword.
  • Benchmark ad creative performance with CTR, keyframe, and percentile data.
  • Track trending hashtags and trending videos for content and campaign planning.
  • Build recurring creative-intelligence and competitor-research datasets without manual UI work.

TikTok Creative Center scraper FAQ

Can I search TikTok Creative Center with a keyword?

Yes. The Top Ads Dashboard dashboard_search input accepts a brand or product keyword. Trending Hashtags follows the current official page filters and does not expose a free-text hashtag search.

The Actor supports the current official Trending Hashtags, Hashtag Analytics, and Trending Videos surfaces. It does not claim support for discontinued Creative Center song or creator rankings.

Does the Actor require login cookies?

Yes. The supported official endpoints currently require TikTok Creative Center cookies. Cookies are marked as a secret in the Actor input, so Apify stores them encrypted and masks them in the Console.

📝 Creative Center Update & Migration Notes

TikTok has refocused and reworked parts of Creative Center. This Actor follows the current official scope and supports the Top Ads workflow plus the current Creative Center Hashtag trends page.

First, review the target-level changes:

StatusTargetCurrent user impact
Changedtop_ads_dashboarddashboard_region now exposes the 28 regions currently shown by Top Ads Dashboard. The existing array input and multi-region behavior are unchanged. Saved values outside the current list must be replaced.
Supportedtop_ads_spotlight, ad_analytics, ad_keyframe, ad_percentile, ad_recommendThese Top Ads targets remain selectable and keep their existing usage flow.
Restored / Changedtrending_hashtags, hashtag_analyticsThese target names are selectable again, but they now follow the current official Hashtag trends page instead of the old 0.1.0 hashtag pages.
Restored / Changedtrending_videosThe familiar target and videos_* inputs are restored on TikTok's current CreativeOne/Report protocol. Current filters and output replace the removed legacy protocol.
Removedkeyword_insights, keyword_insights_videos, keyword_insights_examples, keyword_insights_related, creative_insights, top_products, trending_songs_popular, trending_songs_breakout, song_analytics, trending_creatorsThese former Creative Center targets are no longer selectable. Saved/API inputs using them are rejected before any upstream request or charge.

For hashtag users upgrading from Actor 0.1.0, review the target-specific input and output changes below. The goal is to match only the controls visible on the current official Hashtag trends page, so some old inputs were removed rather than kept as hidden/internal options.

StatusTarget0.1.0 input or behaviorCurrent behavior
Removedtrending_hashtagshashtags_search searched by hashtag text.Removed because the current official page does not expose a hashtag search filter.
Removedtrending_hashtagshashtags_new_to_top_100 filtered newly ranked hashtags.Removed because the current official page does not expose this filter.
Changedtrending_hashtagshashtags_period accepted 7, 30, 120.Now accepts 7, 30, 90, shown as Last 7 days, Last 30 days, Last 90 days.
Changedtrending_hashtagshashtags_limit allowed up to 60.Now allows up to 20, matching the current official page request size.
Changedtrending_hashtagsThe old list output used code / msg / data.list.The list output follows the current official API response, with fields such as BaseResp, items, pagination, hashtagID, and popularityCurve.
Renamedhashtag_analyticshashtag_analytics_hashtag_name used a hashtag name such as hoco.Replaced by hashtag_analytics_hashtag_id, obtained from a Trending Hashtags result or the official analytics page URL.
Changedhashtag_analyticshashtag_analytics_country could be empty for All regions.Now uses a specific country or region, defaulting to United States.
Changedhashtag_analyticshashtag_analytics_period accepted 7, 30, 120, 365, 1095.Now accepts 7, 30, 90, matching the current official page.
Changedhashtag_analyticsThe old detail output used code / msg / data.info.The detail output follows the current official API response, with fields such as BaseResp, hashtagID, popularityCurve, profile data, and video detail fields.
Unchangedtrending_hashtags, hashtag_analyticsPricing was 0.002$ / item for Trending Hashtags and 0.002$ / time for Hashtag Analytics.Pricing is unchanged.
Changedtrending_videosThe old target used /creative_radar_api/v1/popular_trend/list, 25 countries, and vv / like / comment / repost sorting.The revived target uses the current CreativeOne/Report protocol, US/JP/VN/TH/ID, current content tags, and views/engagement/6-second-view sorting. vv remains the views value; old saved sort/country values outside the current options must be updated.

💡 Best practices

This Actor operates by directly accessing TikTok's backend API. Please be aware that TikTok imposes undisclosed rate limits on its API. To ensure stable operation and avoid your requests being throttled, we strongly recommend following these best practices:

💡 Utilize Multiple Accounts (Cookies):

By providing a pool of account cookies, and rotate through them for different requests. This effectively distributes the request load and significantly reduces the risk of any single account being rate-limited due to high traffic.

💡 Limit the number of concurrent requests

For time-synchronized data, if a large number of API interfaces are called at the same time, the request may be throttled.

In this case, you can implement Rate Limiting on the client side, to control the number of concurrent requests. An example is the Token Bucket Algorithm. Tokens are issued according to the rate limit rules (for example, 10 tokens are issued per second). Before making a request, try to obtain the token, if there are no token currently available, wait for a period of time, then try again.

A more robust implementation is to use Message Queuing. The timing script is not directly responsible for requesting the API, but uses a producer-consumer Model. Push the requested task to the message queue, and a dedicated consumer takes the task from the queue for consumption (through an API request). You can limit the number of concurrent users by limiting the number of concurrent consumers for a certain type of task or using a rate limit. Tasks that fail to execute, can be pushed back into the queue (and set a certain delay) to retry.

⚙️ Input Configuration

⚙️ Main

  • Target target: (Required) Select the data source. Your choice determines which settings below are used.

    One of Top Ads Dashboard, Top Ads Spotlight, Ad Analytics, Ad Keyframe, Ad Percentile, Ad Recommend, Trending Hashtags, Hashtag Analytics, Trending Videos.

  • Cookies cookies: (Required) Your authentication cookie after logging into the TikTok Creative Center platform. Way to obtain:

    For most targets, after a successful request returns one to three usable results, the Actor performs one non-billable Cookie check after charging and before writing the Dataset item. Trending Videos uses a four-item threshold because TikTok's public preview contains four items; that exact preview is checked before charging so confirmed invalid-Cookie preview data is not billed. A definitive result is attached to the item; an inconclusive check is silent and never changes valid business data, its charge, or a successful Run. Results above the target-specific threshold skip the check.


⚙️ Top Ads Dashboard Settings

These settings are only used when the Target is set to Top Ads Dashboard.

  • Keyword dashboard_search: (Optional) Search by brand or product keywords.
  • Region dashboard_region: (Optional) Filter by one or more of the 28 regions currently shown in Top Ads Dashboard. The array input preserves the selected order. Options
  • Industry dashboard_industry: (Optional) Filter ads by one or more industries. Options
  • Objective dashboard_objective: (Optional) Filter ads by their campaign marketing objective. Options
  • Period dashboard_period: (Required) Filter ads by their publication period. Options
  • Ad language dashboard_ad_language: (Optional) Filter ads by the language used in the creative. Options
  • Ad format dashboard_ad_format: (Optional) Filter by ad format. 'Spark ads' use organic posts; 'Non-Spark ads' are traditional.
  • Likes dashboard_likes: (Optional) Filter ads by the percentile range of likes received. Options
  • Sort by dashboard_sort_by: (Required) Select the metric for sorting the ad results.
  • Page dashboard_page: (Required) Page number.
  • Limit dashboard_limit: (Required) Page size.

⚙️ Top Ads Spotlight Settings

These settings are only used when the Target is set to Top Ads Spotlight.

  • Industry spotlight_industry: (Optional) Filter ads by one or more industries for Spotlight. Options
  • Page spotlight_page: (Required) Page number.
  • Limit spotlight_limit: (Required) Page size.

⚙️ Ad Analytics Settings

These settings are only used when the Target is set to Ad Analytics.

  • Material id ad_analytics_material_id: (Required) Obtain from the result of Top Ads Dashboard or Top Ads Spotlight.

⚙️ Ad Keyframe Settings

These settings are only used when the Target is set to Ad Keyframe.

  • Material id ad_keyframe_material_id: (Required) Obtain from the result of Top Ads Dashboard or Top Ads Spotlight.
  • Metric ad_keyframe_metric: (Required) Select specific keyframe metric to retrieve. Options.

⚙️ Ad Percentile Settings

These settings are only used when the Target is set to Ad Percentile.

  • Material id ad_percentile_material_id: (Required) Obtain from the result of Top Ads Dashboard or Top Ads Spotlight.
  • Metric ad_percentile_metric: (Required) Select specific percentile metric to retrieve. Options.
  • Period ad_percentile_period: (Required) Define the time frame for the percentile data.

⚙️ Ad Recommend Settings

These settings are only used when the Target is set to Ad Recommend.

  • Material id ad_recommend_material_id: (Required) Obtain from the result of Top Ads Dashboard or Top Ads Spotlight.
  • Industry ad_recommend_industry: (Required) Industry for recommend ads. Options
  • Country ad_recommend_country: (Required) Country for recommend ads. Options

These settings are only used when the Target is set to Trending Hashtags.

  • Country hashtags_country: (Required) Filter by country or region. Options
  • Time period hashtags_period: (Required) Filter by the website time range: Last 7 days, Last 30 days, or Last 90 days.
  • Industry hashtags_industry: (Optional) Filter by one official website industry. Choose All Industries to omit the industry filter. Options
  • Page hashtags_page: (Required) Page number.
  • Limit hashtags_limit: (Required) Page size.

⚙️ Hashtag Analytics Settings

These settings are only used when the Target is set to Hashtag Analytics.

  • Hashtag ID hashtag_analytics_hashtag_id: (Required) Obtain from a Trending Hashtags result or from the official hashtag analytics page URL.
  • Country hashtag_analytics_country: (Required) Filter by country or region. Options
  • Time period hashtag_analytics_period: (Required) Filter by the website time range: Last 7 days, Last 30 days, or Last 90 days.

These settings are only used when the Target is set to Trending Videos.

  • Country videos_country: (Required) US, JP, VN, TH, or ID.
  • Period videos_period: (Required) Last 7 days or Last 30 days.
  • Video content tags videos_content_tags: (Optional) Select one or more of the current Beauty & Care, Fashion, Food & Beverage, Lifestyle & Leisure, and Technology & Finance tags.
  • Sort by videos_sort_by: (Required) vv, engagement, or six_seconds_vtr.
  • Page videos_page: (Required) The one page to fetch. The Actor does not paginate automatically.
  • Limit videos_limit: (Required) Page size from 1 to 100; the default is the verified API maximum of 100.

The Actor first obtains TikTok's latest daily reporting cutoff and then requests the selected page. Successful items are billed at 0.002$ / item. A four-item public preview returned for a Cookie that TikTok confirms is invalid is not billed.


📊 Output Structure

The Actor returns a dataset of items. The structure of each item depends on the target you selected.

NOTE: The following are sample structures. The actual output may contain more fields. Please refer to the output of a sample run for the exact schema.

Successful data and user-actionable warnings/errors both return Dataset output. Recognized TikTok outcomes such as rate limiting, invalid login, permission rejection, or an explicit network failure return one sanitized, non-chargeable item so API clients and downstream Actors can react automatically. Only successful responses containing usable data trigger fetch charges.

A post-success Cookie check never changes the successful business data or its charge. When TikTok definitively confirms the Cookie as valid or invalid, the existing Dataset item also includes machine-readable _actor.cookie_status and a sanitized _actor.message; inconclusive checks and results larger than the target's small-result threshold omit _actor. No extra Dataset item is created, and the check itself is not billed. The default threshold is three; Trending Videos uses four because TikTok's verified public preview contains four items.

{
"_actor": {
"cookie_status": "invalid",
"message": "TikTok reports that the supplied Creative Center cookies are invalid. Refresh the cookies before the next run."
}
}

📊 Top Ads Dashboard & Top Ads Spotlight

Industry identifiers are returned exactly as TikTok provides them. A response can therefore contain an industry_key such as label_14110000000 even when that identifier is not present in the current input options.

{
"code": 0,
"msg": "OK",
"request_id": "20251021141421A2ED3905E2130C3F1389",
"data": {
"materials": [
{
"ad_title": "※ネタバレ注意!今年も凄すぎる〜🎄✨#サボン #sabon #アドベントカレンダー #クリスマスコフレ #新作コスメ",
"brand_name": "",
"cost": 1,
"ctr": 0.93,
"favorite": false,
"id": "7559593149158670352",
"industry_key": "label_14104000000",
"is_search": true,
"like": 230,
"objective_key": "campaign_objective_reach",
"video_info": {
"vid": "v10025g50000d3i797vog65q5f4gnf60",
"duration": 24.219,
"cover": "https://p16-sign-sg.tiktokcdn.com/tos-alisg-p-0037/owkLvJdBKIKAKoEf6bEC8kB0QmMiiAPjAwOpdc~tplv-noop.image?t=9276707c&x-expires=1761048886&x-signature=A2dpK3MkBMV6K32G767F%2FbBdZPI%3D",
"video_url": {
"720p": "https://v16m-default.tiktokcdn.com/8949959c8a99b0e246d965c3f324134e/68f77936/video/tos/alisg/tos-alisg-pve-0037/o80Ko3tKPAvIjAiK6ALE8ryQFcBkw7f3hpgBiM/?a=0&bti=NTU4QDM1NGA%3D&ch=0&cr=0&dr=0&lr=tiktok_business&cd=0%7C0%7C1%7C0&cv=1&br=3496&bt=1748&cs=0&ds=3&ft=cApXJCz7ThWHdqtIEGZmo0P&mime_type=video_mp4&qs=0&rc=aDM7OjQ8Z2doNjZkPDg4M0BpM2lqaXQ5cjo6NjMzODgzNEBiYzI0MC00Xl4xLTAxYi0yYSMzazEyMmRzNmZhLS1kLy1zcw%3D%3D&vvpl=1&l=20251021141421A2ED3905E2130C3F1389&btag=e000b8000"
},
"width": 576,
"height": 1020
}
},
... /* omit */
],
"pagination": {
"has_more": true,
"page": 1,
"size": 20,
"total_count": 400
}
}
}

📊 Ad Analytics

{
"code": 0,
"msg": "OK",
"request_id": "202510211416202976DB5255AD7A58AD76",
"data": {
"ad_title": "apple is back",
"brand_name": "Starbucks",
"comment": 1,
"cost": 2,
"country_code": [
"US"
],
"ctr": 0.34,
"favorite": false,
"has_summary": false,
"highlight_text": "",
"id": "7558904828435202056",
"industry_key": "label_23116000000",
"is_search": false,
"keyword_list": null,
"landing_page": "https://starbucks.app.link/r0xeHOZ5VVb?%243p=a_tiktok&%7Ecustomer_placement=tiktok&%7Ecampaign=fy2526q4q1fallsocial&%7Ecreative_name=featuredmenu",
"like": 23116,
"objective_key": "campaign_objective_reach",
"objectives": [
{
"label": "campaign_objective_reach",
"value": 5
}
],
"pattern_label": [],
"share": 522,
"source": "TikTok Ads Manager",
"source_key": 1,
"video_info": {
"vid": "v10033g50000d3jaamfog65irh5pn29g",
"duration": 5.931,
"cover": "https://p16-sign-sg.tiktokcdn.com/tos-alisg-p-0051c001-sg/oA05SURcGgfsMNLqAuLFgLbzJCeeRbDQI5ASGz~tplv-noop.image?t=9276707c&x-expires=1761048985&x-signature=tk5EkZNf20ItC9IpWp4fcYe1z90%3D",
"video_url": {
"720p": "https://v16m-default.tiktokcdn.com/261e8ad48159561ab8ee4768e17f8d7d/68f77999/video/tos/alisg/tos-alisg-ve-0051c001-sg/okqEwcBJWE06i3bKvofAm3sFKyiY51BuAiATjI/?a=0&bti=NTU4QDM1NGA%3D&ch=0&cr=0&dr=0&lr=tiktok_business&cd=0%7C0%7C1%7C0&cv=1&br=1710&bt=855&cs=0&ds=3&ft=cApXJCz7ThWHrItIEGZmo0P&mime_type=video_mp4&qs=0&rc=aTg5MzdpPDRlPDY3NGk1PEBpajVza2w5cnBkNjMzODYzNEBfNl5hMTJgNS8xMi9jYDVhYSM2azJvMmRjXmdhLS1kMC1zcw%3D%3D&vvpl=1&l=202510211416202976DB5255AD7A58AD76&btag=e000b0000"
},
"width": 576,
"height": 1024
},
"voice_over": false
}
}

📊 Ad Keyframe

{
"code": 0,
"msg": "OK",
"request_id": "20251021141815AF6461D583D2AF415D03",
"data": {
"analysis": [
{
"second": 0,
"value": 0.013720197930724248
},
... /* omit */
{
"second": 6,
"value": 0.309604138551507
}
],
"duration": 7,
"highlight": [
1
]
}
}

📊 Ad Percentile

{
"code": 0,
"msg": "OK",
"request_id": "20251021173406B92FD6277A6134645863",
"data": {
"ctr_percentile": 0.48
}
}

📊 Ad Recommend

{
"code": 0,
"msg": "OK",
"request_id": "20251021175158CD9AD6F7297CA639BE2A",
"data": {
"materials": [
{
"ad_title": "an iced pumpkin cream chai the size of my body would probably cure me",
"brand_name": "Starbucks",
"cost": 2,
"ctr": 0.37,
"favorite": false,
"id": "7553372735096815634",
"industry_key": "label_23116000000",
"is_search": false,
"like": 28543,
"objective_key": "campaign_objective_reach",
"video_info": {
"vid": "v10033g50000d39g46nog65nq59ms5lg",
"duration": 6.434,
"cover": "https://p16-sign-sg.tiktokcdn.com/tos-alisg-p-0051c001-sg/oYANCrNTF0AJBIvuh4vAaAsUziYbViBEdUMG3~tplv-noop.image?t=9276707c&x-expires=1761061924&x-signature=FxWwVJmDyZhiNI0Rmgv%2FE8h8nlY%3D",
"video_url": {
"720p": "https://v16m-default.tiktokcdn.com/f1487176ecbcb22151720c68f8dc586d/68f7ac24/video/tos/alisg/tos-alisg-ve-0051c001-sg/oUAvN3NaACbUGBr0BhIoXA5DuEFUiVjMYWzMi/?a=0&bti=NTU4QDM1NGA%3D&ch=0&cr=0&dr=0&lr=tiktok_business&cd=0%7C0%7C1%7C0&cv=1&br=1976&bt=988&cs=0&ds=3&ft=cApXJCz7ThWHdwFIEGZmo0P&mime_type=video_mp4&qs=0&rc=NWc2NGVkNjk7OzY0OTk2aEBpajhwOHE5cjlqNjMzODYzNEAzNjRfNjAyXzUxMzRgXzY2YSNpcDZuMmRrMTZhLS1kMC1zcw%3D%3D&vvpl=1&l=20251021175158CD9AD6F7297CA639BE2A&btag=e000b0000"
},
"width": 576,
"height": 1024
}
},
... /* omit */
]
}
}

💰 Cost of Use & Pricing

Pricing model: Pay per event

The trigger logic of the event is the number of items that return the result.

TargetCost
Top Ads Dashboard0.002$ / item
Top Ads Spotlight0.002$ / item
Ad Analytics0.002$ / time
Ad Keyframe0.002$ / time
Ad Percentile0.002$ / time
Ad Recommend0.002$ / time
Trending Hashtags0.002$ / item
Hashtag Analytics0.002$ / time

Deprecated targets are rejected before any upstream request or charge.

📞 Support

If you encounter any issues or have feature requests, please use the Issues tab on the Actor's page in the Apify Console. Please provide a detailed description of the problem and the Run ID.

⚠️ Limitations and Disclaimers

  • This Actor is not an official TikTok product and is not affiliated with or endorsed by TikTok, Inc.
  • The structure of the TikTok Creative Center website and its internal APIs may change at any time.
  • Please use this Actor responsibly and in accordance with the Apify Terms of Service.