TikTok Ads Library Scraper — EU TikTok Ad Library Search
Pricing
from $18.00 / 1,000 full ad detail extractions
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
Maintained by CommunityActor stats
0
Bookmarked
49
Total users
7
Monthly active users
14 days ago
Last modified
Categories
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.
Why TikTok Ad Library Fast Search?
| Feature | This tool | Manual browsing |
|---|---|---|
| Speed | 50 ads in ~1 min (Quick Search) | 50 ads in ~30+ min |
| Keywords per run | Up to 10 simultaneously | 1 at a time |
| Output format | JSON, CSV, Excel | Copy-paste only |
| Video URLs | Direct CDN download links | No download option |
| Targeting data | Age, gender, location breakdowns | Limited visibility |
| Scheduling | Automate daily/weekly runs | Manual 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 hasmaxResultsmatching 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
SUMMARYrecord 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
captionsUnavailableinSUMMARYand the status message says caption data was unavailable. SUMMARY.phraseFilter.appliedsays whether the filter ran; when it did not (single-word searches, filter off, Ad IDs mode) areasonis given instead of counts, and each keyword entry hasphraseFilter:applied,not-applied-single-word, ordisabled.- 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
phraseFiltertofalse.
Getting started
- Create a free Apify account (includes $5 monthly credits — no credit card needed).
- Open TikTok Ad Library Fast Search on Apify.
- Enter a keyword, advertiser name, or ad IDs.
- Click Start.
- 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.
| Mode | Per ad | Per 1,000 ads | Best for |
|---|---|---|---|
| Quick Search | $0.005 | $5 | Bulk monitoring, trend analysis |
| Full Search | $0.020 | $20 | Deep analysis, targeting data |
| Direct Lookup (Ad IDs) | $0.020 | $20 | Specific ad research |
Cost examples
| What you're doing | Ads | Time | Cost |
|---|---|---|---|
| Quick scan of 1 keyword | 50 | ~1-2 min | $0.25 |
| Full analysis of 1 keyword | 50 | ~3-5 min | $1.00 |
| Full analysis of 5 keywords | 500 | ~20-30 min | $10.00 |
| Lookup specific ads by ID | 10 | ~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
| Parameter | Type | Default | Description |
|---|---|---|---|
query | string | — | Search query (company name, product, or keyword) |
advertiserName | string | — | Advertiser name for targeted search |
keywords | string[] | — | Multiple keywords to search (max 10). Each keyword is searched sequentially with independent maxResults limit per keyword |
adIds | string[] | — | Specific ad IDs for direct lookup |
country | string | ALL | Target country (30+ EU/EEA + CH, TR, GB options) |
quickSearch | boolean | true | Enable 3-5x faster extraction (basic data only) |
phraseFilter | boolean | true | For multi-word searches, return only ads containing the whole phrase. Set false for TikTok's raw results |
startDate | string | — | Date range start (YYYY-MM-DD). Leave empty for no date filter |
endDate | string | — | Date range end (YYYY-MM-DD). Leave empty for no date filter |
maxPages | integer | 5 | Max result pages per keyword (1-300). Each page has up to 12 ads |
maxResults | integer | 60 | Max ads per keyword (defaults to maxPages × 12) |
orderBy | string | Newest first | Sort 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:
| Field | Quick Search | Full Search |
|---|---|---|
| Ad ID, title, type | Yes | Yes |
| Cover image URL | Yes | Yes |
| Start / end dates | Yes | Yes |
| Advertiser name | Yes | Yes |
| Estimated audience | Yes | Yes |
| Ad spent | Yes | Yes |
Search keyword (searchKeyword) | Yes | Yes |
Ad caption (adCaption) | Yes | Yes |
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 |
Example output (Full Search)
{"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.
Is accessing TikTok Ad Library data legal?
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.