TikTok Ads Scraper - Creative Center Top Ads Data, No API Key
Pricing
from $6.15 / 1,000 results
TikTok Ads Scraper - Creative Center Top Ads Data, No API Key
Scrape TikTok Creative Center Top Ads with no login or API key. Get 39 fields per ad: brand, industry, CTR, likes, comments, shares, video URLs, landing page, hashtags. Filter by market, objective, language, ad format, likes and 7 sort metrics across 33 markets. Export JSON, CSV, Excel.
Pricing
from $6.15 / 1,000 results
Rating
5.0
(1)
Developer
Scrapers Lat
Maintained by CommunityActor stats
0
Bookmarked
7
Total users
0
Monthly active users
7 days ago
Last modified
Categories
Share
TikTok Ads Scraper - Creative Center Top Ads Data (No API Key)
Scrape the TikTok Creative Center Top Ads ranking for TikTok ad intelligence and creative research, with no login and no API key. Pick any market, time window and sort metric and get one clean record per top-performing ad: brand, industry, CTR, likes, comments, shares, campaign objective, downloadable video URLs, landing page, and extracted hashtags and mentions. Ideal for competitor ad research, TikTok trends analysis, and building a swipe file of winning creative.
Here is one real result, with every field the actor returns (the title text is trimmed here for readability; the live record returns the full ad caption):
{"imageUrl": "https://p16-common-sign.tiktokcdn.com/tos-maliva-p-0068c799-us/oMSIAi3DIpHI1A1ftrYFMuZb5rgBCAiDqQsiqW~tplv-noop.image?dr=18692&refresh_token=4a802778&x-expires=1786540513&x-signature=qla8b2VKhg7boFcm4hwkX6Y5Skg%3D&t=9276707c&ps=14f1eb3e&shp=9e36835a&shcp=317596d8&idc=my&VideoID=v15044gf0000d8mt91vog65n8e8tdbc0","title": "#ad Realizing we were all told to pick a career at 18 with zero life experience [trimmed] @Western Governors University #wgu #college #university","id": "7651007183426207745","url": "https://ads.tiktok.com/business/creativecenter/inspiration/topads/pc/en?id=7651007183426207745","brandName": null,"industry": "label_23102000000","objective": "video view","region": "US","likes": 643,"ctr": 0.38,"costLevel": 1,"videoDuration": 58.7,"videoId": "v15044gf0000d8mt91vog65n8e8tdbc0","rank": 5,"sortMetric": "ctr","periodDays": 7,"hashtags": ["ad", "wgu", "college", "university"],"mentions": ["Western"],"videoWidth": 720,"videoHeight": 1280,"videoAspectRatio": "9:16","isSearchAd": true,"isFavorite": false,"comments": 4,"shares": 6,"landingPage": "https://www.wgu.edu/quiz/program.html?refer_id=2025710&ch=SOC","keywords": null,"source": "Others","countries": ["US"],"objectives": [{"objective": "video view", "value": 4}],"landingPageDomain": "wgu.edu","hasVoiceOver": false,"hasSummary": false,"highlightText": null,"patternLabels": [],"sourceKey": 128,"observedAt": "2026-08-12T07:14:17.288Z","error": null}
The record also returns the ad's downloadable video URLs (videoUrl, videoUrlHd, videoUrlSd, and a videoUrls map of resolutions), omitted from the block above only because the signed URLs are very long. They are present and real in every record.
The most complete TikTok Creative Center top-ads scraper available. It returns every field the Creative Center exposes for each ranked ad, including engagement metrics (CTR, likes, comments, shares), campaign objective breakdown, industry, landing page and downloadable video URLs, and gives you market, time-window, sort, objective, language, and industry filters to target exactly the ads you need.
📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples
Table of contents
- What it does
- Quickstart
- Input reference
- Output reference
- Example output record
- Run via API and CLI
- Fetch results
- Billing and limits
- FAQ and troubleshooting
What it does
The actor pulls the Top Ads ranking from the TikTok Creative Center for the market, time window, and sort metric you choose, optionally fetches each ad's detail page for richer fields (comments, shares, landing page, keywords, objective breakdown), and writes one normalized record per ad to the run's dataset. Each record carries the ad caption, brand/industry, engagement metrics, campaign objective, downloadable video URLs in multiple resolutions, extracted hashtags and mentions, and the landing page domain. Missing source values are returned as null, and ads are de-duplicated by ID.
Use cases
- Competitor ad research: see which brands and creatives are winning in your industry and market, ranked by CTR, likes, impressions, conversion rate or view rate.
- Creative swipe file: download the actual ad videos (multiple resolutions) and cover images to study hooks, pacing and formats.
- TikTok trends analysis: track trending hashtags, mentions and campaign objectives week over week by re-running across time windows.
- Landing page and funnel intelligence: capture each ad's landing page and domain to map competitor offers and funnels.
- Ad performance benchmarking: compare CTR, likes, comments and shares across brands, industries and objectives to set your own benchmarks.
- Feed a dashboard or model: export clean JSON, CSV or Excel for BI tools, spreadsheets or an internal ad-intelligence dataset.
How this compares to other TikTok ads scrapers
This actor is built to be a strict superset of the popular TikTok Creative Center / TikTok ads scrapers on Apify: it accepts the same filters and returns the same data, plus more fields and cleaner output.
| Capability | This actor | rastriq/tiktok-top-ads-scraper | codebyte/tiktok-creative-center-top-ads | Typical TikTok ads scrapers |
|---|---|---|---|---|
| No login / no API key | Yes | Yes | Yes | Varies |
| Markets covered | 33 | 49 | 50+ | Varies |
| Sort metrics | 7 (CTR, likes, impressions, CVR, 6s/2s view rate, For You) | 6 | Several | 2 to 4 |
| Filters: objective / industry / language | Yes | Yes | Yes | Partial |
| Filter: likes band | Yes (5 bands) | Yes | Yes | Rare |
| Filter: ad format (Spark / Non-Spark) | Yes | Yes | Yes | Rare |
| Fields per record | 39 | ~20 | ~20 | 10 to 20 |
| Downloadable video URLs (all resolutions + HD/SD) | Yes | Single URL | Single URL | Sometimes |
| Comments, shares, landing page, keywords | Yes | Yes (details on) | With analytics | Rare |
| Objective breakdown, creative pattern labels, voice-over, highlight text | Yes | No | Partial | No |
| Hashtags and mentions parsed from caption | Yes | No | No | No |
| Landing page domain, aspect ratio, video dimensions | Yes | No | No | No |
| Pay per result (no monthly rental) | Yes | Yes | Rental model | Varies |
Notes: we cover 33 markets today (the most requested English and Latin American markets); competitors list more country codes but return the same per-ad data. We honestly return only fields the Creative Center actually exposes, so metrics like reach and view-rate that the source does not return per ad are used as sort orders, not invented as output columns.
Quickstart
Open the actor, paste this into the input, and press Run. It returns the 10 top US ads by click-through rate over the last 7 days, with detail fields.
{"maxAds": 10,"withDetails": true,"country": "US","period": "7","orderBy": "ctr"}
Change country to any of the 33 supported markets, period to 7/30/180 days, and orderBy to rank by likes, impressions, conversion rate, or view rates. Free Apify plans are capped at 10 ads per run.
Input reference
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
maxAds | integer | no | 10 | Maximum number of top ads to collect. Free Apify plans are capped at 10 per run. |
withDetails | boolean | no | true | Fetch each ad's detail page to add comments, shares, landing page, keywords, and objective breakdown. Slower but richer. |
country | enum | no | US | Market whose top ads you want. 33 markets including US, GB, BR, MX, AR, JP, IN, and more. |
period | enum | no | 7 | Time window the ranking looks back: 7, 30, or 180 days. |
orderBy | enum | no | ctr | Ranking metric: ctr, like, impression, cvr, play_6s_rate, play_2s_rate, or for_you. |
objective | enum | no | (all) | Restrict to one campaign objective: Traffic 1, App installs 2, Conversions 3, Video views 4, Reach 5, Product sales 7, Lead generation 8. Empty for all. |
adFormat | enum | no | (all) | Restrict to Spark ads 1 or Non-Spark ads 2. Empty for all formats. |
adLanguage | enum | no | (all) | Restrict to ads in one language (ISO 639-1, for example en, es, pt). Availability depends on the market. |
likesTier | enum | no | (all) | Restrict to one of five like-count bands, 1 (most likes) to 5 (fewest). Empty for all. |
industry | string | no | (all) | Creative Center industry code (for example 14106000000, with or without the label_ prefix) to restrict to one industry. |
Output reference
One dataset item per ad. Types: string, number, integer, boolean, string[], object, object[], or null when the source value is absent.
| Field | Type | Description |
|---|---|---|
id | string | Creative Center ad ID (unique per ad). |
title | string | Ad caption / text. |
url | string | Creative Center page URL for the ad. |
imageUrl | string | Ad cover image URL. |
brandName | string | Brand name, or null when not exposed. |
industry | string | Creative Center industry label code. |
objective | string | Primary campaign objective. |
objectives | object[] | Objective breakdown; each entry has objective and value. |
region | string | Market code the ad ranked in. |
countries | string[] | Countries the ad ran in. |
likes | integer | Like count. |
comments | integer | Comment count (detail fetch). |
shares | integer | Share count (detail fetch). |
ctr | number | Click-through rate. |
costLevel | integer | Relative cost band. |
rank | integer | Position in the ranking. |
sortMetric | string | Metric the ranking was sorted by. |
periodDays | integer | Time window of the ranking in days. |
videoId | string | TikTok video ID. |
videoDuration | number | Video length in seconds. |
videoUrl | string | Default downloadable video URL. |
videoUrlHd | string | HD video URL. |
videoUrlSd | string | SD video URL. |
videoUrls | object | Map of resolution to video URL, for example 540p, 720p. |
videoWidth | integer | Video width in pixels. |
videoHeight | integer | Video height in pixels. |
videoAspectRatio | string | Video aspect ratio, for example 9:16. |
hashtags | string[] | Hashtags parsed from the caption. |
mentions | string[] | Mentions parsed from the caption. |
landingPage | string | Ad landing page URL (detail fetch). |
landingPageDomain | string | Domain of the landing page. |
keywords | string[] | Ad keywords (detail fetch), or null. |
isSearchAd | boolean | true when the ad is a search ad. |
isFavorite | boolean | true when the Creative Center flags the ad as favorited. |
hasVoiceOver | boolean | true when the ad has a voice-over. |
hasSummary | boolean | true when the ad has an AI summary. |
highlightText | string | Highlight text, or null. |
patternLabels | string[] | Creative pattern labels. |
source | string | Source label reported by the Creative Center. |
sourceKey | integer | Internal source key. |
observedAt | string | ISO 8601 timestamp of when the record was collected. |
error | string | null on success. On a failed run, a single item with a populated error field is written instead. |
Example output record
Real record from a live run (input {"maxAds": 10, "withDetails": true, "country": "US", "period": "7", "orderBy": "ctr"}), with title trimmed and the long signed video URLs omitted for readability (they are present and real in the live record):
{"id": "7651007183426207745","title": "#ad Realizing we were all told to pick a career at 18 with zero life experience [trimmed]","url": "https://ads.tiktok.com/business/creativecenter/inspiration/topads/pc/en?id=7651007183426207745","brandName": null,"industry": "label_23102000000","objective": "video view","region": "US","likes": 643,"ctr": 0.38,"costLevel": 1,"videoDuration": 58.7,"videoId": "v15044gf0000d8mt91vog65n8e8tdbc0","rank": 5,"sortMetric": "ctr","periodDays": 7,"hashtags": ["ad", "wgu", "college", "university"],"mentions": ["Western"],"videoWidth": 720,"videoHeight": 1280,"videoAspectRatio": "9:16","isSearchAd": true,"isFavorite": false,"comments": 4,"shares": 6,"landingPage": "https://www.wgu.edu/quiz/program.html?refer_id=2025710&ch=SOC","keywords": null,"source": "Others","countries": ["US"],"objectives": [{"objective": "video view", "value": 4}],"landingPageDomain": "wgu.edu","hasVoiceOver": false,"hasSummary": false,"highlightText": null,"patternLabels": [],"sourceKey": 128,"observedAt": "2026-08-12T07:14:17.288Z","error": null}
Run via API and CLI
Start a run and wait for it to finish, then read the dataset. Replace <TOKEN> with your Apify API token.
Run synchronously and get dataset items in one call:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~tiktok-creative-center-scraper/run-sync-get-dataset-items?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"country":"US","period":"30","orderBy":"like","maxAds":25}'
Start a run asynchronously:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~tiktok-creative-center-scraper/runs?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"country":"BR","period":"180","orderBy":"ctr","withDetails":true,"maxAds":100}'
Apify CLI:
apify call scrapers_lat/tiktok-creative-center-scraper \--input '{"country":"MX","orderBy":"impression","objective":"3","maxAds":50}'
Fetch results
Every run writes to a dataset. Fetch items as JSON, CSV, or Excel by changing format:
# JSONcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"# CSVcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"# Paginate large datasetscurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&offset=1000&limit=1000"
<DATASET_ID> is returned as defaultDatasetId in the run object. Use offset and limit to page through large result sets. clean=true drops empty and internal fields.
Billing and limits
- Pay per result. You are charged per ad record returned (
resultevent). See the pricing tab for the current per-result price. - No charge on failure. If a run errors, the actor writes a single item with a populated
errorfield and does not charge for it. Empty runs cost nothing. - Spend cap respected. Set
maxTotalChargeUsdon the run; once reached, the actor stops emitting and charging further billable results. - Free Apify plans are capped at 10 records per run. Upgrade for higher
maxAds.
FAQ and troubleshooting
A run returned 0 records. Why?
The filter combination matched no ranked ads. Loosen the filters (for example clear objective, adLanguage, or likesTier), or widen the period. Zero-result runs are not charged.
Why is brandName or keywords null?
The Creative Center did not expose that field for the ad, or withDetails was off. Missing source values are returned as null, never invented.
How do I get comments, shares, and the landing page?
Keep withDetails on (the default). Those fields come from each ad's detail page.
Do the video URLs expire? Yes. The signed video URLs are time-limited by TikTok's CDN. Download promptly after a run.
Which markets are covered?
33 markets, including the US, UK, Brazil, Mexico, Argentina, Japan, India, and more. See the country input for the full list.
Is there a TikTok ads API, and do I need an API key? You do not need any API key, login, or access token. This actor reads the public TikTok Creative Center Top Ads data directly and returns it as structured JSON, CSV, or Excel, so it works like a TikTok ads API without you managing credentials.
Can I download the ad videos and cover images?
Yes. Each record includes the ad's cover image and downloadable video URLs in every resolution the source offers (videoUrl, videoUrlHd, videoUrlSd, and a videoUrls map). The signed URLs are time-limited by TikTok's CDN, so download promptly.
How do I run TikTok competitor ad research?
Pick your market and industry, sort by CTR or likes, and keep withDetails on. You get the top-performing ads with brand, engagement metrics, campaign objective, landing page, and the creative itself, which is everything needed to benchmark competitors and build a swipe file.
Can I filter to Spark ads only?
Yes. Set adFormat to Spark ads or Non-Spark ads, and combine it with objective, industry, language, and likes-band filters to narrow the ranking.
How is this different from a TikTok video or hashtag scraper? This actor targets the Creative Center Top Ads ranking (paid ads and their performance), not organic videos or hashtags. For trending hashtags with growth metrics, see the related TikTok Hashtag Analytics Scraper below.
Is this an official TikTok tool? No. This actor is independent and has no affiliation with TikTok or ByteDance. It reads only data that is publicly available in the TikTok Creative Center. Use it in accordance with the TikTok terms of service.
Related scrapers
- TikTok Hashtag Analytics Scraper: trending hashtags and their metrics.
- TikTok Shop Product Scraper: TikTok Shop products with prices and sales.
- Google Ads Transparency Scraper: advertiser creatives from Google's ad library.
- Douyin Scraper: videos and metrics from Douyin.
- TikTok Post Generator Tool: generate TikTok post ideas and captions.
- Google News Scraper: news coverage of brands and campaigns.
More scrapers at scrapers.lat
Built and maintained by scrapers.lat, where we publish scrapers for US and Latin American public platforms: company registries, government data, finance, e-commerce and more. Browse the catalog or request a custom scraper at scrapers.lat.
Independent tool, not affiliated with TikTok or ByteDance. Accesses only publicly available TikTok Creative Center data. Use in accordance with the TikTok terms of service.
