Back to TikTok
Apify·TikTok

TikTok Ads Library Scraper — EU Library & Creative Center

/brilliant_gum/tiktok-ads-library-scraperasync$0.0195 / result

Scrape TikTok Ads Library (EU/EEA/UK) and Creative Center (global). Extract ad creatives, targeting data, reach estimates, CTR, video URLs, and industry insights. Dual-source coverage — no login required. Residential proxies built-in. Runs as an Apify actor (20–120 s); results are dataset rows.

Charged per returned row plus the flat fee.

Input
FieldTypeRequiredDescription
sourcestring (library, creative_center, both)yesWhich TikTok data source to scrape. 'library' = TikTok Ads Library (EU/EEA/UK only, no login, DSA transparency data). 'creative_center' = TikTok Creative Center Top Ads (global, performance metrics). 'both' = both sources combined. (default "library")
searchTermsarrayBrand names or keywords to search. Each term is searched separately. Used for 'library' source only — Creative Center is browsed by category/country. (default ["Nike"])
countriesarrayISO 2-letter country codes (case-insensitive). The Ads Library covers EU/EEA/UK only (DE, FR, IT, ES, NL, PL, SE, GB…). With source="library": other countries are skipped with a warning if at least one supported country is listed, and the run stops with an explanation if none is. With source="creati (default ["DE"])
adTypestring (ALL, VIDEO, IMAGE, TEXT)Filter by creative format. Applies to the Ads Library source (TikTok filters server-side). (default "ALL")
dateFromstringShow ads first seen on or after this date. Format: YYYY-MM-DD. Leave empty to skip. Applies to Ads Library source only. (default "")
dateTostringShow ads first seen on or before this date. Format: YYYY-MM-DD. Leave empty to skip. Applies to Ads Library source only. (default "")
maxResultsintegerMaximum ads to collect per search term + country pair. Note: TikTok Ads Library is capped at 3,600 results per query (300 pages × 12 ads). The scraper will warn you when approaching this limit. (default 10)
resolveAdDetailsbooleanFor each Library ad, fetch its full detail page to collect: advertiser business ID, 'Ad paid for by', targeting age groups, targeting gender, targeting interests, target countries, and behavior targeting. Adds ~3 sec per ad — disable for large bulk runs, enable when you need full targeting data. (default false)
includeAudienceBreakdownbooleanAdd a per-country x age x gender impression breakdown to each ad. Requires resolveAdDetails. Off by default: one ad can add ~225 rows, which is handy in JSON but turns a CSV export into hundreds of columns. (default false)

Run it

curl -s https://www.sooma.dev/v1/run \ -H "Authorization: Bearer $SOOMA_API_KEY" \ -H "Content-Type: application/json" \ -d '{"provider":"apify","endpoint":"/brilliant_gum/tiktok-ads-library-scraper","input":{"source":"library"}}'

Or ask your agent: it will call inspect for this schema and run it over MCP.