LinkedIn Ad Library

LinkedIn Ad Library Search API

LinkedIn publishes run dates, impressions and targeting only on a subset of creatives.

LinkedIn publishes run dates, impressions and targeting only on a subset of Ad Library creatives — missing firstShown/impressions/targeting means the detail page has no Ran-from line, not a scrape miss. Search returns SERP cards (id, advertiser, copy, optional media). advertiser.location is null in practice: LinkedIn's Ad Library shows no advertiser location (the key stays for the shared ad-library schema). It does not hydrate 20 detail pages (that path was ~120s, at the request time limit). Use /linkedin/ad-details to hydrate About-the-ad fields when LinkedIn shows them; unpublished keys are omitted. Dates are YYYY-MM-DD; startDate/endDate alias firstShown/lastShown (one Ran-from range). Envelope source is native — flat 2 credits; when the Ad Library can't be read the call is 503, retryable, 0 credits. Filter with q (advertiser), keyword, companyId, country or countries, startDate/endDate. Page with cursor / paginationToken.

Docs: https://captapi.com/apis/linkedin-ad-library-search-ads

get/v1/ad-library/linkedin/search-ads

Request

  • Base URL: https://api.captapi.com
  • URL: https://api.captapi.com/v1/ad-library/linkedin/search-ads
  • Auth: one of:
    • HTTP bearer
    • API key in header X-API-Key

Query parameters

qstring

Advertiser / account owner name (min 2 when used). Provide q/company, keyword, or companyId.

companystring

Alias of q — advertiser / account owner name.

keywordstring

Optional keyword filter on ad creative copy. Whole-word hits are ordered first; already-fetched SERP cards without a literal hit fill behind them up to limit (matchedFrom [] = ranked fill).

companyIdstring

LinkedIn numeric company id for exact advertiser match.

countrystring

Single ISO country code. Default US. Ignored when countries is set. Non-ISO codes are a definitive 400 INVALID_COUNTRY — LinkedIn would otherwise answer an empty result set as if the filter worked.

countriesstring

Comma-separated ISO country codes (e.g. US,CA,MX). Each code is validated — non-ISO codes are a 400 INVALID_COUNTRY.

startDatestring

Custom range start YYYY-MM-DD (use with endDate).

endDatestring

Custom range end YYYY-MM-DD (use with startDate).

cursorstring

Pagination token from paginationToken / nextCursor.

paginationTokenstring

Alias of cursor.

limitinteger

Max items to return (default 20, max 200). One LinkedIn SERP page is ~25 cards — when limit is higher, further pages are pulled automatically within the request's time budget, so limit=50 fills to 50 when LinkedIn has the ads (hasMore + nextCursor cover the rest). Flat 2 credits per call on the native path; the extended fallback bills ~3.5 credits per returned ad. Response source is native or extended so you can see which price applied.

cacheboolean

Set true to serve from the 24h response cache (0 credits on hit). Default false — always fetch fresh.

Response

Success. The data object for this endpoint.

successunknown required

Changes

No recorded changes to this operation across all 3 revisions of this API.