Tiktok One Scraper avatar

Tiktok One Scraper

Pricing

from $1.40 / 1,000 fetches

Go to Apify Store
Tiktok One Scraper

Tiktok One Scraper

Scrape TikTok One Top Ads and audience insights. Search ads by brand, product, or creative keyword; analyze ad metrics, creative approaches, and selling points; and discover audience demographics, popular or growing keywords, hashtags, and related videos.

Pricing

from $1.40 / 1,000 fetches

Rating

0.0

(0)

Developer

doliz

doliz

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

17 days ago

Last modified

Share

中文 README

TikTok One Scraper extracts official TikTok One creator discovery, Creator Profiles, Top Ads, and audience insights as structured JSON.

Start Now (On Apify)

What can you scrape from TikTok One?

  • Top Ads keyword search: find ads by brand, product, or creative keyword, then filter by industry, country, time range, objective, and likes percentile, and sort by a performance metric.
  • Creator discovery: search one explicit page with creator, performance, follower, commercial-readiness, and TikTok Shop performance filters.
  • Complete Creator Profiles: retrieve identity, pricing, overview, content performance, trends, videos, commercial performance, e-commerce, and audience demographics for up to 20 AIO Creator IDs.
  • Top Ads creative intelligence: collect overview metrics, Creative Approach formulas, Selling Point Analysis categories, top selling points, matching materials, and material details.
  • Audience insights and trends: for selected audience interests, extract demographics, popular, growing, new, or weekly-popular keywords and hashtags, plus related terms and videos.
  • Automation-ready output: export official TikTok One responses as structured Dataset items for dashboards, competitive monitoring, enrichment pipelines, and scheduled research.

The Actor calls TikTok One backend APIs directly instead of automating the browser UI. It covers Creator Search, Creator Profile, Top Ads Insight, Top Ads Library, and Custom User Insight.

How to scrape TikTok One data

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

TikTok One scraper use cases

  • Research competitors' high-performing TikTok ads and creative patterns.
  • Compare creative approaches, selling points, engagement, and view metrics by market or industry.
  • Discover growing audience keywords, hashtags, and related videos for content planning.
  • Build recurring ad-intelligence and audience-research datasets without manual UI work.

TikTok One scraper FAQ

Can I search TikTok Top Ads with a custom keyword?

Yes. The top_ads_library target exposes library_search_word, which accepts a brand, product, or creative keyword. Custom User Insight is different: its detail targets use keywords returned by custom_user_insight_keyword_list; they do not submit an arbitrary custom-audience report.

It covers TikTok One audience trends, including popular or growing keywords, hashtags, and related videos for selected audience interests. It does not claim general TikTok song, creator, or viral-video rankings. For official Creative Center trending hashtags and trending videos, use the TikTok Creative Center Scraper.

Does the Actor require login cookies?

Yes. TikTok One currently requires an authenticated account for these official surfaces. Cookies are marked as a secret in the Actor input, so Apify stores them encrypted and masks them in the Console.

💡 Best practices

This Actor operates by directly accessing TikTok One backend APIs. TikTok may apply undisclosed authentication checks and rate limits. To keep runs stable and avoid throttling, we strongly recommend the following best practices:

💡 Use valid TikTok One cookies

Use cookies from an account that can open the TikTok One Top Ads pages in a browser. If cookies are missing, expired, invalid, or blocked by TikTok, upstream requests may fail or return authentication errors.

💡 Utilize multiple accounts (cookies)

For frequent or high-volume scraping, provide a pool of account cookies and rotate through them for different requests. This distributes request load and reduces the risk of any single account being rate-limited.

💡 Limit the number of concurrent requests

For scheduled or bulk workflows, too many concurrent upstream requests may be throttled.

You can implement Rate Limiting on the client side. A common approach is the Token Bucket Algorithm: tokens are issued according to your rate limit rule, and each request must obtain a token before it starts.

A more robust implementation is to use Message Queuing. Push scraping tasks to a queue, let dedicated consumers process them, limit the number of concurrent consumers, and retry failed tasks later.

⚙️ Input Configuration

⚙️ Main

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

    One of creator_search, creator_profile, top_ads_insight, top_ads_insight_creative_approach, top_ads_insight_selling_point_analysis, top_ads_insight_top20_selling_points, top_ads_insight_formula_material_list, top_ads_insight_selling_point_material_list, top_ads_insight_material_detail, top_ads_library, top_ads_library_material_detail, custom_user_insight, custom_user_insight_ai_summary, custom_user_insight_demographic, custom_user_insight_keyword_list, custom_user_insight_hashtag_list, custom_user_insight_keyword_detail, custom_user_insight_hashtag_detail, custom_user_insight_keyword_videos, custom_user_insight_hashtag_videos, custom_user_insight_related_keywords.

  • Cookies cookies: (Required) Your authentication cookies after logging into TikTok One on ads.tiktok.com. Way to obtain:


⚙️ Creator Search Settings (creator_search)

Creator Search sends one comprehensive/keyword search request and returns matchedCreators, recommendedCreators, and pagination metadata. It never automatically loads another page or follows results into Creator Profile.

  • Search keyword creator_search_query: (Optional) Keyword, handle, nickname, bio topic, or content topic.
  • Page / limit creator_search_page, creator_search_limit: One explicit page; limit is 1 to 24.
  • Sort by creator_search_sort_by: Relevance, Followers, Median views, Engagement rate, or Collaboration score. Collaboration score is unavailable in EU TTP.
  • Creator filters: countries or regions, follower range, languages, recommendation tags, and expected rate.
  • Performance filters: median views, engagement rate, collaboration evaluation, and TikTok Shop GMV/GPM.
  • Follower filters: follower country, gender ratio, and age.
  • Commercial readiness: previous brand collaborations and Creator Manager status.

The website's separate Creator name-search mode performs multi-region fallback queries and TikTok-user enrichment. This Actor intentionally does not reproduce that hidden cross-query merge.


⚙️ Creator Profile Settings (creator_profile)

  • Creator IDs creator_ids: (Required) One to 20 AIO Creator IDs returned by creator_search.

The target resolves each Creator's data region and returns identity, pricing, overview metrics, default all-content performance, trends, recent/featured/branded videos, commercial performance, TikTok Shop data, and audience demographics. It does not paginate videos, fetch similar creators, or perform collaboration actions.

Every input ID produces the same Dataset envelope:

{
"query": {"field": "creatorID", "value": "7241559514216939521"},
"ok": true,
"response": {"aioCreatorID": "7241559514216939521"}
}

Unavailable IDs use ok: false with a sanitized error. Billing is one fetch per successful profile, not per internal request.


⚙️ Top Ads Insight Settings (top_ads_insight)

These settings are only used when Target is set to top_ads_insight.

  • Industry label insight_industry_label: (Required) Official industry label. Options
  • Country code insight_country_code: (Required) Official country or region filter. Leave empty for All. Options
  • Time range insight_time_range: (Required) Publication time range. Options
  • Sort by insight_order_field: (Required) Ranking metric used by related insight requests. Options

The top_ads_insight target mirrors the initial Top Ads Insight page load. It returns overview metrics, Creative Approach formulas, Selling Point Analysis categories, and Top 20 selling points for the first categories returned by TikTok One.


⚙️ Top Ads Insight - Creative Approach Settings (top_ads_insight_creative_approach)

These settings are only used when Target is set to top_ads_insight_creative_approach.

  • Industry label insight_creative_industry_label: (Required) Official industry label. Options
  • Country code insight_creative_country_code: (Required) Official country or region filter. Leave empty for All. Options
  • Time range insight_creative_time_range: (Required) Publication time range. Options
  • Sort by insight_creative_order_field: (Required) Ranking metric. Options

Use formulaList[].id from this target as insight_formula_material_formula_id when fetching Creative Approach materials.


⚙️ Top Ads Insight - Selling Point Analysis Settings (top_ads_insight_selling_point_analysis)

These settings are only used when Target is set to top_ads_insight_selling_point_analysis.

  • Industry label insight_selling_industry_label: (Required) Official industry label. Options
  • Country code insight_selling_country_code: (Required) Official country or region filter. Leave empty for All. Options
  • Time range insight_selling_time_range: (Required) Publication time range. Options
  • Sort by insight_selling_order_field: (Required) Ranking metric. Options

Use SellingPoints[].categoryName from this target as insight_top20_category when fetching Top 20 selling points.


⚙️ Top Ads Insight - Top 20 Selling Points Settings (top_ads_insight_top20_selling_points)

These settings are only used when Target is set to top_ads_insight_top20_selling_points.

  • Industry label insight_top20_industry_label: (Required) Official industry label. Options
  • Country code insight_top20_country_code: (Required) Official country or region filter. Leave empty for All. Options
  • Time range insight_top20_time_range: (Required) Publication time range. Options
  • Sort by insight_top20_order_field: (Required) Ranking metric. Options
  • Category insight_top20_category: (Required) Use SellingPoints[].categoryName from top_ads_insight_selling_point_analysis.

