LinkedIn Ad Library Scraper: No Login avatar

LinkedIn Ad Library Scraper: No Login

Pricing

from $3.00 / 1,000 ads

Go to Apify Store
LinkedIn Ad Library Scraper: No Login

LinkedIn Ad Library Scraper: No Login

LinkedIn Ad Library Scraper with no login or cookies. Every ad a company runs: copy, image or video and payer, plus run dates, impressions by country and targeting for EU-shown ads. $3 per 1,000 ads.

Pricing

from $3.00 / 1,000 ads

Rating

0.0

(0)

Developer

Agnes Maina

Agnes Maina

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

4 days ago

Last modified

Share

LinkedIn Ad Library Scraper: every ad a company runs, with impressions by country

Run on Apify

This LinkedIn Ad Library Scraper returns every ad a company runs on LinkedIn: the copy, the picture or video, who paid for it, the run dates, and impressions by country plus targeting wherever LinkedIn publishes them. It costs $0.003 per ad delivered, so $3 per 1,000 ads, and rows export to JSON, CSV or Excel.

Limits before you run it: no LinkedIn account and no cookies are needed, and one search returns up to 5,000 ads, set with maxAdsPerSearch. Impressions, targeting and run dates exist only for ads LinkedIn showed in the European Union: 28 of 40 ads in a measured HubSpot run with no country filter, none for a US-only advertiser. Every ad still gets the advertiser, payer, copy and creative. LinkedIn does not publish spend, budgets or exact impression counts, and it names a targeting group without naming the values inside it. Ads LinkedIn has removed are not returned.

What you get

Search by company name, keyword, payer or a pasted Ad Library URL. Each ad is one row.

FieldWhat it is
adId, adUrlThe ad's ID and its page in the Ad Library
advertiserName, advertiserId, advertiserType, advertiserUrlThe advertiser, its company ID or member slug, and its page
payerWho paid for the ad, as LinkedIn states it
adFormat, creativeTypeSingle Image Ad, Video Ad, Message Ad, LinkedIn Article Ad and the other Sponsored Content formats, plus LinkedIn's creative type code
text, headline, descriptionThe ad copy
imageUrl, images, videoUrl, videoPosterUrlThe picture, every picture on it, the MP4 of a video ad and its poster frame
clickUrlWhere the ad links to, UTM parameters included
messageSender, callToActionSender and button text of a Message Ad
firstShown, lastShownFirst and last day the ad ran
totalImpressions, impressionsLow, impressionsHighLinkedIn's impressions range as text, for example 5k-10k, and as numbers
impressionsByCountryEach country with its share of impressions in percent
targetingLanguages and locations with includes and excludes, and which parameter groups were targeted or excluded
detailsReadTrue when the ad's detail page was read
search, isNewThe search that returned this ad, and in monitor mode whether it is new since your last run
charged, reasonWhether the row was charged, and why
scrapedAtWhen the row was collected

Never returned, because LinkedIn does not publish it: ad spend or budgets, exact impression counts, the specific companies or job titles targeted, clicks or engagement, and removed ads.

Try it in 30 seconds

  1. Open the Store page and click Try for free.
  2. Type a company name into Companies, for example HubSpot.
  3. Click Start, then open the Ads table or export JSON, CSV or Excel.
{ "companies": ["HubSpot"], "maxAdsPerSearch": 20 }

Apify's free plan includes monthly credit, enough for a full test run at this price. A measured 10-ad HubSpot run finished in 44 seconds, and a 40-ad run with detail pages in 117 seconds.

Example output

One full row from a real run on HubSpot.

{
"adId": "1558773703",
"adUrl": "https://www.linkedin.com/ad-library/detail/1558773703",
"advertiserName": "HubSpot",
"advertiserId": "68529",
"advertiserType": "company",
"advertiserUrl": "https://www.linkedin.com/company/68529",
"payer": "HubSpot, Inc.",
"adFormat": "Single Image Ad",
"creativeType": "SPONSORED_STATUS_UPDATE",
"text": "$1M to $100M ARR in 18 months. Stuart Shingler, Legora, on how fast-growth companies build trust while they innovate. London, 17 November.",
"headline": "GROW Europe 2026 · London · Register Today",
"description": null,
"imageUrl": "https://media.licdn.com/dms/image/v2/D4D10AQGshA0JBhq0cA/image-shrink_1280/B4DaDP9g74HMAc-/0/1790195405027/2png?e=2147483647&v=beta&t=uu-v3Wv8B56hQBJAD5VjRRV3DN-EoRbg-UMe2X3kaSk",
"images": [
"https://media.licdn.com/dms/image/v2/D4D10AQGshA0JBhq0cA/image-shrink_1280/B4DaDP9g74HMAc-/0/1790195405027/2png?e=2147483647&v=beta&t=uu-v3Wv8B56hQBJAD5VjRRV3DN-EoRbg-UMe2X3kaSk"
],
"videoUrl": null,
"videoPosterUrl": null,
"clickUrl": "https://www.hubspot.com/grow-europe?utm_source=linkedin&utm_medium=paid&utm_campaign=Marketing_Registrations_EN_EMEA_VARIOUS_GROW-Europe-2026_prospecting_cm1013_ProgramBudget_v1a&utm_id=805100113&hsa_acc=517582366&hsa_cam=805100113&hsa_grp=891556833&hsa_ad=1558773703&hsa_net=linkedin&hsa_ver=3",
"messageSender": null,
"callToAction": null,
"firstShown": "2026-09-23",
"lastShown": "2026-09-25",
"totalImpressions": "5k-10k",
"impressionsLow": 5000,
"impressionsHigh": 10000,
"impressionsByCountry": [
{ "country": "United Kingdom", "share": 91 },
{ "country": "Ireland", "share": 9 }
],
"targeting": {
"language": { "includes": ["English"], "excludes": [] },
"location": { "includes": ["Ireland", "United Kingdom"], "excludes": [] },
"parameters": [
{ "parameter": "Audience", "targeted": false, "excluded": true },
{ "parameter": "Demographic", "targeted": false, "excluded": false },
{ "parameter": "Company", "targeted": true, "excluded": true },
{ "parameter": "Education", "targeted": false, "excluded": false },
{ "parameter": "Job", "targeted": true, "excluded": false },
{ "parameter": "Member Interests and Traits", "targeted": false, "excluded": false }
]
},
"detailsRead": true,
"search": "accountOwner \"HubSpot\"",
"isNew": null,
"charged": true,
"reason": "ad with advertiser and content",
"scrapedAt": "2026-09-25T12:12:10.512Z"
}

