Exactly one search mode is required: q (keyword), advertiser (name, or our advertiser id <platform>:<id>), or domain. Without platform, all platforms supporting the mode are queried in parallel; platforms that fail are listed in meta.errors (and not billed). source=history searches our own archive instead, including ads that are gone from the platforms.
API reference · Search
Search ads (cross-platform when `platform` is omitted)
/v1/searchExample request
curl "https://api.adlibapi.com/v1/search?q=running%20shoes&platform=meta%2Ctiktok" \
-H "X-API-Key: $ADLIB_API_KEY"Send your key in the X-API-Key header. Try it in the explorer.
Parameters
platformComma-separated platforms; omit for all that support the query
e.g. meta,google
qKeyword in the ad text
e.g. running shoes
advertiserAdvertiser name, or our advertiser id <platform>:<id>
e.g. Nike
domainLanding page / advertiser domain
e.g. nike.com
countryISO 3166-1 alpha-2
e.g. US
statusOne of active, inactive, all
default all
fromShown on or after (YYYY-MM-DD)
toShown before (YYYY-MM-DD)
formatOne of image, video, carousel, text,
politicaltrue = only political/issue ads, false = none. Only Meta labels them, so true limits results to Meta
One of true, false,
sourceOne of live, history
default live
sortsource=history only: days_running = longest-running ads first (likely winners)
One of newest, days_running
default newest
cursorlimitPage size hint (platforms have native page sizes; history honours it exactly)
default 25
Response
data.advertiserrequireddomainid<platform>:<platform_advertiser_id>
nameplatform_advertiser_idverifieddata.countriesrequiredISO 3166-1 alpha-2
data.creativesrequiredctaheadlinelanding_urlmediatexttypedata.derivedrequireddays_runningis_long_runningdays_running > 30
languageISO 639-1 of the primary ad text
variant_countAds sharing this ad's primary text for the same advertiser
data.eu_datarequiredbeneficiarypayerreach_by_countryreach_by_country_rangereach_rangereach_totaltargetingdata.extraPlatform-specific fields
data.first_seen_by_usrequireddata.first_shownrequireddata.formatsrequireddata.idrequiredStable ID: <platform>:<platform_ad_id>
data.impressions_rangerequiredcurrencylowerupperdata.last_seen_by_usrequireddata.last_shownrequireddata.library_urldata.placementsrequireddata.platformrequiredOne of meta, google, tiktok, linkedin, pinterest, x
data.platform_ad_idrequireddata.politicalrequiredPolitical or issue ad. Meta only; null where the platform doesn't label it
data.raw_refPointer to the archived raw upstream record
data.spend_rangerequiredcurrencylowerupperdata.statusrequiredOne of active, inactive, unknown
metarequiredcachedcounterrorsPlatforms that failed (not billed)
codemessageplatformplatformssourceOne of live, history
next_cursorrequiredPass as cursor to get the next page; null = last page