Formula:
Scrapes TikTok ads+from the TikTok Ad Library (library.tiktok.com)+as clean, structured JSON
TikTok Ad Library Scraper extracts ads from the official TikTok Ad Library search by keyword, by advertiser name, or paste a library URL directly, and get back advertiser, creative type, shown dates, estimated audience, video and image creatives, and (optionally) full targeting data. No login, no cookies, no browser automation.
Perfect for competitive ad researchers, performance marketers, and agencies who need TikTok ad creative and targeting intelligence without manually clicking through the Ad Library.
https://www.youtube.com/watch?v=DUMMY_VIDEO_ID
The TikTok Ad Library is TikTok's public DSA transparency portal, holding roughly one year of ads served across the EU/EEA. It exposes the actual creatives, the advertiser behind them, how long each ad ran, and per ad the age, gender, and regional impression breakdown. That is competitor intelligence you would otherwise pay a SaaS subscription for.
Here are some of the most common use cases:
- Competitor ad monitoring: Track every ad a rival advertiser is running, with first/last shown dates.
- Creative research: Pull the actual video and image creatives competitors use to model your own.
- Targeting intelligence: See which countries, age bands, and genders an advertiser targets (with Fetch Ad Detail).
- Market & trend analysis: Search a keyword across all regions to map who is advertising in a category.
- Ad compliance & due diligence: Capture ad copy, audit status, and rejection reasons for a brand.
idUnique TikTok ad identifiernameAdvertiser display nametypeCreative format (videoorimage)audit_statusTikTok moderation status
first_shown_dateFirst date the ad ran (Unix ms, UTC)last_shown_dateMost recent date the ad ran (Unix ms, UTC)
estimated_audienceBucketed audience size (e.g.0-1K,1K-10K)
videosPlayable signed video URL + cover imageimage_urlsImage creative URLs
- Creative title & advertising objective
- Advertiser registry location & business ID
- Target audience size and targeted countries
- Per-region impressions with age (13-17 β¦ 55+) and gender breakdowns
region,sort,source_url,_sourcewhich search produced the record
You provide URLs, keyword filters, or both. Each URL and each keyword counts as one input item.
Total results = (number of URLs + number of keywords) Γ Maximum Results. Example: 5 URLs + 6 keywords = 11 inputs. At 16 Maximum Results β 11 Γ 16 = 176 ads maximum.
Paste full library.tiktok.com/ads URLs copied from your browser. Region, dates, sort order, and advertiser filters are read directly from the URL no extra config.
| Input value | What it extracts |
|---|---|
https://library.tiktok.com/ads?region=DE&adv_name=nike |
Ads matching "nike" in Germany |
https://library.tiktok.com/ads?region=all&adv_name=...&query_type=2&adv_biz_ids=... |
A specific advertiser's ads, all regions |
{
"startUrls": [
{ "url": "https://library.tiktok.com/ads?region=DE&adv_name=nike&sort_type=last_shown_date,desc" }
]
}Build searches manually. Each entry runs independently with its own region, date range, and sort order.
queryThe keyword or advertiser name.searchAsAdvertiser(boolean, defaultfalse) Off: match the text against ad content (TikTok's "Search this exact phrase"). On: treat the text as an advertiser name and return that advertiser's ads (TikTok's "Advertiser name").regionOne target country (orallfor EU/EEA). The API processes one region per search.dateFrom/dateToDate range. See the date window note below.sortOrdernewest,oldest,created,created-asc,popular,unpopular.
{
"keywords": [
{ "query": "summer sale", "region": "DE", "sortOrder": "newest" },
{ "query": "Apify Technologies s.r.o.", "searchAsAdvertiser": true, "region": "AT" }
],
"maxResults": 10
}- Default:
10 - Maximum ads collected per URL and per keyword. Set to
0to collect everything the API returns. Start with10to test.
- Default:
false - When on, the scraper makes one extra request per ad to collect full advertiser, creative, and targeting detail. Slower and billed at the higher rate.
The TikTok Ad Library only retains about one year of "last shown date" history, and the earliest selectable day slides forward daily. This scraper handles that automatically:
- No dates given β defaults to roughly the last year (today back to ~364 days).
- Start date too old β clamped up to the earliest available day, with a warning. The run continues.
dateFromafterdateToβ the entry is rejected with a clear message (dates are reversed).- Entire range older than ~1 year β the entry is rejected (nothing to scrape there).
π This Actor is currently FREE to use. You only pay Apify's standard platform usage for the run. There are no per-result charges at this time.
Pricing may change in the future. Any change will be shown transparently here and in the Apify Store before you run.
Without fetchAdDetail (details is null):
{
"id": "1866984139925698",
"name": "nexxtstyyle",
"type": "video",
"audit_status": "1",
"first_shown_date": 1780495093000,
"last_shown_date": 1780495093000,
"estimated_audience": "0-1K",
"videos": [
{ "video_url": "https://library.tiktok.com/api/v1/cdn/.../video.mp4", "cover_img": "https://p19-common-sign.tiktokcdn.com/.../cover.jpeg" }
],
"image_urls": [],
"details": null,
"region": "DE",
"sort": "last_shown_date,desc",
"source_url": "URL: https://library.tiktok.com/ads?region=DE&adv_name=nike&sort_type=last_shown_date,desc",
"_source": "tiktok_ad_library_scraper"
}With fetchAdDetail (details populated truncated):
{
"id": "1866984139925698",
"name": "nexxtstyyle",
"type": "video",
"estimated_audience": "0-1K",
"videos": [ { "video_url": "...", "cover_img": "..." } ],
"details": {
"ad": { "title": "NikeβοΈπ #nike #summer", "advertising_objective": "Reach", "estimated_audience": "1K-10K" },
"advertiser": { "name": "Nextstyleee", "adv_biz_ids": "7555084503564304385", "registry_location": "Emirates" },
"targeting": {
"target_audience_size": "23.6M-28.8M",
"countries": ["ES", "FR", "IT", "DE", "BE"],
"location": {
"total_region": 5,
"data": [
{ "region": "ES", "impressions": "2K", "breakdowns": [ { "age": "18-24", "gender": "FEMALE", "impressions": "0-1K" } ] }
]
}
}
},
"region": "DE",
"source_url": "URL: https://library.tiktok.com/ads?region=DE&adv_name=nike",
"_source": "tiktok_ad_library_scraper"
}Do I need a TikTok account to use this Actor? No. The TikTok Ad Library is a public transparency portal. This scraper requires no login, cookies, or credentials.
How far back can I search? About one year. The TikTok Ad Library retains roughly 365 days of "last shown date" history, and the window slides forward daily. Dates older than that are automatically clamped or skipped with a clear message.
Can I scrape multiple keywords and URLs in one run?
Yes. Provide any mix of URLs and keyword filters they are processed in the same run (URLs first, then keywords), each capped at maxResults.
What's the difference between keyword search and advertiser search?
A keyword search matches your text against ad content. Turning on searchAsAdvertiser treats your text as an advertiser name and returns that advertiser's ads the same split TikTok shows as "Search this exact phrase" vs "Advertiser name."
What happens if the run is aborted or hits a block mid-way? Results are written in real time, one ad at a time, as they are scraped. Anything already collected is saved. A failing source is skipped and the next one continues one bad input never loses the whole run.
Why did one of my keyword/URL entries get skipped?
Most likely its date range was reversed (dateFrom after dateTo) or fell entirely outside TikTok's ~1-year retention. The run log states exactly which entry and why.
This Actor extracts publicly visible data from the TikTok Ad Library the same information anyone can see in their browser on library.tiktok.com.
Please use this tool responsibly:
- Only use the data for lawful purposes such as research, competitive analysis, and compliance.
- Comply with TikTok's Terms of Service and applicable data protection regulations (GDPR, CCPA, etc.).
- Do not use extracted data for spam, harassment, or unsolicited outreach.
For questions about a specific use case, contact us at flowextractapi@outlook.com.
Results stream into your dataset in real time each ad is pushed the moment it is scraped, in order (URLs first, then keywords). There is no end-of-run batch dump:
| Trigger | Behavior |
|---|---|
| Each ad scraped | Pushed to the dataset immediately |
| Source fails or is blocked | That source is skipped; already-pushed ads are retained |
| Budget/charge limit reached | Run stops cleanly; everything collected so far is kept |
| Run aborted | Already-pushed ads remain in the dataset |
| Situation | What you see | What to do |
|---|---|---|
| Reversed dates | Date From β¦ is after Date To β¦ |
Swap the dates so the start comes first |
| Range too old | range β¦ is entirely older than TikTok's ~1-year retention |
Choose dates within the last year |
| Date out of range at runtime | TikTok rejected the date range as out of its ~1-year retention window |
Narrow the range to the last year |
| Initial block | TikTok blocked the initial request |
Try again later, or enable a proxy |
| No valid input | No scrapeable sources |
Check your URLs, keywords, and dates |
- π Website: flowextractapi.com
- π§ Email: flowextractapi@outlook.com
- π Apify Profile: FlowExtract API
- π¬ GitHub Issues: FlowExtractAPI
- πΌ LinkedIn: flowextract-api
- π¦ Twitter: @FlowExtractAPI
- π± Facebook: flowextractapi
domain.com.au Scraper Extract Australian property listings from domain.com.au with full enrichment, agent contacts, schools, and market insights.
Realtor.com Scraper Extract US property listings from Realtor.com. Pricing, agent contacts, tax history, AVM estimates, nearby schools, flood and noise data, and full listing history.
PropertyFinder Scraper Extract property listings from PropertyFinder across UAE, Saudi Arabia, Bahrain, Egypt, and Qatar.
Idealista Scraper API Advanced Idealista property data extraction with API access.
Idealista Scraper Extract Spanish real estate listings from Idealista.
Leboncoin.fr Scraper Extract French classified listings from Leboncoin real estate, vehicles, jobs, and more.
AI Contact Intelligence Extractor Extract emails, phones, contacts & custom data using AI.
DoorDash Scraper Scrape store listings, full menus, featured items, and customer reviews from DoorDash.
YouTube Transcript & Metadata Extractor Extract complete video transcripts with timestamps and comprehensive metadata.
YouTube Full Channel, Playlists, Shorts, Live Extract complete playlist information with all video details from any YouTube playlist.
Zoom Scraper | Downloader & Transcript Extract Zoom meeting recordings, transcripts, and metadata.
Loom Scraper | Downloader & Transcript Download Loom videos and extract transcripts.
Screenshot Fast, reliable webpage screenshots with customizable options.
Ultimate Screenshot Advanced screenshot tool with full-page capture, custom viewports, and quality controls.
Facebook Ads Scraper Pro Extract Facebook ads data for competitor analysis and market research.
LinkedIn Ad Library Scraper Extract comprehensive advertising data from LinkedIn's Ad Library.
Ready to extract TikTok ad data? Start using TikTok Ad Library Scraper now!