⚙️ Top Ads Insight - Creative Approach Materials Settings (top_ads_insight_formula_material_list)

These settings are only used when Target is set to top_ads_insight_formula_material_list.

  • Industry label insight_formula_material_industry_label: (Required) Official industry label. Options
  • Country code insight_formula_material_country_code: (Required) Official country or region filter. Leave empty for All. Options
  • Time range insight_formula_material_time_range: (Required) Publication time range. Options
  • Sort by insight_formula_material_order_field: (Required) Ranking metric. Options
  • Formula ID insight_formula_material_formula_id: (Required) Use formulaList[].id from top_ads_insight_creative_approach.
  • Page insight_formula_material_page: (Required) Page number.
  • Limit insight_formula_material_limit: (Required) Number of records per page. Valid range: 1 to 10000.

Use itemList[].materialID from this target as insight_detail_material_id when fetching a Top Ads Insight material detail.


⚙️ Top Ads Insight - Selling Point Analysis Materials Settings (top_ads_insight_selling_point_material_list)

These settings are only used when Target is set to top_ads_insight_selling_point_material_list.

  • Industry label insight_selling_material_industry_label: (Required) Official industry label. Options
  • Country code insight_selling_material_country_code: (Required) Official country or region filter. Leave empty for All. Options
  • Time range insight_selling_material_time_range: (Required) Publication time range. Options
  • Sort by insight_selling_material_order_field: (Required) Ranking metric. Options
  • Selling point insight_selling_material_selling_point: (Required) Use SellingPoints[].sellingPointName from top_ads_insight_top20_selling_points.
  • Page insight_selling_material_page: (Required) Page number.
  • Limit insight_selling_material_limit: (Required) Number of records per page. Valid range: 1 to 10000.

Use itemList[].materialID from this target as insight_detail_material_id when fetching a Top Ads Insight material detail.


⚙️ Top Ads Insight - Material Detail Settings (top_ads_insight_material_detail)

These settings are only used when Target is set to top_ads_insight_material_detail.

  • Insight material ID insight_detail_material_id: (Required) Use itemList[].materialID from top_ads_insight_formula_material_list or top_ads_insight_selling_point_material_list.

⚙️ Top Ads Library Settings (top_ads_library)

These settings are only used when Target is set to top_ads_library.

  • Industry labels library_industry_label_list: (Optional) Industry label IDs. Select one or more values; leave empty for all industries. Multiple values are sent as one native filter request. Options
  • Country code library_country_code: (Optional) Country or region code. Leave empty for all countries and regions. Options
  • Time range library_time_range: (Required) Publication time range. Options
  • Search word library_search_word: (Optional) Search by brand, product, or creative keyword.
  • Objective library_objective: (Optional) Campaign objective. Leave empty for all objectives. Options
  • Likes percentile library_like_cnt_filter: (Optional) Like count percentile filter. Leave empty for all percentiles. Options
  • Sort by library_order_field: (Required) Metric used to sort results. Options
  • Page library_page: (Required) Page number.
  • Limit library_limit: (Required) Number of records per page. Valid range: 1 to 50.

Use itemList[].materialID from this target as library_material_id when fetching a Top Ads Library material detail.


⚙️ Top Ads Library - Material Detail Settings (top_ads_library_material_detail)

These settings are only used when Target is set to top_ads_library_material_detail.

  • Material ID library_material_id: (Required) Use itemList[].materialID from top_ads_library.

⚙️ Custom User Insight Settings (custom_user_insight*)

These settings are used when Target starts with custom_user_insight.

  • Interests custom_user_insight_interest: (Required) Official interest label. Options
  • Age custom_user_insight_age: (Optional) Audience age filters. Leave empty for all ages. Options
  • Gender custom_user_insight_gender: (Optional) Audience gender filters. Leave empty for all genders. Options
  • Language custom_user_insight_language: (Optional) Audience language filters. Leave empty for all languages. Options
  • Region custom_user_insight_region: (Optional) Audience region filters. Leave empty for all regions. Options
  • Rank type custom_user_insight_rank_type: (Required for keyword and hashtag lists/details) One of Most popular, Growing, Top new, or Weekly popular.
  • Keyword category custom_user_insight_keyword_category: (Optional for keyword list) All, Brand, or Product.
  • TikTok trending topics custom_user_insight_is_related: (Optional) Use the TikTok trending topics tab instead of the selected audience interest tab.
  • Keyword custom_user_insight_keyword: (Required for keyword detail, keyword videos, and related keywords) Use keywordList[].keyword from custom_user_insight_keyword_list.
  • Hashtag custom_user_insight_hashtag: (Required for hashtag detail and hashtag videos) Use hashtagList[].hashtagName from custom_user_insight_hashtag_list.
  • Video sort by custom_user_insight_video_order_field: (Required for keyword and hashtag videos) Video views or Likes.
  • Video region custom_user_insight_video_region: (Optional for keyword and hashtag videos) Video country or region filters. Options

