TikTok Ads Library Scraper - Ad Library & Creative Center Ads avatar

TikTok Ads Library Scraper - Ad Library & Creative Center Ads

Pricing

from $1.60 / 1,000 ad library ads

Go to Apify Store
TikTok Ads Library Scraper - Ad Library & Creative Center Ads

TikTok Ads Library Scraper - Ad Library & Creative Center Ads

Scrape TikTok ads from the TikTok Ad Library and Creative Center: advertiser, ad text, video, dates, unique users seen, targeting, reach by country, age and gender, landing URL, CTR, likes. Search by keyword, advertiser or country, monitor new ads. From $0.99 per 1,000 ads. No login.

Pricing

from $1.60 / 1,000 ad library ads

Rating

0.0

(0)

Developer

Top Api

Top Api

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

15 hours ago

Last modified

Share

What does TikTok Ads Library Scraper do?

TikTok Ads Library Scraper extracts TikTok ads from TikTok's two public ad sources in one actor: the TikTok Ad Library (library.tiktok.com, every ad shown in the EU, EEA, UK, Switzerland and Turkey) and the TikTok Creative Center Top Ads (ads.tiktok.com, top-performing ads worldwide). Search by keyword, advertiser, country or date and get one row per ad with advertiser, ad text, video, first and last shown dates and unique users seen, plus optional targeting and reach by country, age and gender. Built for marketers, agencies and brand-safety teams who track competitors' TikTok advertising.

TikTok ads scraper · TikTok Ad Library scraper · TikTok Creative Center scraper · TikTok ads spy tool

TikTok Ad Library search page that TikTok Ads Library Scraper turns into rows

  • TikTok Ad Library ads: advertiser, ad text, format, video and images, first and last shown dates, days running, unique users seen, removal and restriction notices
  • Targeting and reach (add-on): targeted countries, ages, genders, interests and audiences, unique users seen by country × age × gender, landing URL, call to action, objective, who paid for the ad, the advertiser's TikTok account
  • Creative Center Top Ads: CTR, likes, budget level, industry, objective, video in every resolution; add-on details with landing page, comments, shares, countries; second-by-second keyframe curves included free
  • Top Ads Spotlight and creators' commercial content: TikTok's own case studies with reported results, and creators' paid partnerships and promotional posts
  • No login, no cookies, no TikTok API key: paste a keyword, an advertiser name, a TikTok URL or an ad id
  • Monitor mode: schedule it and get only the ads that are new since the last run
  • Export anywhere: JSON, CSV, Excel; schedules, webhooks, Make, Zapier, n8n, Google Sheets, the Apify API and MCP

What data can you get from the TikTok Ad Library?

🆔 Ad id and ad page (adId, adDetailUrl)🏢 Advertiser and business id📝 Ad text (adTitle)
📅 First and last shown dates⏱️ Days running👀 Unique users seen (estimatedAudience)
🎬 Video, cover and images🔗 Landing URL and call to action🎯 Campaign objective
🌍 Targeted countries, ages, genders📊 Reach by country × age × gender💳 Paid for by (adPaidForBy)
👤 Advertiser's TikTok account and followers🚫 Removal and restriction notices📈 Creative Center CTR, likes, budget level
🏭 Industry and objective names⏯️ Keyframe CTR, CVR and retention by second🤝 Creators' paid partnerships

On two 100-ad Zalando runs with Ad Library details on, every row had dates, unique users seen, targeting, reach by country and payer; 87-88% had a call to action, 90-91% an objective, 93-97% a landing URL and 91-92% the advertiser's TikTok account.

How to scrape the TikTok Ad Library with TikTok Ads Library Scraper

  1. Create a free Apify account — the free plan includes monthly credit.
  2. Open TikTok Ads Library Scraper and click Try for free.
  3. Pick the Ad sources, then type a keyword into Search terms or a brand into Advertiser names, and choose the Ad Library countries.
  4. Set Max ads and switch on Ad Library details if you want targeting and reach.
  5. Click Start. Rows stream into the dataset as they are found.
  6. Open the Storage tab and Export as JSON, CSV or Excel — or save the input as a task and put it on a schedule.

