TikTok Ad Library & Creative Center Scraper
Pricing
from $4.00 / 1,000 tiktok ads
TikTok Ad Library & Creative Center Scraper
Scrape TikTok ads from the public Ad Library (EEA, UK, Switzerland, Turkey) and the Creative Center: advertiser & sponsor, dates shown, audience reached, creatives, landing page & targeting. Search by advertiser, region & date; monitor new ads. Independent tool, not affiliated with TikTok/ByteDance.
Pricing
from $4.00 / 1,000 tiktok ads
Rating
0.0
(0)
Developer
Scrape Sage
Maintained by CommunityActor stats
0
Bookmarked
21
Total users
10
Monthly active users
13 days ago
Last modified
Categories
Share
TikTok Ad Library & Creative Center Scraper — Top Ads, Performance Metrics & Competitor Intelligence
Disclaimer: This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by ByteDance Ltd. or any of its subsidiaries. All trademarks mentioned are the property of their respective owners. "TikTok Ad Library" is referenced only to describe the publicly available website this Actor collects data from.
Scrape TikTok's ads from two official sources in one actor:
- TikTok Ad Library (the public Commercial Content Library at library.tiktok.com, the default source) — every ad shown in the EEA, the UK, Switzerland and Turkey (33 regions), searchable by advertiser name, date window and sort order. Each row carries the advertiser (legal name, paying sponsor, business id, registry country, TikTok account with follower count), the ad title, first and last shown dates, estimated audience reached, the video creative (cover image + MP4) or image creatives, and - with details on - the landing-page URL and the ad's targeting (age ranges, genders, regions with impressions, audience size). Keyless, fast and reliable.
- TikTok Creative Center "Top Ads" — the ranked inspiration library: ad copy, brand, decoded industry and campaign objective, CTR, likes, comments, shares, CTR percentile, the video creative and the advertiser landing page, filtered by country, industry, objective and time window. Since TikTok's 2026 platform change this ranking serves anonymous sessions an empty list, so it usually returns nothing without a logged-in TikTok session - keep the source on the Ad Library unless you know it has reopened.
Both sources support monitor mode (only new ads since the last run).
This is the TikTok piece of a complete ad-intelligence stack — the same competitor-research job as the Google Ads Transparency Scraper and the Facebook Ad Library Scraper, now for the fastest-growing ad platform on the planet.
Why this TikTok ad scraper?
Most TikTok ad scrapers return raw, half-empty rows: a cryptic industry_key code, no objective, no landing page, and a video link with nothing around it. This actor drives a real browser so TikTok's own front end signs every request — the reliable path that keeps working when TikTok rotates its signing — and ships the richest dataset in the category:
| Data | Typical scrapers | This actor |
|---|---|---|
| Ad copy / caption | ✅ | ✅ |
Decoded industry (e.g. Haircare, not label_14103000000) | ❌ raw code | ✅ |
| Decoded campaign objective (Traffic, Conversions, Lead Gen…) | ❌ | ✅ |
| CTR + likes | partial | ✅ |
| CTR percentile rank, comments & shares | ❌ | ✅ opt-in |
| Advertiser landing-page URL (where the ad sends traffic) | ❌ | ✅ opt-in |
| Every country the ad runs in | ❌ | ✅ opt-in |
| Objective breakdown (weighting) | ❌ | ✅ opt-in |
| Video creative: cover image + direct MP4 + duration + aspect ratio | partial | ✅ |
| 0–100 performance score + high-performer flag | ❌ | ✅ |
| Monitor mode — only NEW ads since last run | ❌ | ✅ |
| Multi-country breadth in one run | ❌ | ✅ |
Use cases
- Competitive ad intelligence — see exactly which creatives are winning for any industry in any country, with the advertiser's landing page so you know the funnel. Pair it with the Facebook Ad Library Scraper and Google Ads Transparency Scraper for full cross-platform coverage.
- Creative inspiration & ad research — pull the top-CTR videos in Beauty & Personal Care, Games, E-commerce, Apparel, Financial Services and 250+ other industries to brief your creative team.
- Trend & market research — track what objectives, formats and hooks are trending by country and time window (7 / 30 / 180 days).
- Affiliate & dropshipping product research — the landing-page URL surfaces winning products and offers behind the top ads.
- Agency reporting — export a branded, structured table of the best-performing ads in your client's vertical every week.
- Monitoring — schedule recurring runs and capture only new ads to watch a competitor's or category's creative pipeline.
How to use
- Sign up for Apify — the free plan is enough to try this actor.
- Open the TikTok Ad Library & Creative Center Scraper, keep the source on Ad Library, pick the regions (GB by default), optionally type an advertiser name and a date window, then click Start. For the Creative Center ranking switch the source and choose countries / industries / objectives.
- Watch results stream into the dataset table — preview the creative thumbnails, open the Ad Library link on any row.
- Export as JSON, CSV, Excel, XML, or RSS — or pull results programmatically via the Apify API.
Input
Ad Library (default source):
{"source": "library","libraryRegions": ["GB", "DE"],"advertiserName": "Nike","libraryStartDate": "2026-06-01","librarySortBy": "last_shown_date,desc","includeAdDetails": true,"maxResults": 100}
- libraryRegions — one or more of the 33 library regions (EEA countries,
GB,CH,TR), orALLfor every region at once. Each region is read separately. - advertiserName (optional) — the library's search box; matches advertiser names (
Nikereturns NIKE Retail B.V.). Leave empty to browse every advertiser in the region. - libraryStartDate / libraryEndDate (optional) — the window in which the ad was shown,
YYYY-MM-DD; defaults to the last 30 days. - librarySortBy — last shown, created, posted, unique users or video views, ascending or descending.
- includeAdDetails (default false) — read each ad's detail record: landing-page URL, sponsor, TikTok account, and the targeting block (age ranges, genders, regions with impressions, audience size). Billed as an ad-detail event.
- includeRawData (default false) — attach TikTok's raw records as
rawItem/rawDetail.
Creative Center Top Ads:
{"source": "creative-center","countryCodes": ["US", "GB"],"period": "30","orderBy": "ctr","industries": ["Beauty & Personal Care", "Apparel & Accessories"],"objectives": ["Conversions"],"includeAdDetails": true,"maxResults": 100}
- countryCodes — Creative Center country editions, by ISO code (
US,GB,DE,FR,BR,JP,SG,ID, …). Each is scraped separately. - period — performance window the ranking is computed over:
7,30or180days. - orderBy —
for_you(TikTok's recommended ranking),ctr(highest click-through), orlike(most liked). - industries (optional) — filter by advertiser industry, by name (
"Beauty & Personal Care","Games","E-commerce") or numeric id. Each industry is scraped separately. - objectives (optional) — Traffic, App Installs, Conversions, Video Views, Reach, Lead Generation, Product Sales.
- adLanguages (optional) — filter by creative language (
en,es,ar,de, …). - includeAdDetails (default false) — open each ad's detail page to add the advertiser landing-page URL, every country the ad runs in, comments & shares, the CTR percentile, the objective breakdown and ad keywords (billed as an
ad-detailevent). - includeVideoUrl (default true) — include the direct (no-watermark) MP4 creative URL. These are temporary TikTok CDN links that expire after a few hours — fetch promptly.
- maxResults (default 100) — total ad cap across all views.
- monitorMode (default false) / monitorKey — remember ad IDs across runs and emit only new ads. Ideal on a Schedule.
- proxyConfiguration — Apify Proxy for the headless browser (the default works well).
Output (Ad Library)
One row per ad. With includeAdDetails on, the advertiser block, landing page and targeting are filled from the ad's detail record.
{"type": "ad","source": "library","adId": "1873856731654321","advertiserName": "NIKE Retail B.V.","sponsor": "INITIATIVE MEDIA B.V.","advertiserBusinessIds": "6876453864464188162","registryLocation": "Netherlands","advertiserUsername": "nike","advertiserDisplayName": "Nike","advertiserFollowerCount": "9.2M","advertiserAccountType": "VERIFIED_BA","adCaption": "Back To School With Nike","landingPageUrl": "https://www.nike.com/gb/w/back-to-school-840ik?utm_source=tiktok","firstShownDate": "2026-08-20","lastShownDate": "2026-09-05","estimatedAudience": "10K-100K","videos": [{ "videoUrl": "https://library.tiktok.com/api/v1/cdn/…/video/…", "coverImage": "https://p16-common-sign.tiktokcdn.com/…" }],"imageUrls": ["https://p16-common-sign.tiktokcdn.com/…"],"targeting": { "ageRanges": ["18-24", "25-34", "35-44"], "genders": ["female", "male", "unknown"], "locations": [{ "region": "GB", "impressions": "30K" }], "targetAudienceSize": "16.7M-20.4M" },"region": "GB","libraryUrl": "https://library.tiktok.com/ads/detail/?ad_id=1873856731654321®ion=GB","scrapedAt": "2026-09-07T08:55:53.000Z"}
Output (Creative Center)
One clean record per ad (type: "ad"):
{"type": "ad","adId": "7651891505322672144","adTitle": "¿Cabello con frizz? 🤯 Solo un toque… #AntiFrizz","brandName": null,"industry": "Haircare","industryId": "14103000000","objective": "Reach","objectiveKey": "campaign_objective_reach","countryCode": "US","countries": ["US"],"period": "last_30_days","periodDays": 30,"orderBy": "ctr","ctr": 0.01,"ctrPercentile": 0.99,"likes": 1043,"comments": 9,"shares": 59,"costTier": 1,"videoId": "v14044g50000d8lqi2fog65ktt868tbg","videoDurationSec": 23,"coverImageUrl": "https://p16-common-sign.tiktokcdn.com/…tplv-noop.image","videoUrl": "https://v16m-default.tiktokcdn.com/…mime_type=video_mp4…","videoWidth": 720,"videoHeight": 1280,"aspectRatio": 0.563,"advertiserUrl": "https://www.ulta.com/brand/eva-nyc?utm_source=tiktok&utm_medium=paid","keywords": null,"objectiveBreakdown": [{ "objective": "Reach", "weight": 5 },{ "objective": "Product Sales", "weight": 15 }],"voiceOver": false,"isSearchable": true,"searchIndustry": "Beauty & Personal Care","creativeCenterUrl": "https://ads.tiktok.com/business/creativecenter/topads/7651891505322672144/pc/en?region=US&period=30","performanceScore": 87,"isHighPerformer": true,"scrapedAt": "2026-06-26T22:00:00.000Z"}
What to expect (field coverage)
TikTok exposes some fields only on the ad detail page, and some only for certain ad types — so a few fields are populated only when applicable, never because scraping failed.
| Field group | Always present | Present when applicable |
|---|---|---|
| Core (adId, adTitle, industry, objective, countryCode, ctr, likes, period, performanceScore, creativeCenterUrl) | ✅ ~100% | — |
| Creative (videoId, duration, cover image, MP4, width/height, aspect ratio) | ✅ ~100% | — |
brandName | — | only for ads run by a registered brand account (UGC/creator/spark ads have none) |
costTier | — | only for ads with a conversion objective |
advertiserUrl, countries, comments, shares, ctrPercentile, objectiveBreakdown, keywords, voiceOver | — | with includeAdDetails: true (and a landing page only exists for click-objective ads) |
A blank field means TikTok didn't publish that value for that ad — not that the scraper skipped it.
How much does it cost to scrape TikTok Ad Library?
This Actor uses Apify's pay-per-event pricing: you are charged only for the results it delivers, with no monthly rental and no start fee. The events it can charge are:
- TikTok ad - Each top-performing TikTok ad: ad copy, brand, industry, objective, CTR, likes, video creative & Creative Center link.
- Ad detail enrichment - Each ad enriched via its detail page: advertiser landing-page URL, all countries it runs in, comments, shares, CTR percentile & objective breakdown.
The current price of each event is shown on the Pricing tab of this page. Set a maximum total charge on the run if you want a hard cap on spend, and use the input limits to control how much the Actor fetches.
Automate & schedule
Run this actor on autopilot and pull results into your own stack:
- Apify API — start runs, fetch datasets, and manage schedules over REST.
- apify-client for JavaScript and apify-client for Python — official SDKs.
- Schedules — run it daily/weekly with
monitorModeto capture new competitor or category ads as they appear. - Webhooks — trigger downstream actions (Slack alert, sheet append, creative-brief generator) the moment a run finishes.
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'MY_APIFY_TOKEN' });const run = await client.actor('scrapesage/tiktok-ad-library-scraper').call({countryCodes: ['US'],period: '30',orderBy: 'ctr',industries: ['E-commerce'],includeAdDetails: true,maxResults: 100,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(`Got ${items.length} top TikTok ads`);
Integrate with any app
Connect the dataset to 5,000+ apps — no code required:
- Make — multi-step automation scenarios.
- Zapier — push top new ads into a sheet, Notion board, or Slack channel.
- Slack — get notified when a monitored industry has new winning ads.
- Google Drive / Sheets — auto-export every run to a spreadsheet.
- Airbyte — pipe results into your data warehouse.
- GitHub — trigger runs from commits or releases.
Use with AI assistants (MCP)
The output is clean, LLM-ready JSON. Call this actor from Claude, ChatGPT, or any agent framework through the Apify MCP server — ask your assistant to "find the top-CTR beauty ads on TikTok in the US this month and summarize the hooks" and let it run this scraper for you.
Agent-ready: autonomous payments (x402 & Skyfire)
This actor is agent-ready — AI agents can discover it, run it, and pay for it autonomously, with no Apify account and no human in the loop. It uses pay-per-event pricing and limited permissions, so it qualifies for Apify's agentic-payment standards:
- x402 — an open, HTTP-native payment protocol. Agents pay per run in USDC on the Base network directly through the Apify MCP server — no account, no API key.
- Skyfire — agent-to-service payments for fully autonomous AI-agent workflows.
Building an AI agent, MCP tool, or autonomous data pipeline? This scraper is ready to plug in and pay as it goes.
More scrapers from scrapesage
Build a complete ad-intelligence & marketing-research stack:
- Google Ads Transparency Scraper — who's advertising what on Google & YouTube.
- Facebook Ad Library Scraper — competitor ad intelligence on Meta & Instagram.
- Google Trends Scraper — search-demand and rising-topic intelligence.
- Keyword Research Scraper — multi-platform autocomplete & SEO demand.
- Google News Scraper — track brand & competitor coverage.
- Twitch Scraper — channels, streams & creator leads.
- Spotify Scraper — artists, monthly listeners & playlist data.
- LinkedIn Jobs Scraper — job postings as hiring-intent signals.
Tips
- Breadth: pass several
countryCodesandindustriesto fan out across many Top-Ads views in one run; each view exposes up to a few hundred ranked ads. - Best signal: set
orderBytoctrand turn onincludeAdDetailsto rank by CTR percentile and capture the landing pages. - Fresh creatives only: use
monitorModeon a daily Schedule to build a feed of brand-new ads in your category. - Grab videos promptly:
videoUrlMP4 links are temporary TikTok CDN URLs that expire within a few hours; download them in the same run that produces them. ThecreativeCenterUrllink is permanent. - Cost control: keep
includeAdDetailsoff for fast, cheap category scans; turn it on only when you need landing pages and percentile ranks.
FAQ
Where does the data come from? From TikTok's own public Creative Center → Top Ads library (ads.tiktok.com/business/creativecenter), the official showcase of top-performing ads that TikTok publishes for marketers. No login, no API key.
Does it need the TikTok API? No. TikTok's Creative Center has no public API and signs every request in the browser; this actor runs a headless browser so TikTok's own front end performs the signing — no key, no token to maintain.
Can I search a specific brand's ads? This version browses and ranks the Top Ads by country, industry and objective (the highest-signal views). For exhaustive by-advertiser transparency in the EU, see TikTok's separate Commercial Content Library.
Can I export to Google Sheets, CSV, or Excel? Yes — one click in the dataset view, or automatically on every run via the Google Drive integration.
Why is brandName / advertiserUrl empty on some rows? Many top ads are creator/UGC ads with no brand account, and only click-objective ads have a landing page. Those fields are blank only when TikTok genuinely doesn't expose them — see the coverage table above.
The video URL stopped working — why? videoUrl is a temporary TikTok CDN link that expires after a few hours. Re-run the actor to refresh it, or use the permanent creativeCenterUrl.
Is scraping TikTok Creative Center legal? This actor collects publicly available data that TikTok publishes for marketers. You are responsible for using the data in compliance with applicable laws and TikTok's terms.
Disclaimer
This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by ByteDance Ltd. or any of its subsidiaries. All trademarks mentioned are the property of their respective owners.
"TikTok Ad Library" and any related marks are the property of their respective owners and are used here only in a descriptive, nominative sense - to identify the publicly accessible website from which this Actor collects data. This Actor is not an official TikTok Ad Library product, is not authorised or certified by ByteDance Ltd., and does not distribute TikTok Ad Library software. It collects only publicly available information; you are responsible for ensuring your use of that data complies with applicable laws, regulations and the terms of the source website.
Need help?
Open an issue on the actor's Issues tab, or visit the Apify help center. Feature requests are welcome — this actor is actively maintained.