The custom_user_insight target mirrors the initial Custom User Insight page load. It returns AI summary, audience demographic, keyword list, and hashtag list responses. If one panel is temporarily unavailable, successful panels are preserved and the response includes a sanitized partialErrors entry. Follow-up targets expose the page's detail drawer, related keywords, and related videos.


📊 Output Structure

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

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


📊 Top Ads Insight (top_ads_insight)

{
"dataInsight": {
"BaseResp": {
"StatusCode": 0,
"StatusMessage": ""
},
"clickRate": 0.01861966174097709,
"engagementRate": 0.004667982359031695,
"videoView": "2923411862",
"videoView6sRate": 0.13300873819879164
},
"creativeApproach": {
"BaseResp": {
"StatusCode": 0,
"StatusMessage": ""
},
"formulaList": [
{
"clickRate": 0.01532804205489521,
"content": [
"Function/Attribute",
"Physical product/Commodity",
"Applicable Scenarios",
"Target Audience"
],
"engagementRate": 0.003626492592307972,
"id": "[Function/Attribute, Physical product/Commodity, Applicable Scenarios, Target Audience]",
"postNumPct": 0.10424275523091102,
"videoView": "725058423",
"videoView6sRate": 0.1357802376705856
},
... /* omit */
]
},
"sellingPointAnalysis": {
"category": {
"BaseResp": {
"StatusCode": 0,
"StatusMessage": ""
},
"SellingPoints": [
{
"categoryName": "Target Audience",
"clickRate": 0.015131855660077015,
"clickRateWow": -0.021820344372670414,
"engagementRate": 0.006421364107410872,
"engagementRateWow": 0.037459146764485536,
"postNumPct": 0.8560120182585081,
"sellingPointName": "",
"videoView": "7085131950",
"videoView6sRate": 0.12949835648438418,
"videoView6sRateWow": -0.013653260524311877,
"videoViewWow": 0.47982782334909313
},
... /* omit */
]
},
"top20SellingPoints": [
{
"BaseResp": {
"StatusCode": 0,
"StatusMessage": ""
},
"SellingPoints": [
{
"categoryName": "Target Audience",
"clickRate": 0.013211661428313998,
"clickRateWow": -0.04245137306068203,
"engagementRate": 0.0031889771656263264,
"engagementRateWow": -0.06709534547129498,
"postNumPct": 0.10068180504997976,
"sellingPointName": "Homeowners and Maintenance Enthusiasts",
"videoView": "836561023",
"videoView6sRate": 0.14181924418919528,
"videoView6sRateWow": -0.03342331175429736,
"videoViewWow": 0.5779036729199662
},
... /* omit */
]
},
... /* omit */
]
}
}

📊 Top Ads Insight - Creative Approach (top_ads_insight_creative_approach)

{
"BaseResp": {
"StatusCode": 0,
"StatusMessage": ""
},
"formulaList": [
{
"clickRate": 0.01532804205489521,
"content": [
"Function/Attribute",
"Physical product/Commodity",
"Applicable Scenarios",
"Target Audience"
],
"engagementRate": 0.003626492592307972,
"id": "[Function/Attribute, Physical product/Commodity, Applicable Scenarios, Target Audience]",
"postNumPct": 0.10424275523091102,
"videoView": "725058423",
"videoView6sRate": 0.1357802376705856
},
... /* omit */
]
}

📊 Top Ads Insight - Selling Point Analysis (top_ads_insight_selling_point_analysis)

{
"BaseResp": {
"StatusCode": 0,
"StatusMessage": ""
},
"SellingPoints": [
{
"categoryName": "Target Audience",
"clickRate": 0.015131855660077015,
"clickRateWow": -0.021820344372670414,
"engagementRate": 0.006421364107410872,
"engagementRateWow": 0.037459146764485536,
"postNumPct": 0.8560120182585081,
"sellingPointName": "",
"videoView": "7085131950",
"videoView6sRate": 0.12949835648438418,
"videoView6sRateWow": -0.013653260524311877,
"videoViewWow": 0.47982782334909313
},
... /* omit */
]
}