⬇️ Input for TikTok Ads Library Scraper

ParameterTypeDescription
🔍 What to scrape
sourcesListlibrary (default), creative_center, spotlight, other_commercial_content. Any combination.
searchTermsListKeywords, e.g. running shoes. Put a term in quotes for an exact phrase. For creators' commercial content: creator usernames. For the Creative Center: matched on the ad caption.
advertiserNamesListBrands as the Ad Library names them, e.g. nike, Zalando, looked up in TikTok's own advertiser search box. Pin any entity with `Name
advertiserMatchSelectcontains (default: every advertiser whose name starts with the term as a whole word, e.g. Nike Store and Nike, Inc. for nike, not NIKELAB LTD or TikTok handles like nike_shop) or exact (the name alone, legal form ignored).
adIdsListAd Library ad ids or Creative Center top ad ids.
startUrlsURLsAd Library search or ad URLs, other commercial content URLs, Creative Center top ad URLs.
🎯 Ad Library filters
countriesListall (default) or any of the 33 countries the library covers.
dateFrom / dateToDateAds last shown in this window; absolute (2026-01-31) or relative (12 months). Default: since October 2022.
timezoneTextIANA timezone for the dates. Default UTC.
sortBySelectLast shown, published date or unique users seen, either direction. Default: last shown, newest first. Advertiser searches follow it. Keyword searches are read one week at a time, newest week first, in TikTok's own order within each week.
adType, adStatus, ages, adReach, genderSelectFormat (video / image / text), active or inactive, target ages, unique-users bucket, target gender.
occSortBySelectOrder of creators' commercial posts: posted date or views.
🎯 Creative Center filters
ccCountriesList28 Creative Center countries; empty = all regions.
ccPeriodSelectLast 7, 30 (default) or 180 days.
ccIndustries, ccObjectives, ccAdLanguagesListIndustry, campaign objective, ad language.
ccAdFormat, ccLikes, ccSortBySelectSpark / non-Spark Ads, likes percentile, sort (For you, Reach, CTR, 2s and 6s view rate, CVR, Likes).
✂️ Refine results
excludeKeywordsListDrop ads whose title, advertiser, brand or creator contains a word.
minLikesIntegerCreative Center / Spotlight: minimum likes.
includeRemovedAdsBooleanAd Library ads TikTok removed carry no advertiser or creative. Default false (skipped).
➕ Extra data
includeDetailsBooleanAd Library targeting, reach by country × age × gender, landing URL, CTA, objective, payer, advertiser account — event ad-details.
maxDetailsIntegerAd Library details on at most this many ads, from searches, ad ids and ad URLs alike; the rest come without them and are not charged ad-details. 0 = no limit. Top ad details are not counted.
includeTopAdDetailsBooleanCreative Center landing page, objectives, comments, shares, countries, creative summary — event top-ad-details.
keyframeMetricsListretain_ctr, retain_cvr, click_cnt, convert_cnt, play_retain_cnt curves. Free.
🔁 Monitoring
monitorMode, monitorStoreNameBoolean, TextReturn only ads not delivered by earlier runs with the same store.
monitorChangesBooleanAlso re-deliver known Ad Library ads whose last shown date or reach changed.
📦 Output
maxResultsIntegerDefault 100; 0 = no limit.
maxResultsPerSearchIntegerCap per search term, advertiser, URL or source.
compactBooleanCore fields only, for AI agents and MCP. An add-on you turn on keeps all its fields and detailsFetched on every row, so a compact row never drops a field it is charged for; requested keyframes are kept too.
⚙️ Advanced
proxyConfiguration, maxConcurrencyProxy, IntegerOptional proxy; parallel sessions (default 4).

Input JSON

{
"advertiserNames": ["nike"],
"countries": ["FR"],
"dateFrom": "12 months",
"includeDetails": true,
"maxResults": 100
}

Search an advertiser by name, not by keyword

