TikTok Ads Library Scraper — EU TikTok Ad Library Search avatar

TikTok Ads Library Scraper — EU TikTok Ad Library Search

Pricing

from $18.00 / 1,000 full ad detail extractions

Go to Apify Store
TikTok Ads Library Scraper — EU TikTok Ad Library Search

TikTok Ads Library Scraper — EU TikTok Ad Library Search

Scrape the TikTok Ads Library by keyword, advertiser, or ad ID across 30+ EU/EEA countries. Quick mode returns ad creatives and dates at $0.005 per ad; full mode adds video URLs, targeting demographics, and reach. Search up to 10 keywords in a single run.

Pricing

from $18.00 / 1,000 full ad detail extractions

Rating

0.0

(0)

Developer

jy-labs

jy-labs

Maintained by Community

Actor stats

0

Bookmarked

49

Total users

7

Monthly active users

14 days ago

Last modified

Share

TikTok Ad Library Fast Search

Extract TikTok ad data 3-5x faster than alternatives. Get ad creatives, video URLs, targeting demographics, and advertiser intelligence from TikTok's official Ad Library across 30+ European countries.

Starting from $0.005 per ad. No monthly subscription. No coding required.

FeatureThis toolManual browsing
Speed50 ads in ~1 min (Quick Search)50 ads in ~30+ min
Keywords per runUp to 10 simultaneously1 at a time
Output formatJSON, CSV, ExcelCopy-paste only
Video URLsDirect CDN download linksNo download option
Targeting dataAge, gender, location breakdownsLimited visibility
SchedulingAutomate daily/weekly runsManual every time

Two search modes

Quick Search ($0.005/ad) — 3-5x faster

Extracts basic ad data directly from search results without visiting detail pages. Best for bulk monitoring, trend analysis, and large-scale competitor tracking.

You get: Ad ID, title, type, cover image, dates, advertiser name, estimated audience, ad caption.

Full Search ($0.020/ad) — Complete data

Visits each ad's detail page to extract everything. Best for deep competitive analysis, targeting research, and creative intelligence.

You get: Everything in Quick Search, plus landing page URL, call to action, video URLs, impressions, advertiser profile, location/age/gender targeting breakdowns, and "paid for by" entity.

Time limit: Full Search opens one detail page per ad, observed at about 4–5.5 seconds each including the pause between pages, inside the per-keyword timeout (requestHandlerTimeoutSecs, default 180 s, of which about 30 s is reserved for run overhead). Searching and loading more result pages take another 10–60 s, and the Actor stops opening detail pages shortly before the timeout. In practice that is about 25 Full Search ads per keyword at the default timeout (26–27 observed). At 600 s time is no longer the limit for the default 60 cards (maxPages 5 × 12); raise the timeout if you need more than about 25 Full Search ads per keyword. The status message says how many ads were left out for time.

What you are charged in Full Search: the Full Search price only for ads whose detail page data actually arrived (detailStatus: "fetched"). If a detail page fails to load, the ad is still delivered with its search-card data, marked detailStatus: "failed", and charged at the Quick Search price. If a keyword times out, ads already loaded are saved the same way (card data only, Quick Search price).

Full-phrase filter for multi-word searches

TikTok's own Ad Library search is loose for phrases: searching Liquid Death also returns "Liquid Love" and "Liquid Live Wallpaper" ads. For searches of two or more words, this Actor delivers — and charges for — only ads where the whole phrase appears in the ad caption, the advertiser name, or the landing page URL (case-, accent- and apostrophe-insensitive; #liquiddeath, LiquidDeath, liquiddeath.com and /liquid-death count; Liquid Deathly, plain liquiddeath in text and hundredbullets.com for red bull do not — URLs match whole domain labels or path segments only). Everything else is skipped and never charged.

  • Single-word searches (Nike, Adidas) are not filtered — TikTok's results are returned as before.
  • The Actor keeps paging (up to maxPages × 12 ads) until it has maxResults matching ads, so a filtered search does not stop early when more matches exist. Paging also stops in time to finish before the per-keyword timeout; reaching the page limit or the end of the list is a normal completion.
  • Quick Search checks the caption and advertiser name — no extra requests. Full Search also checks the landing URL on the detail pages it opens; it opens no more detail pages than an unfiltered search would (maxResults), so ads beyond that budget are reported as "not checked" rather than "excluded".
  • If nothing matches, the run still succeeds, charges no ads, and its status message says no ads matched the full phrase. The run's SUMMARY record lists how many ads were scanned, excluded, not checked, and delivered, plus how many ads had caption data (captions.captured / captions.cards).
  • If TikTok's caption data cannot be read for a search, ads are matched on the advertiser name (and landing URL in Full Search) only. Unverified ads are still never charged; the keyword is marked captionsUnavailable in SUMMARY and the status message says caption data was unavailable.
  • SUMMARY.phraseFilter.applied says whether the filter ran; when it did not (single-word searches, filter off, Ad IDs mode) a reason is given instead of counts, and each keyword entry has phraseFilter: applied, not-applied-single-word, or disabled.
  • Phrases are split into words on spaces and punctuation, so languages written without spaces (Chinese, Japanese) are matched as one unbroken string.
  • Want TikTok's raw results instead? Set phraseFilter to false.

Getting started

  1. Create a free Apify account (includes $5 monthly credits — no credit card needed).
  2. Open TikTok Ad Library Fast Search on Apify.
  3. Enter a keyword, advertiser name, or ad IDs.
  4. Click Start.
  5. Download results in JSON, CSV, or Excel.

Tip: Enable Quick Search for fast bulk extraction. Disable it when you need video URLs and targeting data.

Use cases

Competitor ad monitoring

Your competitors are running TikTok ads right now. Track their creatives, messaging, audiences, and campaign duration. Schedule weekly runs to catch new campaigns automatically.