📊 Top Ads Insight - Top 20 Selling Points (top_ads_insight_top20_selling_points)

{
"BaseResp": {
"StatusCode": 0,
"StatusMessage": ""
},
"SellingPoints": [
{
"categoryName": "Target Audience",
"clickRate": 0.013211661428313998,
"clickRateWow": -0.04245137306068203,
"engagementRate": 0.0031889771656263264,
"engagementRateWow": -0.06709534547129498,
"postNumPct": 0.10068180504997976,
"sellingPointName": "Homeowners and Maintenance Enthusiasts",
"videoView": "836561023",
"videoView6sRate": 0.14181924418919528,
"videoView6sRateWow": -0.03342331175429736,
"videoViewWow": 0.5779036729199662
},
... /* omit */
]
}

📊 Top Ads Insight - Creative Approach Materials (top_ads_insight_formula_material_list)

{
"BaseResp": {
"StatusCode": 0,
"StatusMessage": ""
},
"itemList": [
{
"brandName": "",
"clickRate": 0,
"commentCnt": "0",
"countryCodeList": [
"SA"
],
"ctrRank": 0.66,
"engagementRate": 0.00036005527335007106,
"industry": "18000000000",
"landingPage": "",
"likeCnt": "0",
"materialID": "7637823224530026516",
"shareCnt": "0",
"title": "احمي اثاثك مع بخاخ نانو فور لايف",
"videoInfo": {
"cover": "https://p19-common-sign.tiktokcdn.com/tos-alisg-p-0051c001-sg/oYDfXgPVQCNf9IE6JfbAGX7DJCJwwA7ULDAgFT~tplv-photomode-zoomcover-tcm:720:720.avif?dr=16670&refresh_token=c241a2c4&x-expires=1781740800&x-signature=jSOpVOxf%2FV4pFCjlNMt%2FS%2BmJ5x4%3D&t=e8257cf9&ps=933b5bde&shp=c8b38fb9&shcp=c8b38fb9&idc=my2",
"duration": 21.316,
"height": "1280",
"vid": "v10033g50000d7vg15fog65tgqjqdts0",
"video_url": {
"720p": "https://v16m-default.tiktokcdn.com/a910ff2b45523eb66f31e225e9c6a627/6a2ab814/video/tos/alisg/tos-alisg-ve-0051c001-sg/oQ9eM839ZQTAief79APAWK67AHtfAgahfMwlkS/?a=0&bti=NTU4QDM1NGA%3D&&bt=1801&ft=cApXJCz7ThWHzMr9LGZmo0P&mime_type=video_mp4&rc=aGY7Z2k4ODlmODNoPDU8NUBpM3d0dHc5cjhqOjMzODYzNEA0NV4tMTJeNS4xMzYxMWNiYSNwYWdkMmRjLnNhLS1kMC1zcw%3D%3D&vvpl=1&l=202606111528313D38198328B44E682ADF&btag=e000b8000"
},
"width": "720"
},
"videoView": "411048",
"videoView6sRank": 0.73,
"videoView6sRate": 0
},
... /* omit */
],
"pagination": {
"hasMore": false,
"page": "1",
"size": "2",
"total": "2"
}
}

📊 Top Ads Insight - Selling Point Analysis Materials (top_ads_insight_selling_point_material_list)

