LinkedIn Ads Scraper - Ad Library Data, $0.25 per 1,000 Ads avatar

LinkedIn Ads Scraper - Ad Library Data, $0.25 per 1,000 Ads

Pricing

from $0.25 / 1,000 ad scrapeds

Go to Apify Store
LinkedIn Ads Scraper - Ad Library Data, $0.25 per 1,000 Ads

LinkedIn Ads Scraper - Ad Library Data, $0.25 per 1,000 Ads

The company an ad is for and the company paying for it are not always the same. The LinkedIn Ad Library names both. Search either, plus keyword and country. One row per ad: copy, headline, CTA, creative, landing URL, format, dates and impressions where shown. $0.25/1,000 ads.

Pricing

from $0.25 / 1,000 ad scrapeds

Rating

0.0

(0)

Developer

Dami's Studio

Dami's Studio

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

LinkedIn Ads Scraper

The company an ad is for and the company that paid for it are not always the same one, and the public LinkedIn Ad Library names both. Company names, LinkedIn company URLs, keywords, payer names and country codes all search it, and you get one row per ad: the advertiser, the payer, the full ad copy, the headline and call to action, the image or video creative, the landing URL with its tracking parameters intact, the ad format, and the dates and countries LinkedIn discloses.

No account, no cookies, no browser. It reads the library the same way a logged-out visitor does.

What you get

One row per ad. This is a real row, trimmed only where noted:

{
"searchTerm": "HubSpot",
"searchType": "company",
"adId": "1478337423",
"adUrl": "https://www.linkedin.com/ad-library/detail/1478337423",
"advertiserName": "HubSpot",
"advertiserUrl": "https://www.linkedin.com/company/68529",
"advertiserId": "68529",
"payerName": "HubSpot, Inc.",
"adType": "Single Image Ad",
"creativeType": "SPONSORED_STATUS_UPDATE",
"adText": "Brand consistency drives revenue growth for 68% of organizations. Learn how HubSpot & Canva help you build a brand that sticks.",
"headline": "Get The Free Brand Consistency Guide From HubSpot & Canva",
"callToAction": "Learn more",
"landingUrl": "https://offers.hubspot.com/how-to-build-a-brand-canva?utm_campaign=Strategic+Partnerships&utm_source=linkedin&utm_medium=paid&hsa_acc=517582366&hsa_cam=1173415993&hsa_ad=1478337423",
"imageUrl": "https://media.licdn.com/dms/image/v2/D4D10AQHeILHUGtZ8-A/image-shrink_1280/...",
"videoUrl": null,
"firstShownDate": "2026-08-13",
"lastShownDate": "2026-08-19",
"runDates": "Ran from Aug 13, 2026 to Aug 19, 2026",
"totalImpressions": "1k-5k",
"countries": ["United Kingdom", "Canada", "Australia", "United States", "New Zealand", "Ireland"],
"impressionsByCountry": [
{ "country": "United Kingdom", "impressionsPercent": 32 },
{ "country": "Canada", "impressionsPercent": 22 }
],
"targeting": [
{ "facet": "Language", "value": "Targeting includes English" },
{ "facet": "Location", "value": "Targeting includes Australia and New Zealand, United States, Canada, Ireland, United Kingdom" }
],
"isRestricted": false,
"restrictionDetails": null,
"scrapedAt": "2026-08-20T04:46:55.613Z"
}

The landing URL keeps its UTM and hsa_ parameters. That's usually the most useful field in the row, because it tells you which campaign and ad group the creative belongs to.

Run dates, impressions and targeting are EU-only

runDates, totalImpressions, impressionsByCountry and targeting are there only when LinkedIn discloses them, and LinkedIn discloses them only for ads delivered into the EU. That's the Digital Services Act, not a choice we made. A US-only campaign comes back with those four fields null and everything else populated.

So put an EU country code in countries. If the advertiser runs anything at all into the EU, you get the dates, the impressions band and the targeting for those ads.

Input

Search by company:

{
"companies": ["HubSpot", "https://www.linkedin.com/company/salesforce"],
"maxItems": 200,
"includeAdDetails": true
}

Sweep an EU country to get the disclosure fields:

{
"keywords": ["marketing automation"],
"countries": ["DE", "FR"],
"dateRange": "last-30-days",
"maxItems": 500
}

Map an agency's client roster by who paid:

{
"payers": ["Ogilvy"],
"maxItems": 300
}
  • companies, keywords, payers, countries — up to 20 entries each. They all apply to the same run.
  • maxItems — total rows across every search, not per search. The budget splits evenly, so four searches at 200 gives you fifty of each. Default 20, ceiling 2,000. Keep it low while you're testing.
  • includeAdDetails — on by default, and you want it on. It's the only place LinkedIn publishes the untruncated ad copy, the landing URL, the run dates, the impressions band and the targeting. Turning it off gives a faster advertiser-and-creative sweep. The price per ad is identical either way, so there's rarely a reason.
  • dateRange — one of all, last-30-days, current-month, current-year, last-year. Spell it exactly like that; anything else is treated as all.
  • dateFrom / dateTo — exact window, YYYY-MM-DD. LinkedIn only accepts dates inside the last twelve months.

A company name matches on the advertiser name and can catch more than one page with a similar name. A company URL with a numeric id filters to exactly that advertiser. Use the URL when precision matters.

Other limits

  • The library holds roughly the last twelve months. Anything older isn't there to fetch.
  • totalImpressions is a band ("1k-5k"), never an exact number. LinkedIn publishes it that way.
  • Some ads come back isRestricted: true with the creative withheld. restrictionDetails says why.
  • videoUrl is null on image ads, and imageUrl is null on video ads. Check adType.
  • Searching by name can return an advertiser you didn't mean. advertiserId in the output tells you which page you actually got.

Billing

$0.25 per 1,000 ads, plus a $0.001 run-start fee. Same rate on every plan, free or paid, with no volume tiers and no minimum spend.

You pay per ad written to your dataset. Not charged: sample rows, duplicate ads, searches that matched nothing, and ads that couldn't be read.

Because maxItems is a hard total, your worst case for a run is exactly maxItems × $0.00025 plus the start fee. A 2,000-ad run costs 50 cents.