Ad creative research

Search thousands of ads by keyword to find what works in your industry. Discover trending formats, effective CTAs, and messaging patterns that drive engagement.

Market intelligence

Track advertising trends across 30+ European countries. Identify which markets brands are targeting, seasonal patterns, and shifts in ad spend across regions.

Lead generation

Find active TikTok advertisers in your niche. Extract advertiser profiles, locations, and campaign data to build qualified lead lists.

Pricing

Pay only for the ads you extract. No subscription, no minimum.

ModePer adPer 1,000 adsBest for
Quick Search$0.005$5Bulk monitoring, trend analysis
Full Search$0.020$20Deep analysis, targeting data
Direct Lookup (Ad IDs)$0.020$20Specific ad research

Cost examples

What you're doingAdsTimeCost
Quick scan of 1 keyword50~1-2 min$0.25
Full analysis of 1 keyword50~3-5 min$1.00
Full analysis of 5 keywords500~20-30 min$10.00
Lookup specific ads by ID10~1-2 min$0.20

Platform costs (compute, proxy) are billed separately by Apify. Free tier: $5 monthly credits included — enough to extract hundreds of ads at no cost.

Input

ParameterTypeDefaultDescription
querystring—Search query (company name, product, or keyword)
advertiserNamestring—Advertiser name for targeted search
keywordsstring[]—Multiple keywords to search (max 10). Each keyword is searched sequentially with independent maxResults limit per keyword
adIdsstring[]—Specific ad IDs for direct lookup
countrystringALLTarget country (30+ EU/EEA + CH, TR, GB options)
quickSearchbooleantrueEnable 3-5x faster extraction (basic data only)
phraseFilterbooleantrueFor multi-word searches, return only ads containing the whole phrase. Set false for TikTok's raw results
startDatestring—Date range start (YYYY-MM-DD). Leave empty for no date filter
endDatestring—Date range end (YYYY-MM-DD). Leave empty for no date filter
maxPagesinteger5Max result pages per keyword (1-300). Each page has up to 12 ads
maxResultsinteger60Max ads per keyword (defaults to maxPages × 12)
orderBystringNewest firstSort order (by date, audience size)

Example: Search for Nike ads in Germany

{
"keywords": ["Nike", "Adidas"],
"country": "DE",
"maxResults": 50,
"quickSearch": true
}

Example: Look up specific ads

{
"adIds": ["1848459287600130", "1820197122833570"]
}

Output

Each result contains a structured ad record. Here's what you get:

FieldQuick SearchFull Search
Ad ID, title, typeYesYes
Cover image URLYesYes
Start / end datesYesYes
Advertiser nameYesYes
Estimated audienceYesYes
Ad spentYesYes
Search keyword (searchKeyword)YesYes
Ad caption (adCaption)YesYes
Landing page URL (landingUrl)—Yes
Call to action (callToAction) — only when TikTok shows one; many ads have none and return null—Yes
Detail page outcome (detailStatus: fetched, failed, or null in Quick Search)—Yes
Video URL (adVideoUrl, CDN link) — video ads only; image ads return null and their image is in adVideoCover—Yes
Advertiser ID & location—Yes
TikTok profile (followers, avatar)—Yes
Impressions range—Yes
"Paid for by" entity—Yes
Total targeting regions (adTotalRegions)—Yes
Location targeting by country—Yes
Age group targeting (13-17 to 55+)—Yes
Gender targeting—Yes
{
"adId": "1858053691202865",
"adTitle": "Ad summary",
"adType": "2",
"adVideoUrl": "https://library.tiktok.com/api/v1/cdn/{id}/video/{base64}?...",
"advertiserName": "modasymarcas27",
"adCaption": "Nueva colección disponible",
"landingUrl": "https://example.com/coleccion",
"callToAction": "Shop now",
"advertiserLocation": "Spain",
"adImpressions": "1K-10K",
"adEstimatedAudience": "",
"targetingByLocation": [{ "region": "Spain", "impressions": "3K" }],
"targetingByAge": [{ "region": "Spain", "13-17": true, "18-24": true, "25-34": true, "35-44": true, "45-54": true, "55+": true }],
"targetingByGender": [{ "region": "Spain", "male": true, "female": true, "unknown": true }]
}

Integrations

Connect to your existing tools:

  • REST API — Access results programmatically (docs)
  • Python / JavaScript SDK — Official Apify client libraries
  • Google Sheets, Slack, Zapier, Make — Built-in integrations (see all)
  • Webhooks — Get notified when a search completes
  • Scheduled runs — Automate daily, weekly, or monthly monitoring

FAQ

How many ads can I extract?

Up to 3,600 ads per keyword (300 pages x 12 ads per page). With 10 keywords, that's up to 36,000 ads in a single run.

Can I download TikTok ad videos?

Yes, for video ads. In Full Search mode, adVideoUrl contains a direct CDN link to the MP4 you can download. Image ads have no video, so their adVideoUrl is null and the image is in adVideoCover. Quick Search never fills adVideoUrl. Note that URLs may expire after some time.

What countries are supported?

All EU/EEA countries (27), plus Switzerland, Turkey, and the United Kingdom — 33 countries total. US, Asia-Pacific, and other regions are not available in TikTok's Ad Library.

What is the TikTok Ad Library?

The TikTok Ad Library is TikTok's official public transparency tool. Anyone can view ads displayed on TikTok's advertising network in supported regions.

The TikTok Ad Library is a public transparency tool designed for public access. However, always review the TikTok Terms of Service and applicable regulations in your jurisdiction.

Do I need a proxy?

Residential proxy is recommended for reliable results. The default configuration uses Apify Proxy with the RESIDENTIAL group. You can also use your own proxy service.