{
"BaseResp": {
"StatusCode": 0,
"StatusMessage": ""
},
"itemList": [
{
"brandName": "",
"clickRate": 0,
"commentCnt": "0",
"countryCodeList": [
"SA"
],
"ctrRank": 0.66,
"engagementRate": 0.00036005527335007106,
"industry": "18000000000",
"landingPage": "",
"likeCnt": "0",
"materialID": "7637823224530026516",
"shareCnt": "0",
"title": "احمي اثاثك مع بخاخ نانو فور لايف",
"videoInfo": {
"cover": "https://p19-common-sign.tiktokcdn.com/tos-alisg-p-0051c001-sg/oYDfXgPVQCNf9IE6JfbAGX7DJCJwwA7ULDAgFT~tplv-photomode-zoomcover-tcm:720:720.avif?dr=16670&refresh_token=c241a2c4&x-expires=1781740800&x-signature=jSOpVOxf%2FV4pFCjlNMt%2FS%2BmJ5x4%3D&t=e8257cf9&ps=933b5bde&shp=c8b38fb9&shcp=c8b38fb9&idc=my2",
"duration": 21.316,
"height": "1280",
"vid": "v10033g50000d7vg15fog65tgqjqdts0",
"video_url": {
"720p": "https://v16m-default.tiktokcdn.com/357714a02f5b0c88d30efdab610f5721/6a2ac293/video/tos/alisg/tos-alisg-ve-0051c001-sg/oQ9eM839ZQTAief79APAWK67AHtfAgahfMwlkS/?a=0&bti=NTU4QDM1NGA%3D&&bt=1801&ft=cApXJCz7ThWH9Rr9LGZmo0P&mime_type=video_mp4&rc=aGY7Z2k4ODlmODNoPDU8NUBpM3d0dHc5cjhqOjMzODYzNEA0NV4tMTJeNS4xMzYxMWNiYSNwYWdkMmRjLnNhLS1kMC1zcw%3D%3D&vvpl=1&l=202606111613186D2D026BFB0E135F48DD&btag=e000b8000"
},
"width": "720"
},
"videoView": "411048",
"videoView6sRank": 0.73,
"videoView6sRate": 0
},
... /* omit */
],
"pagination": {
"hasMore": true,
"page": "1",
"size": "2",
"total": "3"
}
}

📊 Top Ads Insight - Material Detail (top_ads_insight_material_detail)

{
"BaseResp": {
"StatusCode": 0,
"StatusMessage": ""
},
"itemInfo": {
"brandName": "",
"clickRate": 0,
"commentCnt": "0",
"countryCodeList": [
"SA"
],
"ctrRank": 0.66,
"engagementRate": 0.00036005527335007106,
"industry": "18000000000",
"keyFrameInfo": [
{
"click_cnt": 0.2391304347826087,
"convert_cnt": 0,
"play_retain_cnt": 1,
"retain_ctr": 0.03143979992854591,
"retain_cvr": 0,
"second": "0"
},
... /* omit */
],
"landingPage": "https://nano4life-sa.com/ar?utm_source=tiktok&utm_medium=paid&utm_id=__CAMPAIGN_ID__&utm_campaign=__CAMPAIGN_NAME__",
"likeCnt": "147",
"materialID": "7637823224530026516",
"objective": [
5
],
"shareCnt": "1",
"title": "احمي اثاثك مع بخاخ نانو فور لايف",
"videoInfo": {
"cover": "https://p16-common-sign.tiktokcdn.com/tos-alisg-p-0051c001-sg/oYDfXgPVQCNf9IE6JfbAGX7DJCJwwA7ULDAgFT~tplv-noop.image?dr=18692&refresh_token=1d20876a&x-expires=1781187224&x-signature=qHW3teAeUrAmlZhcBCYIx54A9zY%3D&t=9276707c&ps=14f1eb3e&shp=9e36835a&shcp=317596d8&idc=my2&VideoID=v10033g50000d7vg15fog65tgqjqdts0",
"duration": 21.316,
"height": "1280",
"vid": "v10033g50000d7vg15fog65tgqjqdts0",
"video_url": {
"720p": "https://v16m-default.tiktokcdn.com/b3c2444addc896d7993d3618eda3b1a5/6a2ac298/video/tos/alisg/tos-alisg-ve-0051c001-sg/oQ9eM839ZQTAief79APAWK67AHtfAgahfMwlkS/?a=0&bti=NTU4QDM1NGA%3D&&bt=1801&ft=cApXJCz7ThWH4Rr9LGZmo0P&mime_type=video_mp4&rc=aGY7Z2k4ODlmODNoPDU8NUBpM3d0dHc5cjhqOjMzODYzNEA0NV4tMTJeNS4xMzYxMWNiYSNwYWdkMmRjLnNhLS1kMC1zcw%3D%3D&vvpl=1&l=20260611161323C6AD417FBB95886B2486&btag=e000b8000"
},
"width": "720"
},
"videoView": "411048",
"videoView6sRank": 0.73,
"videoView6sRate": 0
}
}

📊 Top Ads Library (top_ads_library)