A keyword (searchTerms) matches the ad text, so nike also returns retailers that mention Nike. An advertiser (advertiserNames) is looked up in the advertiser search box of TikTok's Ad Library and returns those advertisers' ads only. That box matches the start of a name and shows 5 names at a time, so the actor asks again with longer prefixes (nike , nike,, nike a ...) until it has every advertiser whose name starts with the term as a whole word: in our tests nike found 7 (NIKE Retail B.V., NIKE COM SRL, Nike Store, Nike Factory Store, Nike Unite, Nike, Inc. and nike x solana), zalando 7 (Zalando SE among them) and lidl 33 (LIDL ITALIA SRL, Lidl Schweiz DL AG, LIDL STIFTUNG & CO KG and the other national entities), where the box alone shows 5. Not matched: names where the word runs on (NIKELAB LTD), TikTok handles (nike_shop) and names with the term further in (Air Nike), which the box never shows; pin any of those with Name|advertiser id. Do: "advertiserNames": ["nike"] · Don't: "searchTerms": ["nike ads"].

Quote a phrase for an exact match

running shoes matches ads with either word ranked by relevance; "running shoes" (with the quotes) matches the exact phrase, the same as the Ad Library's own quoted search.

Pick the source before the filters

Countries (except Switzerland and the UK) and dates also apply to creators' commercial content, ordered by occSortBy; adType, adStatus, ages, adReach, gender and sortBy are Ad Library only. Creative Center filters start with cc. Both sources can run in one input.

⬆️ TikTok ads output

Every ad becomes one dataset item; source says which TikTok source it came from. Here is the table view of an advertiser run with Ad Library details on:

TikTok Ads Library Scraper output table with targeting and reach

An Ad Library ad with details, as JSON (shortened):

{
"source": "library",
"adId": "1878351002796241",
"adDetailUrl": "https://library.tiktok.com/ads/detail/?ad_id=1878351002796241",
"advertiserName": "Zalando Lounge c/o Zalando SE",
"adTitle": "E un nou sezon! Ia-ți îmbrăcăminte sport de la mărci de top ...",
"adFormat": "video",
"firstShownDate": "2026-10-07",
"lastShownDate": "2026-10-07",
"estimatedAudience": "0-1K",
"callToAction": "Apply now",
"campaignObjective": "Sales",
"adPaidForBy": "ZALANDO LOUNGE SERVICE GMBH",
"advertiserCountry": "Germany",
"targeting": { "countries": ["RO"], "ages": ["18-24", "25-34", "35-44", "45-54", "55+"], "genders": ["female", "male", "unknown"] },
"targetAudienceSize": "8.2M-10.0M",
"uniqueUsersSeenByCountry": [{ "region": "RO", "impressions": "0-1K", "breakdowns": [{ "age": "18-24", "gender": "FEMALE", "impressions": "0-1K" }] }]
}

A Creative Center top ad (shortened):

{
"source": "creative_center",
"adId": "7686346996722745360",
"adTitle": "Discover the world of Emiriah perfumes. Find the fragrance that speaks to you.",
"industryName": "Fragrances & Perfumes",
"objectiveName": "Conversions",
"ctr": 0.81,
"likes": 71,
"videoDuration": 18.8,
"landingPage": "https://www.emiriah.com?utm_source=tiktok...",
"countryCodes": ["AE", "MX", "US", "IT"],
"keyframeMetrics": { "retain_ctr": { "duration": 20, "highlight": [3] } }
}

TikTok ads fields

FieldSourceWhat it isFill on test runs
adId, adDetailUrl, firstShownDate, lastShownDate, estimatedAudienceAd LibraryId, ad page, shown dates, unique users seen100%
advertiserNameAd LibraryAdvertiser100% (live ads)
adTitleAd LibraryAd text98% on Zalando runs, 63-67% on nike FR runs, 100% on keyword runs (catalog ads print none)
videoUrl / imageUrlsAd LibraryCreative38-40% / 36-38% on Zalando runs, 97% / 95% on keyword runs (catalog ads print no creative)
targeting, uniqueUsersSeenByCountry, targetAudienceSize, adPaidForBydetailsTargeting, reach and payer100%
callToAction / campaignObjectivedetailsCall to action, objective87-88% / 90-91%
adLandingUrldetailsLanding page93-97%
advertiserTiktokAccountdetailsUsername, followers, verified, profile91-92%
ctr, likes, cost, objectiveName, videoUrlCreative CenterPerformance and video100%
industryNameCreative CenterIndustry96%
landingPagetop-ad detailsLanding page75-77%
comments, shares, countryCodes, objectivestop-ad detailsEngagement and reach100%
creativePatterns, creativeSummarytop-ad detailsTikTok's creative summaryrare on recent ads: none of 200 top ads on two 30-day runs (the default); 13 of 60 on a 180-day run sorted by likes
keyframeMetricsCreative CenterSecond-by-second curves100% when requested
creatorUsername, contentLabel, postedDate, videoViewsCommercial contentCreator post100%

