LinkedIn Ad Library Scraper – No Login avatar

LinkedIn Ad Library Scraper – No Login

Pricing

from $1.50 / 1,000 ad results

Go to Apify Store
LinkedIn Ad Library Scraper – No Login

LinkedIn Ad Library Scraper – No Login

Scrape public LinkedIn Ad Library results by keyword, advertiser, or payer. Extract ad copy, creative media, advertiser, payer, dates, landing pages, impressions, and targeting data without login or cookies.

Pricing

from $1.50 / 1,000 ad results

Rating

0.0

(0)

Developer

DataScraperES

DataScraperES

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

2 days ago

Last modified

Share

Search LinkedIn's public Ad Library by keyword, advertiser, or payer without a LinkedIn login. Receive one structured Dataset item per unique ad, including creative copy, media, advertiser, payer, dates, destination, impressions, targeting, variants, and source context when publicly available.

What this Actor does

The Actor performs bounded public Ad Library searches and deduplicates results by ad ID. With detail fetching enabled, it opens each public ad detail page to add the fields LinkedIn exposes beyond the search card.

Use cases

  • Research competitor advertising messages and creative formats.
  • Compare campaigns by advertiser, payer, market, or date range.
  • Build ad-monitoring datasets with public media and targeting signals.

How to use

  1. Open the Actor in Apify Console.
  2. Add at least one keyword, advertiser, or payer.
  3. Select countries, dates, and a maximum result count.
  4. Click Start and open the Dataset when the run finishes.

Input

{
"keywords": ["artificial intelligence"],
"advertisers": [],
"payers": [],
"countries": ["US"],
"dateOption": "last-30-days",
"startDate": null,
"endDate": null,
"maxResults": 3,
"fetchDetails": false
}

Provide at least one value across keywords, advertisers, or payers; each list accepts up to 25 values, with at most 50 searches in total. Duplicate values within a list are removed. countries accepts 1–20 two-letter codes, or ALL by itself. dateOption defaults to last-30-days; custom ranges require startDate and endDate. maxResults defaults to 100 and accepts 1–1,000. fetchDetails defaults to true. The prefilled example requests three ads without optional details.

This exact input produced the complete output below:

{
"keywords": [
"artificial intelligence"
],
"advertisers": [],
"payers": [],
"countries": [
"US"
],
"dateOption": "last-30-days",
"maxResults": 3,
"fetchDetails": false
}

Output

Each Dataset item represents one unique ad. Search-card fields remain useful when optional details cannot be fetched; inspect detailsFetched and detailStatus. Nested variants, media arrays, source, impressions, and targeting are preserved when LinkedIn publishes them. SUMMARY reports unique ads, searches, pages, optional detail availability, result limits, and spending limits. Its status distinguishes completed searches, partial output, and failed searches. Missing requested details produce a partial summary. Searches that remain blocked after retries also produce a partial summary, including when no ads could be collected; other searches continue and saved progress remains resumable. A partial summary does not mean that all requested data was collected. A completed search may contain no matching ads. If delivery cannot be confirmed, deliveryUncertain is true and uniqueAds is null; inspect the Dataset before treating the results as complete.

This is the complete Dataset item from a real successful run:

{
"adId": "1578762354",
"adLibraryUrl": "https://www.linkedin.com/ad-library/detail/1578762354",
"advertiserName": "Laetitia ADER-YA",
"advertiserUrl": null,
"advertiserSlug": null,
"advertiserLogoUrl": "https://media.licdn.com/dms/image/v2/D4E03AQHV8LkzxD_Jbw/profile-displayphoto-scale_100_100/B4EZ2KkWX9GQAc-/0/1776146279887?e=1792627200&v=beta&t=F1-mrhFC6ipPqnRvr_ayV0r0uHkPQl_WcYPQOD8jJlo",
"creativeType": "SPONSORED_STATUS_UPDATE",
"format": "image",
"body": "Global Digital Edition Some books tell a story. Some books start a conversation. This one invites us to rethink how p…",
"headline": null,
"headlineDescription": null,
"cta": null,
"destinationUrl": null,
"imageUrls": [
"https://media.licdn.com/dms/image/v2/D4E22AQEzfSVJEnoM_w/feedshare-image-high-res/B4EaBWn5ibHwAY-/0/1788159695282?e=1792627200&v=beta&t=F_q9bKdHmGvq85Fxm7RK4xpIm-iAR-OPvOoTCqQnspk",
"https://media.licdn.com/dms/image/v2/D4E22AQEmzdgAnQKQJA/feedshare-shrink_1280/B4EaBWn5dNG8AM-/0/1788159694949?e=1792627200&v=beta&t=yAwhqHf9Rfsqwtu-3CIPM3_c210rzuDimoDTFs2F-_A"
],
"videoUrls": [],
"videoPosterUrl": null,
"isRestricted": false,
"paidBy": null,
"startDate": null,
"endDate": null,
"runDateText": null,
"totalImpressions": null,
"impressionsByCountry": [],
"targeting": [],
"targetingMatrix": [],
"variantsCount": 1,
"variants": [
{
"body": "Global Digital Edition Some books tell a story. Some books start a conversation. This one invites us to rethink how p…",
"headline": null,
"headlineDescription": null,
"cta": null,
"destinationUrl": null,
"imageUrls": [
"https://media.licdn.com/dms/image/v2/D4E22AQEzfSVJEnoM_w/feedshare-image-high-res/B4EaBWn5ibHwAY-/0/1788159695282?e=1792627200&v=beta&t=F_q9bKdHmGvq85Fxm7RK4xpIm-iAR-OPvOoTCqQnspk",
"https://media.licdn.com/dms/image/v2/D4E22AQEmzdgAnQKQJA/feedshare-shrink_1280/B4EaBWn5dNG8AM-/0/1788159694949?e=1792627200&v=beta&t=yAwhqHf9Rfsqwtu-3CIPM3_c210rzuDimoDTFs2F-_A"
],
"videoUrls": [],
"videoPosterUrl": null
}
],
"detailsFetched": false,
"detailStatus": "not_requested",
"source": {
"type": "keyword",
"value": "artificial intelligence",
"countries": [
"US"
],
"dateOption": "last-30-days",
"startDate": null,
"endDate": null
},
"scrapedAt": "2026-10-01T08:11:19.289223Z"
}

Results can be exported as JSON, JSONL, CSV, Excel, XML, or RSS.

Pricing

The Actor uses tiered pay-per-event pricing for each unique ad result written to the Dataset. Apify selects the tier from your account plan automatically.

Apify plan tierPrice per adEquivalent per 1,000 ads
Free$0.002$2.00
Bronze$0.0018$1.80
Silver$0.0016$1.60
Gold$0.0015$1.50
Platinum$0.0015$1.50
Diamond$0.0015$1.50

Empty searches, failed searches, duplicates, and ads not written because of a spending limit do not create an ad charge. There is no Actor-start charge.

ActorBest for
TikTok Commercial Content Library Ads ScraperComparing public ad creatives and campaign signals across TikTok markets.
LinkedIn Company Profile Scraper - No LoginEnriching advertisers with their current public company profile.

Limits and data quality

The Actor returns up to 1,000 unique ads per run and processes at most 50 search values and 20 countries. Public Ad Library coverage changes over time and by country. Temporary source restrictions can leave a run with fewer ads than requested; already delivered ads remain available in the Dataset. Check SUMMARY.status, failedSearches, and pendingSearches to assess coverage. Optional detail fields can be null even when detailStatus is success because LinkedIn did not publish them for that ad. Media URLs are public source URLs and may expire or change.

Frequently asked questions

Can I search all countries?

Yes. Use "countries": ["ALL"]; do not combine ALL with country codes.

Why are impressions, dates, or destination URL null?

Those fields were not exposed for that ad at collection time. Enabling fetchDetails allows collection but cannot make unavailable fields public.

Responsible use

Use only publicly available advertising data for lawful research. You are responsible for complying with LinkedIn's terms, advertising rules, privacy laws, intellectual-property rights, and any requirements that apply to your use case.

Support

Open an issue in the Actor's Issues tab with the run ID, exact search input, and an affected public Ad Library URL.