Pricing

Pay per event. No subscription.

EventPriceCharged when
Actor start$0.00005once per run
Ad$0.003an ad is delivered with its ID, its advertiser and its content

Worked example: 500 ads cost 500 x $0.003 = $1.50, plus $0.00005 for the start. Rows without usable content are still delivered, with charged: false, their adUrl and a reason, and cost $0.

Monitor mode charges only for ads new since your last run, rows with no content are delivered free, and the price is the same whether or not you read detail pages. Turning withDetails off makes a run about five times faster.

Input

{
"companies": ["HubSpot", "Salesforce"],
"keywords": ["webinar"],
"countries": ["DE", "FR"],
"dateOption": "last-30-days",
"maxAdsPerSearch": 100,
"withDetails": true,
"onlyNewSinceLastRun": false
}
FieldTypeDefaultWhat it does
companiesarrayAdvertiser names as they appear on LinkedIn, for example HubSpot
keywordsarrayWords that appear in the ad, for example webinar. Each keyword is its own search
payersarrayThe entity that paid, when it differs from the advertiser
startUrlsarraySearch URLs copied from linkedin.com/ad-library/search, filters already set
countriesarrayallISO codes such as US, GB or DE. EU is not a code and matches nothing; list member states
dateOptionstringlast-30-dayslast-30-days, current-month, current-year, last-year or custom-date-range
startDate, endDatestringFor the custom range, YYYY-MM-DD
minImpressions, maxImpressionsintegerImpressions bounds. Only EU-shown ads have impressions, so every other ad is dropped
maxAdsPerSearchinteger100Stop after this many ads per company, keyword, payer or URL, up to 5,000
withDetailsbooleantrueRead each ad's detail page for payer, dates, impressions by country and targeting
onlyNewSinceLastRunbooleanfalseMonitor mode: later runs of the same search return only new ads
proxyConfigurationobjectApify residentialThe Ad Library blocks datacenter IPs

Use cases

  • Competitor ad monitoring. Put three to ten competitors in companies, turn on monitor mode and schedule it weekly. Each run returns only ads that appeared since the last one.
  • Agency pitch decks. Open a pitch with the prospect's own ads, their run dates, and the countries the impressions went to.
  • ABM messaging research. Read the copy and headlines a target account's vendors use, and which parameter groups they targeted.
  • Creative benchmarking. Build a swipe file of a category from keyword searches, with the picture or MP4 of each ad.

Integrations

curl -X POST "https://api.apify.com/v2/acts/agnes.developer.queen~linkedin-ad-library-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"companies": ["HubSpot"], "maxAdsPerSearch": 20}'

The same call works from Python and Node.js with the Apify client, and from Make, n8n or Zapier with the Apify app or node. Pair it with a schedule and monitor mode to post new competitor ads to a sheet or a CRM.

Any MCP client can also call the Actor as a tool at https://mcp.apify.com/?tools=agnes.developer.queen/linkedin-ad-library-scraper. Ask your assistant what a competitor is advertising on LinkedIn this month.

FAQ

Is the LinkedIn Ad Library public?

Yes. LinkedIn publishes it at linkedin.com/ad-library for anyone, without signing in. This Actor reads those public pages in bulk.

Does it need my LinkedIn login or cookies?

No. It never signs in to LinkedIn and never asks for cookies, so your account is not involved.

How far back does it go?

As far as the Ad Library's own date filter: the last 30 days, this month, this year, last year, or a custom range with startDate and endDate. Removed ads are not returned.

Why do some ads have no impressions, dates or targeting?

LinkedIn publishes those only for ads shown in the EU, so set countries to member state codes such as DE or FR to get ads that carry them.

Why was an ad not charged?

LinkedIn showed no text, picture or video for it. The row is still delivered with charged: false, a reason and the adUrl, and costs nothing.

Can I track a competitor weekly?

Yes. Turn on onlyNewSinceLastRun and schedule the Actor weekly. The first run delivers current ads up to your limit, each later run delivers only the new ones marked isNew, and you pay only for those.

Can I filter by impressions?

Yes, with minImpressions and maxImpressions. Ads without published impressions are dropped by the filter, which in practice means non-EU ads.

The Actor reads only public Ad Library pages, with no login. You are responsible for how you use the data and for complying with LinkedIn's terms and the laws that apply to you, including GDPR where personal data is involved.

Support

Found a bug or need a field? Open an issue on the Issues tab in the Apify Store or on GitHub. Docs and examples: github.com/agnesthedeveloper/linkedin-ad-library-scraper