TikTok Ad Library & Creative Center Scraper avatar

TikTok Ad Library & Creative Center Scraper

Pricing

from $4.00 / 1,000 tiktok ads

Go to Apify Store
TikTok Ad Library & Creative Center Scraper

TikTok Ad Library & Creative Center Scraper

Scrape TikTok ads from the public Ad Library (EEA, UK, Switzerland, Turkey) and Creative Center Top Ads: advertiser & sponsor, dates shown, reach, creatives, landing page & targeting. Filter by advertiser, region, date & audience; monitor new ads. Independent tool, not affiliated with ByteDance.

Pricing

from $4.00 / 1,000 tiktok ads

Rating

0.0

(0)

Developer

Scrape Sage

Scrape Sage

Maintained by Community

Actor stats

0

Bookmarked

29

Total users

12

Monthly active users

9 days ago

Last modified

Share

TikTok Ad Library & Creative Center Scraper - Ads, Advertisers, Targeting & Top Ads

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.

Pull every TikTok ad shown in Europe - and TikTok's ranking of its top-performing ads worldwide - into a clean, export-ready dataset. Search by advertiser, country, date window, ad format, active or inactive status, target age, target gender and reach, and optionally add each ad's detail record: who paid for it, where it sends traffic, the campaign objective and exactly who it targeted.

Two TikTok sources in one Actor:

  • TikTok Ad Library (default) - TikTok's public Commercial Content Library at library.tiktok.com. It lists the ads shown in the EEA, the UK, Switzerland and Turkey (33 regions): advertiser, ad text, format, industry, first and last shown dates, unique users reached, the video or image creative and a permanent link. With details on: the paying sponsor, the advertiser's business ID and registry country, their TikTok account and follower count (when linked), the landing-page URL and call to action, the campaign objective and the targeting - age groups, genders, countries, regions and cities, reach by age and gender, audience size and interests.
  • TikTok Creative Center Top Ads - the ranking TikTok publishes for marketers: ad copy, brand, decoded industry and campaign objective, CTR and likes, the video creative, and with details the landing page, every country the ad runs in, comments, shares and the CTR percentile.

Both sources share the same core columns (advertiser, ad text, format, industry, region, creative, link), so one table and one integration work for either.

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.

Why this TikTok ad scraper?

This Actor
Every ad an advertiser ran in Europe, not just a "top" sample✅ Ad Library
Exact advertiser match (only NIKE Retail B.V., not resellers that mention Nike)✅
Many advertisers × many countries in one run, with the cap shared fairly✅
Filters by format, active/inactive, target age, gender and reach✅
Paying sponsor, business ID, registry country, landing page, call to action✅ opt-in details
Targeting: ages, genders, countries/regions/cities, reach by age × gender, interests✅ opt-in details
Top-ads ranking with CTR, likes, decoded industry & objective✅ Creative Center
Monitor mode - only ads you have not received before✅
Pay only for ads delivered; nothing billed when nothing is found✅

Use cases

  • Competitor ad tracking - every ad a competitor ran in each European market, when it started and stopped, how many people it reached and where it sends them.
  • Targeting research - see which age groups, genders, countries and interests advertisers in your space pay to reach.
  • Creative inspiration - pull the video and image creatives behind an advertiser's campaigns, or TikTok's own top-performing ads by industry and objective.
  • Agency and brand reporting - a weekly table of a client's or a category's new ads, with landing pages and reach.
  • Transparency and compliance research - sponsors, registry countries and ads TikTok removed for policy reasons, across the EEA, UK, Switzerland and Turkey.
  • Monitoring - schedule it with monitor mode and receive only ads you have not seen before.

How to use

  1. Sign up for Apify - the free plan is enough to try it.
  2. Open the Actor, keep the source on Ad Library, pick one or more regions, type an advertiser (or leave it empty to browse every advertiser), and click Start.
  3. Turn on Add each ad's detail record when you need sponsors, landing pages and targeting.
  4. Export the dataset as JSON, CSV, Excel, XML or RSS, or pull it over the Apify API.