{
"BaseResp": {
"StatusCode": 0,
"StatusMessage": ""
},
"itemList": [
{
"adv_id": [
"7372413843525517313"
],
"brandName": "",
"clickRate": 0,
"commentCnt": "0",
"countryCodeList": [
"PH"
],
"ctrRank": 0.04,
"engagementRate": 0.0010963407354446612,
"industry": "23125000000",
"landingPage": "",
"likeCnt": "0",
"materialID": "7644457820796878856",
"objective": [
5
],
"shareCnt": "0",
"title": "Pabangisin ang bonding ng tropa with Foodvencha. #TikmanAngAdvencha P0173P052526M",
"videoInfo": {
"cover": "https://p16-common-sign.tiktokcdn.com/tos-alisg-p-0037/o01V469EWVvE5h6iWsuNnpYmBGIaAibaLB9AI~tplv-photomode-zoomcover-tcm:720:720.avif?dr=16670&refresh_token=a327d82d&x-expires=1781748000&x-signature=g%2BKhapyPyF7CntIv%2FXghBzDZMwY%3D&t=e8257cf9&ps=933b5bde&shp=c8b38fb9&shcp=c8b38fb9&idc=my",
"duration": 15.022,
"height": "1280",
"vid": "v14044g50000d8aplpnog65tjr3c996g",
"video_url": {
"720p": "https://v16m-default.tiktokcdn.com/a9b53b615ecfa7f5c90c4fdf794e5f4a/6a2ab825/video/tos/alisg/tos-alisg-pve-0037c001/okSgbQEhYEAuasAWBkWVIEpNFLvkp5ihn9Bia/?a=0&bti=NTU4QDM1NGA%3D&&bt=2884&ft=cApXJCz7ThWHeMr9LGZmo0P&mime_type=video_mp4&rc=aTszNjg5OWVpPGZoZGRpZ0BpajxmdXc5cnNzOzMzODczNEAzMi9iMGFhNTMxNi5hMWFjYSMzNjBnMmRraV5hLS1kMTFzcw%3D%3D&vvpl=1&l=202606111528544E4EA3BB5EA48867FD7A&btag=e000b8000"
},
"width": "720"
},
"videoView": "82856540",
"videoView6sRank": 0.08,
"videoView6sRate": 0.1343032426572047
},
... /* omit */
],
"pagination": {
"hasMore": true,
"page": "1",
"size": "2",
"total": "500"
}
}

📊 Top Ads Library - Material Detail (top_ads_library_material_detail)

{
"BaseResp": {
"StatusCode": 0,
"StatusMessage": ""
},
"itemInfo": {
"brandName": "",
"clickRate": 0,
"commentCnt": "675",
"countryCodeList": [
"PH"
],
"ctrRank": 0.04,
"engagementRate": 0.0010963407354446612,
"industry": "23000000000",
"keyFrameInfo": [
{
"click_cnt": 0.7028168762184107,
"convert_cnt": 0,
"play_retain_cnt": 1,
"retain_ctr": 0.4027917084587095,
"retain_cvr": 0,
"second": "0"
},
... /* omit */
],
"landingPage": "https://www.klook.com/en-PH/tetris/promo/dewfoodvenchatour/",
"likeCnt": "89051",
"materialID": "7644457820796878856",
"objective": [
5
],
"shareCnt": "1113",
"title": "Pabangisin ang bonding ng tropa with Foodvencha. #TikmanAngAdvencha P0173P052526M",
"videoInfo": {
"cover": "https://p16-common-sign.tiktokcdn.com/tos-alisg-p-0037/o01V469EWVvE5h6iWsuNnpYmBGIaAibaLB9AI~tplv-noop.image?dr=18692&refresh_token=bff93274&x-expires=1781184550&x-signature=Qsoq1AIxg7tDb01r%2F9pqZy%2BRizI%3D&t=9276707c&ps=14f1eb3e&shp=9e36835a&shcp=317596d8&idc=my2&VideoID=v14044g50000d8aplpnog65tjr3c996g",
"duration": 15.022,
"height": "1280",
"vid": "v14044g50000d8aplpnog65tjr3c996g",
"video_url": {
"720p": "https://v16m-default.tiktokcdn.com/d6221c39c77ff604a181e6e9df87799a/6a2ab826/video/tos/alisg/tos-alisg-pve-0037c001/okSgbQEhYEAuasAWBkWVIEpNFLvkp5ihn9Bia/?a=0&bti=NTU4QDM1NGA%3D&&bt=2884&ft=cApXJCz7ThWHsMr9LGZmo0P&mime_type=video_mp4&rc=aTszNjg5OWVpPGZoZGRpZ0BpajxmdXc5cnNzOzMzODczNEAzMi9iMGFhNTMxNi5hMWFjYSMzNjBnMmRraV5hLS1kMTFzcw%3D%3D&vvpl=1&l=202606111528552512DCABE9F7496A60E3&btag=e000b8000"
},
"width": "720"
},
"videoView": "82856540",
"videoView6sRank": 0.08,
"videoView6sRate": 0
}
}

