LinkedIn Ad Library Scraper
Pricing
from $0.90 / 1,000 ad with details
LinkedIn Ad Library Scraper
Scrape the public LinkedIn Ad Library by company, keyword, country and date: ad copy, images and videos, CTA, advertiser, targeting, impression ranges and run dates. No LinkedIn login or cookies.
Pricing
from $0.90 / 1,000 ad with details
Rating
0.0
(0)
Developer
Quelli di Carne Genuina
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Extract ads from the public LinkedIn Ad Library by company, keyword, payer or URL. Get the full ad copy, headline, call-to-action, landing page with UTM parameters, images, videos, documents, total impressions, impressions by country, targeting (language, location, audience, job, company…) and the dates each ad ran. No LinkedIn account or cookies needed.
Independent tool, not affiliated with or endorsed by LinkedIn Corporation. It reads only what LinkedIn publishes in its public Ad Library.
What you get
One row per ad, with copy, landing page and reach (real result, shortened):
{"adId": "1558746953","format": "SINGLE_IMAGE","advertiserName": "IXTENSA 🧡 HubSpot","paidBy": "IXTENSA GmbH & Co. KG","headline": "Live-Webinar am 14.10.2026 um 11 Uhr","ctas": ["Sign Up"],"clickUrl": "https://lp.ixtensa.de/webinar-hubspot-probleme?utm_campaign=Webinar+HubSpot+Probleme&utm_source=linkedin&utm_medium=paid","availability": { "start": "2026-09-24", "end": "2026-10-10" },"impressions": "5k-10k","impressionsPerCountry": [{ "country": "Germany", "impressions": "100%", "percent": 100 }],"targeting": { "language": "English", "location": "Germany" }}
Try it in 1 click. Press Start with the prefilled input (HubSpot ads in the US, 20 ads with full details). LinkedIn detail pages are slower than most sources: in our tests today 50 detailed ads took 2–3 minutes at 512 MB, so expect roughly a minute for the 20-ad example (estimate, not timed separately); it costs at most $0.064 on the Apify Free plan (less on paid plans). For a faster first look turn on skipDetails.
Price: per 1,000 ads with full details, from $3.20 on the Apify Free plan down to $0.90 on Gold and above (list-only ads $1.60 down to $0.44), no start fee.
Why this LinkedIn ads scraper
- Cheaper than silva95gustavo's LinkedIn Ad Library actor on every Apify plan: 20% less on Free, Bronze and Silver, 10% less on Gold and above (detailed ads; see the price table below), no start fee, and you pay only for ads delivered.
- Drop-in compatible:
startUrls,resultsLimit,skipDetailsandconcurrencywork like in other popular LinkedIn Ad Library actors, and the main output fields keep the same names (adId,advertiserName,body,headline,ctas,clickUrl,impressions,impressionsPerCountry,targeting,availability…). - No URL building needed: search by
companies,keywords,payersorcompanyIdswithcountriesand date filters. - Richer data: numeric
impressionsMin/impressionsMax,percentper country,targetingParameters(what was targeted or excluded),landingDomain, parsedutmtags, all images, highest-quality video URL, document title and pages, message-ad sender, ISO dates. - Monitoring mode:
onlyNewAdsreturns (and bills) only ads you have not seen before. Schedule it daily for competitor alerts. - Reliable by design: LinkedIn blocks many proxy IPs; the actor keeps healthy sessions and rotates blocked ones automatically, and if a detail page cannot be loaded you still get the ad from the result list instead of losing it.
Use cases
- Competitor research: every ad a competitor runs on LinkedIn, with copy, offer, CTA and landing page.
- B2B messaging and positioning analysis: collect ad copy by keyword (e.g. "cybersecurity", "CRM") across an industry.
- Media buying intelligence: see which agency pays for a brand's ads (
paidBy) and how much reach each ad got. - Targeting insights: which audiences, jobs, companies and countries an advertiser chooses.
- Swipe files and creative libraries: images, videos and documents of top-performing B2B ads.
- Lead generation: find companies actively spending on LinkedIn ads in a market.
Input
{"companies": ["hubspot", "salesforce"],"keywords": ["cybersecurity"],"countries": ["US", "DE"],"dateOption": "last-30-days","resultsLimit": 100,"skipDetails": false,"onlyNewAds": false}
| Field | What it does |
|---|---|
startUrls | Ad Library search URLs (all filters kept), single ad URLs /ad-library/detail/<id>, or company pages linkedin.com/company/<name or id>. |
companies | Advertiser names, one search each. |
keywords | Words in the ad copy, one search each. |
payers | Entity that paid for the ads (often an agency). |
companyIds | Numeric LinkedIn company IDs for an exact advertiser. |
countries | Two-letter country codes; empty = all. |
dateOption / startDate / endDate | Last 30 days, current month, current year, last year, or a custom range. |
resultsLimit | Max ads per search; empty = all. |
skipDetails | List data only: faster and cheaper. |
onlyNewAds / monitorStoreName | Monitoring memory between runs. |
Output
{"adId": "1558746953","adUrl": "https://www.linkedin.com/ad-library/detail/1558746953","format": "SINGLE_IMAGE","creativeType": "SPONSORED_STATUS_UPDATE","advertiserName": "IXTENSA 🧡 HubSpot","advertiserUrl": "https://www.linkedin.com/company/7267658","paidBy": "IXTENSA GmbH & Co. KG","headline": "Live-Webinar am 14.10.2026 um 11 Uhr","body": "Viele HubSpot-Kunden kämpfen mit denselben Problemen…","ctas": ["Sign Up"],"clickUrl": "https://lp.ixtensa.de/webinar-hubspot-probleme?utm_campaign=Webinar+HubSpot+Probleme&utm_source=linkedin&utm_medium=paid","landingDomain": "lp.ixtensa.de","utm": { "utm_campaign": "Webinar HubSpot Probleme", "utm_source": "linkedin", "utm_medium": "paid" },"imageUrl": "https://media.licdn.com/dms/image/v2/…","videoUrl": null,"document": null,"availability": { "start": "2026-09-24", "end": "2026-10-10" },"impressions": "5k-10k","impressionsMin": 5000,"impressionsMax": 10000,"impressionsPerCountry": [{ "country": "Germany", "impressions": "100%", "percent": 100 }],"targeting": { "language": "English", "location": "Germany" },"targetingParameters": { "Company": { "targeted": true, "excluded": false }, "Job": { "targeted": true, "excluded": false } },"startUrl": "https://www.linkedin.com/ad-library/search?accountOwner=hubspot&countries=DE"}
Impressions, countries, targeting and run dates are published by LinkedIn for ads shown in the European Union; for other ads these fields are empty. With skipDetails each item has adId, adUrl, format, advertiserName, a shortened body, imageUrl and detailsIncluded: false.
Pricing
Pay per event, no start fee. The price depends on your Apify plan:
| Event | Free | Bronze | Silver | Gold, Platinum, Diamond |
|---|---|---|---|---|
| Ad with details | $0.0032 | $0.0024 | $0.0012 | $0.0009 |
Ad from the result list (skipDetails, or when a detail page is unavailable) | $0.0016 | $0.00144 | $0.0008 | $0.00045 |
Example: 1,000 fully detailed ads cost $3.20 on Free, $0.90 on Gold. Set a maximum total charge on the run to cap spending; the actor stops cleanly when it is reached.
Migrating from silva95gustavo/linkedin-ad-library-scraper
The four input fields of silva95gustavo's actor exist here with the same names, so an existing input usually works after changing the actor ID to lagenuina_agency/linkedin-ad-library-scraper.
| silva95gustavo input | This actor | Notes |
|---|---|---|
startUrls | startUrls | Same: Ad Library search URLs, and company pages (linkedin.com/company/...). Single ad URLs (/ad-library/detail/<id>) also work here. |
resultsLimit | resultsLimit | Same: max ads per input; empty = all. |
skipDetails | skipDetails | Same: list data only, billed at the lower list price. |
concurrency | concurrency | Same idea; default 5 here (max 20) instead of a value picked from memory. |
| (not available) | companies, keywords, payers, companyIds, countries, dateOption, startDate, endDate | Extra: search without building URLs. |
| (not available) | onlyNewAds, monitorStoreName | Extra: monitoring mode. |
| (not set in input) | proxyConfiguration | Residential Apify Proxy by default. |
Output: all fields in silva95gustavo's README example keep their names (adId, advertiserLogo, advertiserName, advertiserUrl, availability.start/end, body, clickUrl, ctas, format, headline, imageUrl, impressions, impressionsPerCountry[].country/impressions, paidBy, startUrl, targeting). Added here: adUrl, creativeType, formatLabel, description, landingDomain, utm, imageUrls, videoUrl, videoPosterUrl, document, messageSender, thoughtLeader, variantCount, impressionsMin, impressionsMax, impressionsPerCountry[].percent, targetingParameters.
Price per 1,000 ads (public Apify Store prices, checked on 17 October 2026; both actors price by Apify plan; silva95gustavo also adds a small start fee of $0.00005 per GB of run memory):
| Apify plan | silva95gustavo, with details | This actor, with details | silva95gustavo, list only | This actor, list only |
|---|---|---|---|---|
| Free | $4.00 | $3.20 (-20%) | $2.00 | $1.60 (-20%) |
| Bronze | $3.00 | $2.40 (-20%) | $1.80 | $1.44 (-20%) |
| Silver | $1.50 | $1.20 (-20%) | $1.00 | $0.80 (-20%) |
| Gold and above | $1.00 | $0.90 (-10%) | $0.55 | $0.44 (-20%) |
Speed and completeness: we have not benchmarked the two actors side by side. Run the same input on both and compare your own runs.
Limits / not supported
- Impressions, impressions by country, targeting and run dates are published by LinkedIn only for ads shown in the EU; for other ads these fields are empty.
- History is limited to what the Ad Library keeps (about one year).
- No spend, budget, clicks or CTR: LinkedIn does not publish them.
companiesand company-page URLs with a name use LinkedIn's advertiser-name search, which can include similarly named advertisers. UsecompanyIds(or a numeric company URL) for one exact advertiser.countriesand the date filters apply tocompanies,keywords,payersandcompanyIds; a pasted search URL keeps its own filters.- A residential proxy is needed (LinkedIn blocks datacenter IPs). Detail pages make runs slower: about 2–3 minutes per 50 ads at 512 MB in our tests.
- If a detail page keeps failing, the ad is returned from the result list with
detailsIncluded: falseand billed at the list price.
Monitoring new LinkedIn ads
- Turn on
onlyNewAdsand give each competitor its ownmonitorStoreName. - The first run returns all current ads; later runs return and bill only new ones.
- Add an Apify Schedule (daily) and a Slack, email or webhook integration.
Use it from AI agents (MCP)
The actor works as a tool in any MCP client (Claude, ChatGPT, Cursor, custom agents) via the Apify MCP server:
{"mcpServers": {"apify": { "url": "https://mcp.apify.com/?actors=lagenuina_agency/linkedin-ad-library-scraper" }}}
Ask things like "What LinkedIn ads did HubSpot run in Germany this month, and which agency paid for them?" or "Find LinkedIn ads about cybersecurity in France and list their landing pages." The inputs map one-to-one to such questions and results come back as structured JSON.
Integrations and API
Call it from your code with the official Apify clients:
# pip install apify-clientfrom apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("lagenuina_agency/linkedin-ad-library-scraper").call(run_input={"startUrls": [{"url": "https://www.linkedin.com/ad-library/search?accountOwner=hubspot&countries=US"}], "resultsLimit": 20})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item)
// npm i apify-clientimport { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('lagenuina_agency/linkedin-ad-library-scraper').call({"startUrls": [{"url": "https://www.linkedin.com/ad-library/search?accountOwner=hubspot&countries=US"}], "resultsLimit": 20});const { items } = await client.dataset(run.defaultDatasetId).listItems();
No-code: use the Apify app in n8n, Make or Zapier (action "Run Actor", pick lagenuina_agency/linkedin-ad-library-scraper), or the langchain-apify / CrewAI ApifyActorsTool integrations for AI agents. Results can also be pushed to Google Sheets, Slack, webhooks or any S3 bucket via Apify integrations.
More tools from Quelli di Carne Genuina
Ad intelligence
- Google Ads Transparency Scraper: every ad a brand or domain runs on Google Search, YouTube, Shopping, Maps and Play.
- Meta Ad Library Scraper: Facebook and Instagram ads by page, keyword or Ad Library URL, with creatives and landing pages.
- TikTok Top Ads Scraper: top-performing TikTok ads from the Creative Center with CTR, likes and MP4 video URLs.
Competitor & SEO research
- Similarweb Website Traffic Scraper: monthly visits, ranks, traffic sources and top countries for any list of domains.
- Google Trends Scraper: interest over time, by region, related queries and Trending Now.
- Google Play Store Scraper: app search, details, top charts and reviews from Google Play, any country.
Travel prices
- Google Hotels Scraper: hotel prices and every booking site's rate for any city and dates.
- Google Flights Scraper: fares, airlines, stops, price level and price calendar for any route and date.
Retail prices
- Woolworths AU Product Scraper: Woolworths Australia grocery prices, specials, unit prices and barcodes.
- Coles AU Product Scraper: Coles Australia grocery prices, half-price specials, unit prices and barcodes.
Content & social data
- YouTube Transcript Scraper: transcripts of videos, Shorts, playlists and channels as text, SRT or VTT.
- Medium Scraper: Medium articles by tag, author or search, with full text as Markdown.
- Likee Scraper: Likee videos, profiles and creator engagement analytics.
FAQ
How do I see all LinkedIn ads of a company? Put the company name in companies (or paste its Ad Library or company page URL) and leave resultsLimit empty.
Can I export LinkedIn ads to CSV or Excel? Yes: every run's dataset downloads as CSV, Excel, JSON or XML, or via API.
Is there a LinkedIn Ad Library API? LinkedIn does not offer a public API for the Ad Library. This actor works as one: send company names, keywords or URLs through the Apify API and get JSON back, from Python, JavaScript, n8n, Make, Zapier or MCP.
Does it need my LinkedIn login? No, the Ad Library is public.
Why are impressions empty for some ads? LinkedIn publishes impressions, countries and targeting only for ads delivered in the EU.
How far back does it go? As far as LinkedIn's Ad Library: about one year.
Is it legal to scrape the LinkedIn Ad Library? It is public transparency data. You are responsible for how you use it; avoid processing personal data without a legal basis and check local laws.
Something missing or broken? Open an issue on the Issues tab, we reply within 24 hours.