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
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
Advertiser / account owner name (min 2 when used). Provide q/company, keyword, or companyId.
Alias of q — advertiser / account owner name.
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).
LinkedIn numeric company id for exact advertiser match.
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.
Comma-separated ISO country codes (e.g. US,CA,MX). Each code is validated — non-ISO codes are a 400 INVALID_COUNTRY.
Custom range start YYYY-MM-DD (use with endDate).
Custom range end YYYY-MM-DD (use with startDate).
Pagination token from paginationToken / nextCursor.
Alias of cursor.
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.
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.
Changes
No recorded changes to this operation across all 3 revisions of this API.