📊 Custom User Insight (custom_user_insight)

{
"aiSummary": {
"BaseResp": {
"StatusCode": 0,
"StatusMessage": ""
},
"AudienceFeature": {},
"TrendingKeywords": {},
"EmergingHashtags": {}
},
"demographic": {
"BaseResp": {
"StatusCode": 0,
"StatusMessage": ""
},
"lastUpdateTime": "1781049600",
"age": [],
"gender": [],
"countryCode": [],
"language": [],
"industryLabel": []
},
"keywordList": {
"BaseResp": {
"StatusCode": 0,
"StatusMessage": ""
},
"keywordList": [],
"lastUpdateTime": "0"
},
"hashtagList": {
"BaseResp": {
"StatusCode": 0,
"StatusMessage": ""
},
"hashtagList": [
{
"hashtagName": "motorradtour",
"publishCnt": "69387",
"videoViews": "1205015293",
"videoViewsSelected": "1849118"
}
]
}
}

📊 Custom User Insight Follow-up Targets

custom_user_insight_ai_summary, custom_user_insight_demographic, custom_user_insight_keyword_list, custom_user_insight_hashtag_list, custom_user_insight_keyword_detail, custom_user_insight_hashtag_detail, custom_user_insight_keyword_videos, custom_user_insight_hashtag_videos, and custom_user_insight_related_keywords return the corresponding TikTok One API response directly.

Keyword and hashtag video targets return videos[]; hashtag and keyword detail targets return metric series under hashtag or keyword; related keywords returns relatedKeywordList[].

A successful empty list is returned normally and does not trigger an item fetch charge.

Successful data and user-actionable warnings/errors both return Dataset output.

When a validated success contains exactly one billable item, the Actor performs one separate, read-only Cookie observation after charging. If that observation is definitive, the original business response gains this reserved top-level metadata:

{
"_actor": {
"cookie_status": "authenticated | invalid",
"message": "A user-facing explanation of this observation"
}
}

authenticated means only that TikTok accepted the Cookie for the Actor's account-authentication probe at that moment; it does not guarantee every target, permission, region, or signed request. invalid means TikTok returned its verified invalid-login signal. If the probe times out, fails, or returns an unfamiliar shape, the status is unknown and _actor is omitted so the successful business output is unchanged. Zero-item and multi-item results skip this observation. The probe does not create a fetch charge or retry the business request. _actor is reserved for Actor metadata and must not be treated as a TikTok business-response field.

Recognized TikTok One outcomes such as rate limiting (40100/HTTP 429), invalid login (38001001), and explicit network failure complete the Actor Run normally and return one non-chargeable Dataset item containing a sanitized code/message. The Run status contains the same user-facing outcome. These outcomes are not retried automatically; retry timing remains under your control.


💰 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
creator_search0.002$ / returned creator
creator_profile0.002$ / successfully returned profile
Top Ads Insight0.002$ / fetched item
Top Ads Insight - Creative Approach0.002$ / item
Top Ads Insight - Selling Point Analysis0.002$ / item
Top Ads Insight - Top 20 Selling Points0.002$ / item
Top Ads Insight - Creative Approach Materials0.002$ / item
Top Ads Insight - Selling Point Analysis Materials0.002$ / item
Top Ads Insight - Material Detail0.002$ / time
Top Ads Library0.002$ / item
Top Ads Library - Material Detail0.002$ / time
Custom User Insight0.002$ / fetched item
Custom User Insight - AI Summary0.002$ / time
Custom User Insight - Demographic0.002$ / time
Custom User Insight - Keyword List0.002$ / item
Custom User Insight - Hashtag List0.002$ / item
Custom User Insight - Keyword Detail0.002$ / time
Custom User Insight - Hashtag Detail0.002$ / time
Custom User Insight - Keyword Videos0.002$ / item
Custom User Insight - Hashtag Videos0.002$ / item
Custom User Insight - Related Keywords0.002$ / item

Unknown or unsupported 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 One website and its internal APIs may change at any time.
  • TikTok One requests require valid logged-in cookies from ads.tiktok.com; expired, invalid, rate-limited, or unauthorized cookies can cause upstream failures.
  • Top Ads requests use local X-Bogus and X-Gnarly signing followed by direct HTTP requests. Successful access still depends on TikTok One accepting the account session, region, and network context.
  • Custom User Insight keyword lists may legitimately return an empty list for some audiences even when the upstream request succeeds.
  • Please use this Actor responsibly and in accordance with the Apify Terms of Service.