How can I use TikTok ads data?

  • 🕵️ Competitive intelligence — see every ad a competitor ran in Europe, when, how long, and to how many people
  • 🎯 Media planners — read the targeting (countries, ages, genders, interests) and the reach by country behind a brand's campaigns
  • 🎨 Creative teams — pull top-performing Creative Center ads by industry with CTR, likes and second-by-second retention
  • 🛡️ Brand safety and compliance — track removed and restricted ads with TikTok's stated reasons and affected countries
  • 🤝 Influencer marketing — list creators' paid partnerships and promotional posts by country
  • 🤖 AI and research teams — feed compact rows to an LLM or a dashboard
  • 📈 Agencies — schedule a daily run per client and get only new ads

How much does it cost to scrape TikTok ads?

TikTok Ads Library Scraper is pay-per-result, no start fee:

EventPricePer 1,000
Ad Library ad or creator commercial post (ad)$0.0016$1.60
Ad Library details add-on (ad-details)$0.001$1.00
Creative Center top ad or Spotlight case (top-ad)$0.00099$0.99
Creative Center details add-on (top-ad-details)$0.001$1.00
AdsAd LibraryAd Library + detailsCreative CenterCreative Center + details
10$0.016$0.026$0.0099$0.0199
100$0.16$0.26$0.099$0.199
1,000$1.60$2.60$0.99$1.99
10,000$16.00$26.00$9.90$19.90

