TikTok Ads Scraper
Pricing
from $3.00 / 1,000 tiktok ad scrapeds
TikTok Ads Scraper
Scrape TikTok Creative Center Top Ads. Get video URLs, brands, CTR tiers, Spark Ads, likes & creative intel. Filter 50+ countries, 19 industries, 7 objectives. No login. PPE: $0.003/ad.
Pricing
from $3.00 / 1,000 tiktok ad scrapeds
Rating
0.0
(0)
Developer
Khadin Akbar
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
17 hours ago
Last modified
Categories
Share
๐ฏ TikTok Ads Scraper โ Creative Center Top Ads Spy
Extract competitor TikTok ad creatives, video URLs, brand names, CTR tiers, likes, CTAs & landing pages from TikTok Creative Center. Filter by 50+ countries, 19 industries, 7 objectives, and ad formats. No login or TikTok API key required.
Stop wasting hours scrolling through competitor ads manually. This actor intercepts TikTok's internal Top Ads API, returning structured JSON you can drop straight into a swipe file, creative brief, or spreadsheet โ with direct video download links, advertiser metadata, and performance signals.
What You Get
| Field | Example |
|---|---|
ad_id | 7613813410505555976 |
brand_name | "pacificmilllofts" (may be empty for Spark Ads) |
ad_title | "Love the space you're in with loftโstyle apartmentsโฆ" |
video_url | https://v16m-default.tiktokcdn.com/... (720p, signed โ 24-48h expiry) |
video_url_hd | 1080p version when available |
cover_url | Static thumbnail (longer expiry) |
video_id | v10033g50000d7g424fog65u2g23hrg0 |
video_duration_seconds | 15.034 |
video_width / video_height | 720 / 1280 |
likes | 2,360 |
ctr | 0.61 (normalized 0-1) |
ctr_tier | top_10% / top_25% / top_50% / below_50% |
cost_tier | 0-5 (relative spend signal) |
favorite | true/false (TikTok-featured creative) |
is_spark_ad | true/false (boosted organic post?) |
industry | Beauty & Personal Care |
industry_key | label_17103000000 (raw sub-industry ID) |
objective | Conversion / Reach / Video View / Traffic |
countries | ["US", "CA", "GB"] |
period_days | 7 / 30 / 180 |
ad_format | "Spark Ads" / "All Formats" (filter echo) |
tags | When TikTok exposes them |
scraped_at | ISO 8601 |
source_url | Full Creative Center URL with filters |
Use responseFormat: "concise" for a 14-field agent-friendly output (~250 tokens/ad) โ drops video_id, dimensions, raw CTR number, cost_tier, favorite flag, industry_key, ad_format, tags, source_url.
๐ฐ Pricing
Pay per event โ you only pay for ads actually scraped.
| Event | Price |
|---|---|
| Actor start | $0.00005 per GB RAM |
| TikTok ad scraped | $0.003 per ad |
Typical cost: A 50-ad run is ~$0.15. A 500-ad swipe-file build is ~$1.50.
Compare that to:
- Buying a competitor ad-spy SaaS at $99โ199/month
- Hiring a VA to manually screenshot creatives ($10+/hour)
๐ฏ Who This Is For
- Performance marketers building swipe files before launching DTC campaigns
- Creative agencies doing client research and pitch decks
- E-commerce brands spotting winning ad angles before competitors do
- Affiliate marketers & dropshippers finding viral product creatives
- Market researchers tracking ad trends across markets
- AI agents (Claude/GPT/Cursor) that need structured TikTok ad data
โก Quickstart
1. Apify Console (UI)
- Set Country (e.g.
๐บ๐ธ United States) - Set Industry (e.g.
Beauty & Personal Care) - Set Period (e.g.
Last 7 Days) - Set Max Results (e.g.
50) - Click Start
2. Via API
curl -X POST "https://api.apify.com/v2/acts/khadinakbar~tiktok-ads-scraper/run-sync-get-dataset-items?token=YOUR_API_TOKEN" \-H "Content-Type: application/json" \-d '{"country": "US","industry": "Beauty & Personal Care","period": "7","orderBy": "CTR","maxResults": 50}'
3. Node.js / TypeScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });const run = await client.actor('khadinakbar/tiktok-ads-scraper').call({country: 'US',industry: 'E-commerce & Shopping',period: '30',objective: 'Conversions',orderBy: 'CTR',maxResults: 100,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(`Scraped ${items.length} top TikTok ads`);
4. Python
from apify_client import ApifyClientclient = ApifyClient("YOUR_API_TOKEN")run = client.actor("khadinakbar/tiktok-ads-scraper").call(run_input={"country": "GB","industry": "Fashion & Apparel","period": "30","adFormat": "Spark Ads","maxResults": 100,})for ad in client.dataset(run["defaultDatasetId"]).iterate_items():print(f"{ad['brand_name']}: {ad['ad_title']}")
5. Claude Desktop / MCP
Add to your Claude Desktop or any MCP client:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com?tools=khadinakbar/tiktok-ads-scraper","headers": { "Authorization": "Bearer YOUR_APIFY_TOKEN" }}}}
Then ask Claude: "Find me the top 20 beauty ads on TikTok in the US this week with spark ads only."
๐จ Use Cases
Creative Swipe Files
Pull the top 50 ads in your vertical every week. Save video URLs + landing pages to a Notion database. Study CTA patterns, hook structures, and CTR-tier performers.
Competitor Intelligence
Filter by brand_name in your dataset post-processing to track a specific competitor's TikTok ad output over time.
Winning Product Research
E-commerce? Filter by Conversions objective + E-commerce & Shopping industry + top_10% CTR tier. These are the proven-selling creatives.
Spark Ads Partner Research
Set adFormat: "Spark Ads" to find creators brands are partnering with โ great for influencer outreach shortlists.
Agency Pitch Decks
Show prospects the actual top-performing ads in their vertical with real CTR data. Instant credibility.
Ad Trend Reports
Run monthly across 5 countries in your category. Track format shifts (Spark โ Non-Spark), CTA evolution, and emerging themes.
๐ Complements Your Ad Intelligence Stack
Khadin's ad trilogy โ cross-reference across platforms:
- meta-ad-library-scraper โ Facebook & Instagram ads from Meta Ad Library
- google-ads-transparency-scraper โ Google Ads creatives (search, display, YouTube, shopping)
- tiktok-ads-scraper โ you are here
Run all three for the same brand or keyword to get a full picture of their paid media strategy.
Also useful:
- tiktok-trending-hashtags-scraper โ trending TikTok hashtags for organic research
- tiktok-profile-scraper โ TikTok creator profiles
- shopify-all-in-one-scraper โ find the Shopify stores behind the ads
โ๏ธ Filter Reference
Country (50+)
US, GB, CA, AU, DE, FR, JP, KR, BR, IN, MX, IT, ES, NL, SE, NO, DK, FI, PL, RU, TR, SA, AE, EG, ZA, NG, ID, TH, VN, MY, PH, SG, TW, HK, AR, CL, CO, PE, IL, AT, BE, CH, CZ, HU, RO, UA, KZ, PK, BD, NZ. Leave blank for global.
Industry (19)
All Industries ยท Gaming ยท E-commerce & Shopping ยท Beauty & Personal Care ยท Food & Beverage ยท Health & Fitness ยท Entertainment ยท Sports & Outdoors ยท Finance ยท Education ยท Travel ยท Business Services ยท Fashion & Apparel ยท Technology ยท Home & Dรฉcor ยท Parenting & Kids ยท Media & Entertainment ยท News & Information ยท Music
Campaign Objective (7)
All Objectives ยท Traffic ยท App Install ยท Conversions ยท Reach ยท Video Views ยท Lead Generation ยท Engagement
Ad Format (3)
All Formats ยท Spark Ads (boosted organic posts) ยท Non-Spark Ads (paid creative) ยท Collection Ads (multi-product shopping)
Sort Order (5)
For You ยท Likes ยท CTR ยท Impressions ยท Cost
Period (3)
Last 7 Days ยท Last 30 Days ยท Last 180 Days
๐ก๏ธ Reliability
- Residential proxies by default โ bypasses TikTok's datacenter blocks
- Session consistency โ one proxy + one cookie jar across related requests
- API response interception โ high-fidelity data capture from TikTok's internal
creative_radar_api/v1/top_adsendpoint - Graceful degradation โ partial results pushed with
_summaryrecord if blocks occur - Auto-scroll pagination โ keeps loading more ads until maxResults or no more available
- Retry discipline โ 403/429 triggers session rotation; 5xx triggers exponential backoff
- Circuit breaker โ aborts cleanly when target is clearly down rather than burning your proxy budget
โ FAQ
Do I need a TikTok account or API key? No. TikTok Creative Center Top Ads is public. Just run the actor.
Why do some video_url links stop working after a day?
TikTok CDN URLs are signed and expire in 24โ48h. Download immediately after the run, or re-run to get fresh URLs. The cover_url (thumbnail) lasts longer.
What's the difference between Top Ads (this actor) and the EU Ad Library? TikTok Creative Center Top Ads (this actor): global, curated highest-performing ads across 50+ countries. Public, no login. Focused on creative intel โ video URLs, CTR tiers, likes. TikTok EU Ad Library: DSA-compliance archive of every ad run in EU/EEA/UK with targeting & reach data. Wider coverage but EU-only and slower.
Why are landing URLs, CTA text, advertiser IDs, and exact run dates not in the output? TikTok Creative Center's list endpoint doesn't expose those fields โ they live behind a per-ad detail call. This V1 returns only what the list API provides (fast, cheap, reliable). A detail-enrichment mode is on the roadmap โ upvote it in the Issues tab.
Why is brand_name empty on some ads?
Many Spark Ads (boosted organic posts from creators) don't have a registered brand name in TikTok's list API โ the ad surfaces under the creator's username or appears unbranded. Paid creative from registered advertisers has brand_name populated.
How many ads per filter combination can I get? Without login, TikTok Creative Center typically surfaces 20โ100 ads per filter combo. This actor auto-scrolls to load all available. For bigger datasets, vary filters (country ร industry) across multiple runs.
What do CTR / impression / cost tiers mean?
TikTok doesn't expose raw numbers โ they normalize to 0โ1 scores. The actor buckets CTR into top_10%, top_25%, top_50%, below_50% so you can filter on performance.
Is this legal? Yes. TikTok Creative Center is a public marketing tool TikTok themselves operates at ads.tiktok.com/business/creativecenter. This actor scrapes only publicly-available ad data. Use responsibly and comply with your jurisdiction's data and competitive-intelligence rules.
What's the typical cost per run? 50 ads = $0.15. 200 ads = $0.60. 500 ads = $1.50. A dedicated ad-spy SaaS charges $99โ$199/month for similar data.
Can I run this on a schedule? Yes โ use Apify's Scheduler tab to run daily or weekly for the same filters. Combine with a webhook to push new ads to Slack/Notion.
๐ง Tips & Tricks
- Narrow filters first. A country + industry combo returns cleaner, more actionable results than global + all industries.
- Sort by CTR when researching creative hooks โ these are proven click-drivers.
- Sort by Cost to find the brands spending most (likely scaling their winners).
- Spark Ads only is the shortcut to finding creator partnership inspiration.
- Run across multiple periods (7 + 30 + 180) for the same filters to separate short-term trends from long-running winners.
- Cross-reference with Meta Ad Library scraper โ brands running similar creative on both platforms have battle-tested that angle.
๐ Changelog
- 1.0.0 (2026-04-24) โ Initial release. Top Ads scraping via Creative Center API interception. Residential proxies, auto-scroll pagination, concise/detailed output modes.
โ๏ธ Legal Disclaimer
This actor scrapes publicly-available data from TikTok's public Creative Center at ads.tiktok.com/business/creativecenter. It does not bypass authentication, access protected content, or collect personal user data. Ad creatives remain the property of their respective advertisers. Use of scraped data is subject to TikTok's Terms of Service and applicable copyright, competitive-intelligence, and data-protection laws in your jurisdiction. The scraper is provided "as-is"; TikTok may change their Creative Center or its underlying API at any time, which may temporarily affect results. This actor is not affiliated with, endorsed by, or sponsored by TikTok / ByteDance.
Built by Khadin Akbar โ 50+ production Apify actors. See the full actor portfolio โ