TikTok Ad Library API v1
Search public TikTok ads, read the advertisers behind them, and download the video creative, from https://api.fetchlayer.dev/tiktok-ad-library. No TikTok developer account or access token required — just your FetchLayer key.
Available endpoints
/search-ads POST Get every ad one advertiser has run /advertiser-ads POST Find advertisers by name /search-advertisers POST Get an advertiser's profile /advertiser-profile POST Get one ad in full /ad-detail POST Get an ad's videos and images /ad-media GET Download an ad media file /media POST Parse a TikTok Ad Library URL /resolve-url What the library publishes
- It covers 33 countries. TikTok publishes its library for the 27 EU member states — Austria, Belgium, Bulgaria, Croatia, Cyprus, Czech Republic, Denmark, Estonia, Finland, France, Germany, Greece, Hungary, Ireland, Italy, Latvia, Lithuania, Luxembourg, Malta, Netherlands, Poland, Portugal, Romania, Slovakia, Slovenia, Spain and Sweden — plus the United Kingdom (GB), Switzerland (CH), Norway (NO), Iceland (IS), Liechtenstein (LI) and Turkey (TR). Any other country, including the US, Canada and Australia, is rejected. Pass one of
AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MT NL NO PL PT RO SE SI SK TR, orALLfor every covered country. - Reach and targeting are European. The reach and targeting breakdowns — impressions by region, age bracket and gender, plus the audience size the targeting could reach — are published for European countries. Ads from elsewhere come back with the fields the library does publish for them and
targetingnull. - Figures are bands, not counts.
estimatedAudiencearrives as "10K-100K", follower counts as "150.2K". Treat them as ranges.spendis published only where the law requires it, so it is null for ordinary commercial ads. - No political ads, and no political filter. TikTok prohibits political advertising outright, so there is no ad-type switch to restrict a search to political and issue ads. If you have come from another ad library looking for one, it is absent by design rather than missing.
- Advertiser profiles are assembled. The library publishes identity per ad rather than as a profile page, so
/advertiser-profilereads it off the advertiser's latest matching ad and tells you which one insampledAdId. - Every response carries
notes. It reports what this particular result could not do — a walk that stopped short of the pages you asked for, an upstream cap, a filter the library would not honour. Read it before treating a result set as complete.