Coverage · verified 26 Oct 2026

Six ad libraries, one schema.

Every adapter reads only what the platform publishes without login. Fields that a platform does not publish stay null; we never estimate them.
PlatformSearch byFiltersAd detailDomain resolveEU / DSA fieldsCredits/ad
Meta
Facebook & Instagram Ad Library
Keyword, page name, page id, landing domain, ad idCountry, date range, format, statusYes, inactive ads includedVia landing URLs of the page's adsReach total and per country, targeting, payer and beneficiary1
Google
Ads Transparency Center
Advertiser name, AR id, domainCountry, date range, format, activeYes, with creative textNative domain searchImpressions per country and placement, targeting types, payer2
TikTok
Ad Library (EU, UK, CH)
Keyword, advertiser name, idCountry (33 regions), date range, format, statusYesVia landing URL of the newest adReach per country, targeting, payer and beneficiary1
LinkedIn
Ad Library
Keyword, company name, company id, domainCountry, date rangeYesWebsite of the company pageImpressions bucket, share per country, targeting categories, payer3
Pinterest
Ads Repository (EU)
Advertiser name, id, domainCountry (30), date range, formatYesVerified profile domainAge, gender, locations, interests, reach buckets1
Xbeta
Ads Repository (EU)
Handle, id, domain → handleCountry, date rangeCreative onlyHandle by name matchReach, impressions, targeting (unverified)1

X is in beta

X’s repository search often answers 503 “over capacity”. Cross-platform search skips X; ask for it with platform=x. Failed calls are not billed.

Status where platforms have none

Google, LinkedIn and Pinterest publish no active flag. Their status is unknown, with last_shown and our last_seen_by_us so you can apply your own rule.

Missing a platform?

Tell us which ad library you need next and what you would do with it. Requests decide what we build after these six.