Add-ons are charged only for ads that get them. There is nothing else to pay: Apify platform usage is included in these prices. Measured on the default 256 MB, two runs each: 30 ads in about 10 s, 100 advertiser ads with details in 52-117 s (TikTok's answer times vary), 150 keyword ads in about 28 s, 100 top ads with details and keyframes in 74-100 s.

Integrations, API, scheduling & MCP

  • Schedules: run TikTok Ads Library Scraper daily or weekly from the Schedules tab; with monitorMode each run returns only new ads.
  • Webhooks: call a URL when a run finishes to push the ads to a CRM, Slack or a sheet.
  • No-code: Make, Zapier, n8n, Google Sheets, Airtable and Slack through Apify integrations.
  • API: start runs and read datasets from Node.js or Python with apify-client — code on the API tab.
  • MCP / AI agents: connect Claude, Cursor or any MCP client through the MCP tab and ask for a brand's TikTok ads in plain language; compact keeps the rows short.

More TopApi scrapers

🎵 TikTok Scraper — posts by profile, hashtag, keyword🎬 TikTok Video Scraper — stats by video URL🔎 TikTok User Search Scraper — creators by keyword
💼 LinkedIn Ad Library Scraper — LinkedIn ads📘 Facebook Search Posts Scraper📄 Facebook Page Posts Scraper
📸 Instagram Scraper▶️ YouTube Shorts Scraper📊 SimilarWeb Scraper — a landing page's traffic
🌐 Website Content Crawler — landing page text🧭 All TopApi actors

Limits & empty runs

  • Ad Library coverage: ads shown in the EU, EEA, UK, Switzerland and Turkey (TikTok's transparency library, 33 countries). The Creative Center covers top ads in 28 countries worldwide.
  • TikTok's "5,000" total: TikTok reports 5,000 as the total of every keyword search, whatever its size (a one-day search too). The actor does not stop there; it reads on until TikTok's last page. Measured: one all-ads search gave 6,300 ads in one run with more left, and an advertiser search passed 5,900 ads with more left.
  • Keyword searches are read one week at a time, newest week first. Over long date ranges TikTok's keyword search often stops early: "sale" over 12 months ended after 47 ads in one run and 236 in another, while the latest 7 days alone gave over 2,500. An ad shown in two weeks is delivered once. Advertiser searches are read in one pass, newest first.
  • Advertiser searches that TikTok ends early: TikTok often stops an advertiser search short of the total it reports, on a part-full page marked as the last (measured: 6 times in one 30-day walk of 2,007 ads). The actor then asks TikTok again from where it stopped, on a fresh session token, up to 3 times; the first try recovered 5 of those 6 and a second try the last. If TikTok still ends the search, the run marks it incomplete (endedEarly in the run summary) and the status line names the search, the ads read and TikTok's total, and says to re-run it (with monitorMode on, the re-run skips the ads already delivered).
  • 20 top ads per Creative Center filter set: for more, the actor also reads the other sorts, countries, industries and objectives (100 unique US top ads took 57-71 filter sets in two runs). Keyword search in the Creative Center needs a TikTok For Business login, so searchTerms filters the captions TikTok serves.
  • Not available: impressions and spend (TikTok prints 0 and blank for every ad measured), and catalog ads' creatives.
  • Video links expire after some hours; download them soon after the run.
  • Empty dataset: no ad matched the countries and dates, the advertiser name matched nothing (it is then searched as a keyword), every ad was removed by TikTok (see includeRemovedAds), or your filters dropped every ad TikTok returned. The status line names the reason and counts the ads each filter dropped.

FAQ

How many ads can TikTok Ads Library Scraper collect in one run?

As many as you set in maxResults. maxResults is the total for the whole run; set maxResultsPerSearch to cap each advertiser, keyword or URL. TikTok labels every keyword search with a total of 5,000, but the actor keeps reading until TikTok's last page (6,300 ads from one search measured, with more left), and reads keyword searches one week at a time so an early stop by TikTok costs one week, not the whole search.

Can I run TikTok Ads Library Scraper on a schedule to get new ads automatically?

Yes. Save the input as a task, add a schedule, and turn on monitorMode with a monitorStoreName. Each run returns only ads it has not delivered before; a poll with nothing new returns an empty dataset. Once a search has been read to its end, a keyword search re-reads only the ads shown since a week before that run, so a new ad is found wherever TikTok ranks it. An advertiser search stops at the first page with nothing new, because its ads come newest first.

Does TikTok Ads Library Scraper show targeting and reach for TikTok ads?

Yes, with includeDetails on: targeted countries, ages, genders, interests and audiences, the target audience size, and unique users seen by country, age and gender — the same data the Ad Library shows on each ad's page.

Can TikTok Ads Library Scraper get ads outside Europe?

The Ad Library itself covers the EU, EEA, UK, Switzerland and Turkey. For other countries use the creative_center source, which covers top ads in 28 countries including the US.

Can I integrate TikTok Ads Library Scraper with other apps?

Yes — Make, Zapier, n8n, Google Sheets, Slack and more via Apify integrations, or webhooks when a run finishes.

Can I use TikTok Ads Library Scraper with the Apify API?

Yes. Use apify-client for Node.js or Python to start runs and read the dataset.

Can I use TikTok Ads Library Scraper through an MCP server?

Yes. Open the MCP tab, connect your MCP client and ask for TikTok ads in plain language. Turn on compact for shorter rows.

Do I need a TikTok account, cookies or an API key for TikTok Ads Library Scraper?

No. It reads what the TikTok Ad Library and Creative Center show to any visitor.

Why did my TikTok Ads Library Scraper run return no ads?

Usually the countries and dates leave nothing (widen dateFrom or use all countries), the keyword only matches ads TikTok removed, or your excludeKeywords / minLikes filters dropped every ad. The run's status message counts what each filter dropped; the RUN_SUMMARY record has the details.

TikTok Ads Library Scraper extracts only ad data that TikTok publishes publicly in its Ad Library and Creative Center; it does not log in. Results can contain personal data (for example creators' usernames), which is regulated in many countries, so make sure you have a legitimate purpose.

Your feedback

Found a bug or missing a field in TikTok Ads Library Scraper? Open an issue on the Issues tab.

This actor is an independent tool, not affiliated with or endorsed by TikTok or ByteDance.