For TikTok's top-ads ranking, switch the source to Creative Center Top Ads and pick countries, industries, objectives and a time window.

Input

Ad Library (default source)

{
"libraryRegions": ["ES", "DE", "FR"],
"advertiserName": "NIKE Retail B.V.",
"advertiserMatch": "exact",
"libraryStartDate": "2026-09-01",
"adFormat": "video",
"includeAdDetails": true,
"maxResults": 100
}
  • libraryRegions - one or more of the 33 library regions (EEA countries, GB, CH, TR), or ALL to search every region at once. Each region is searched separately and Max ads is shared fairly between them.
  • advertiserName / advertiserNames - one advertiser, or a list for several in one run. Leave both empty to browse every advertiser.
  • advertiserMatch - contains (the library's normal, broad search) or exact (only the advertiser with exactly that name). Wrapping a name in double quotes also makes it exact.
  • libraryStartDate / libraryEndDate - the window in which the ad was shown, YYYY-MM-DD, end date inclusive. Default: the last 30 days.
  • librarySortBy - last shown, created, or unique users reached; newest/most first or oldest/fewest first.
  • adFormat - all, video, image or text ads.
  • adStatus - all, active (still running) or inactive ads.
  • audienceAges, audienceGender, audienceReach - only ads targeted at these age groups or this gender, or that reached this many unique users.
  • includeAdDetails - add each ad's detail record (sponsor, landing page, objective, targeting). Billed as an extra event per ad.
  • maxResults - total ads across all searches. maxResultsPerQuery - optional hard cap per region × advertiser search.
  • monitorMode / monitorKey - return only ads that earlier runs with the same key have not delivered.
  • includeVideoUrl - include the creatives' video links (default on). includeRawData - attach TikTok's raw records.

Creative Center Top Ads

{
"source": "creative-center",
"countryCodes": ["US", "GB"],
"period": "30",
"orderBy": "ctr",
"industries": ["Beauty & Personal Care"],
"objectives": ["Conversions"],
"maxResults": 40
}
  • countryCodes - country editions by ISO code (US, GB, DE, FR, BR, JP, SG, ID, …).
  • period - 7, 30 or 180 days. orderBy - for_you (TikTok's recommended order), ctr or like.
  • industries, objectives, adLanguages - optional filters; each combination is its own ranking (a "view"). An industry or objective name TikTok does not recognise is skipped and named in the run message.
  • Anonymous visitors see a preview of each ranking: up to 20 ads per view. Use several countries, periods, industries or objectives to cover more ads.

Output

One row per ad. An Ad Library row with details on (excerpt):

{
"type": "ad",
"source": "library",
"adId": "1877846837903602",
"advertiserName": "NIKE Retail B.V.",
"adCaption": null,
"adFormat": "video",
"industry": "Apparel & Accessories",
"coverImageUrl": "https://p16-common-sign.tiktokcdn.com/…",
"videoUrl": "https://library.tiktok.com/api/v1/cdn/…/video/…",
"firstShownDate": "2026-10-01",
"lastShownDate": "2026-10-03",
"estimatedAudience": "10K-100K",
"auditStatus": "1",
"region": "ES",
"adUrl": "https://library.tiktok.com/ads/detail/?ad_id=1877846837903602",
"hasDetails": true,
"objective": "Video views",
"callToAction": "Shop now",
"landingPageUrl": "https://www.nike.com/es/w/mind-game-avw?cp=…",
"sponsor": "INITIATIVE MEDIA B.V.",
"advertiserBusinessIds": "6876453864464188162",
"registryLocation": "Netherlands",
"targeting": {
"ageRanges": ["18-24"],
"genders": ["female", "male", "unknown"],
"locations": [{ "region": "ES", "impressions": "70K" }],
"reachBreakdown": [
{ "region": "ES", "age": "18-24", "gender": "FEMALE", "impressions": "51K" },
{ "region": "ES", "age": "18-24", "gender": "MALE", "impressions": "21K" }
],
"targetAudienceSize": "1.9M-2.3M",
"interests": "Health & Fitness, Sports & Fitness, Exercise & Fitness, Physical Fitness, Sports",
"countries": ["ES"],
"operatingSystems": ["ALL"]
},
"scrapedAt": "2026-10-05T04:46:13.911Z"
}

A Creative Center row carries the same core columns plus the ranking metrics (excerpt):

{
"type": "ad",
"source": "creative-center",
"adId": "7393101806694400016",
"advertiserName": "Company",
"adCaption": "Want a well-paid job in US? Learn Heavy-Duty Truck Driving",
"adFormat": "video",
"industry": "Business & Economy",
"objective": "Conversions",
"region": "US",
"ctr": 0.92,
"likes": 1,
"videoDurationSec": 13,
"aspectRatio": 0.563,
"performanceScore": 58,
"isHighPerformer": false,
"period": "last_7_days",
"adUrl": "https://ads.tiktok.com/business/creativecenter/topads/7393101806694400016/pc/en?region=US&period=7",
"videoUrl": "https://v16m-default.tiktokcdn.com/…"
}

Which fields fill, and when

A blank field means TikTok did not publish that value for that ad - never that a page was skipped.

FieldsWhen they are filled
adId, adFormat, firstShownDate, lastShownDate, estimatedAudience, auditStatus, adUrl (Ad Library)Every row
advertiserName, coverImageUrl, videos / imageUrlsEvery ad TikTok shows in full. For ads TikTok has restricted (auditStatus "2") the library itself hides the advertiser and the creative ("Name not available").
adCaptionWhen the ad has text; many video and image ads have none.
industryWhen TikTok has categorised the ad (most ads).
regionThe region you searched. Searches over ALL regions leave it empty (the library does not say which region each ad came from); with details on, targeting.countries lists them.
removedInRegions, rejectionInfoOnly for ads TikTok removed in some regions for a policy violation.
objective, sponsor, advertiserBusinessIds, registryLocation, targeting, displayModeWith includeAdDetails on. Inside targeting, each list is filled only where the advertiser used that setting, and reachBreakdown only where TikTok publishes per-group figures.
landingPageUrl, callToAction, downloadUrlWith details on, for ads that link out (a website, or an app download).
advertiserUsername, advertiserDisplayName, advertiserProfileUrl, advertiserAvatarUrl, advertiserFollowerCount, advertiserAccountTypeWith details on, when the advertiser has linked a TikTok account to its ads.
Creative Center ctr, likes, industry, objective, video fieldsEvery Creative Center row. brandName / advertiserName only for ads run by a registered brand; costTier only for some conversion ads.
Creative Center landingPageUrl, countries, comments, shares, ctrPercentile, objectiveBreakdown, keywordsWith details on (keywords only when TikTok tagged the ad).

Tips

  • Exact advertiser: use advertiserMatch: "exact" with the legal name the library shows (for example NIKE Retail B.V.) to get only that advertiser's ads.
  • Many advertisers at once: put them all in advertiserNames and pick your regions - one run, one dataset, the cap shared fairly.
  • Details at speed: detail records load one ad page each; giving the run 4 GB of memory makes detail runs about two to three times faster (Creative Center details even more).
  • New ads only: monitor mode reads the newest-created ads first and returns only ads earlier runs with the same monitorKey have not delivered - ideal on a daily Schedule.
  • Video links expire: videoUrl links are temporary; download creatives in the same run. adUrl is permanent.

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 ad delivered to your dataset, from either source.
  • Ad detail enrichment - each delivered ad whose detail record was added (only when includeAdDetails is on, and only for ads whose detail record actually loaded).

Searches that find nothing, ads you already received in monitor mode, and detail records that did not load are never billed. 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 Max ads to control how much the Actor fetches.

Automate & schedule

Run this Actor on autopilot and pull results into your own stack:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'MY_APIFY_TOKEN' });
const run = await client.actor('scrapesage/tiktok-ad-library-scraper').call({
libraryRegions: ['GB', 'DE'],
advertiserNames: ['NIKE Retail B.V.', 'adidas'],
advertiserMatch: 'exact',
includeAdDetails: true,
maxResults: 100,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Got ${items.length} TikTok ads`);

Integrate with any app

Connect the dataset to thousands of apps - no code required:

  • Make - multi-step automation scenarios.
  • Zapier - push new ads into a sheet, Notion board or Slack channel.
  • Slack - get notified when a monitored advertiser launches new 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 "list every TikTok ad NIKE Retail B.V. ran in Germany this month, with landing pages and target ages" and let it run this Actor 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:

FAQ

Where does the data come from? From two public TikTok websites: the Commercial Content Library at library.tiktok.com (the ad repository TikTok publishes for the EEA, UK, Switzerland and Turkey) and the Top Ads section of TikTok Creative Center. No login and no API key.

Which countries does the Ad Library cover? The 27 EU countries plus Iceland, Liechtenstein, Norway, the UK, Switzerland and Turkey - 33 region codes, or ALL. For ads shown in the US and other countries, use the Creative Center source.

Why is the advertiser name or creative blank on some rows? For ads TikTok has restricted, the library itself shows "Name not available" and no creative (auditStatus "2"). Everything the library shows is delivered.

What is the difference between "contains" and "exact" advertiser search? "Contains" is the library's normal search and also returns advertisers whose name merely includes your words. "Exact" returns only the advertiser with exactly that name.

Does it need the TikTok API or a TikTok account? No. The Actor opens TikTok's own public web pages in a headless browser, exactly as a visitor would.

How is this Actor billed? Pay-per-event: you pay only for the ads it delivers (and for detail records when you ask for them), with no monthly rental and no start fee. The per-event price is shown on the Pricing tab.

Can I schedule it and get results automatically? Yes - create a Schedule and add a webhook or an integration (Google Sheets, Slack, Make, Zapier) to push each run's dataset wherever you need it.

Which export formats are available? Every run's dataset can be downloaded as JSON, CSV, Excel (XLSX), XML, HTML or RSS from the Apify Console or the API.

Can I run it from code or an AI agent? Yes - through the Apify API and client libraries, or from Claude, ChatGPT and other assistants via the Apify MCP server.

Is it legal to scrape TikTok Ad Library? This Actor collects publicly available data only. You are responsible for using the output in compliance with applicable laws (including data-protection law where personal data is involved) and the source's terms. See Data & lawful use and the Disclaimer below.

Is this an official TikTok Ad Library tool? No. It is an independent, third-party Actor with no affiliation to, endorsement by or sponsorship from ByteDance Ltd. See the Disclaimer below.

Data & lawful use

This Actor reads only what TikTok Ad Library publishes to logged-out visitors: it does not log in, create accounts, use anyone's credentials, or reach anything behind a sign-in. Like any logged-out browser, it accepts the anonymous visitor cookies and the anonymous visitor token TikTok Ad Library issues to every visitor, because TikTok Ad Library's public pages and data feeds answer only requests that carry them; they identify no person and are discarded when the run ends. Names, handles, bios and engagement figures are public, but they relate to identifiable people, so treat the output as personal data. If you are in the EU or UK you are the data controller for what you do with it: have a lawful basis (usually legitimate interest for research, marketing analytics or B2B prospecting), honour access and deletion requests, and do not use the output for spam or unsolicited messaging.

Under Apify's Standard Actor Contract, which governs your use of this Actor, you are the controller of any personal data in your input and output and scrapesage acts only as your processor: that data is processed solely to run your job, written only to your own Apify storage, never used for any other purpose and never shared onward. If you need help with a data-subject request that involves this Actor's output, open an issue on the Issues tab.

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.