LinkedIn Ad Library Scraper - Ads, Advertisers & Impressions
Pricing
from $0.99 / 1,000 ads
LinkedIn Ad Library Scraper - Ads, Advertisers & Impressions
Scrape the LinkedIn Ad Library without login: competitor B2B ads by keyword, advertiser or payer with ad copy, creatives, videos, carousels, CTA, landing page, Paid for by, run dates, impressions by country and targeting. Ad spy tool. $1.24 per 1,000 ads.
Pricing
from $0.99 / 1,000 ads
Rating
0.0
(0)
Developer
Social Scrapers
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
11 minutes ago
Last modified
Categories
Features
Share
LinkedIn Ad Library Scraper
LinkedIn Ad Library Scraper extracts ads from the public LinkedIn Ad Library without a LinkedIn account, cookies or login. Search by keyword, advertiser or payer, filter by country and date, and get every ad with its text, headline, call to action, landing page, images, video files, carousel cards, documents and message ads, plus "Paid for by", run dates, impressions by country and the advertiser's targeting. It costs $0.95 per 1,000 ads.
💡 Need a feature that isn't here? Just ask. Open an issue on the Issues tab and tell us what you need: a new field, filter, input type or output format. We build requested features fast, usually within 24 hours, at no extra cost.
⭐ Found it useful? A short review on the Reviews tab helps other people find this scraper, and tells us what to build next.
What does LinkedIn Ad Library Scraper do?
- Four ways to search. Keywords in the ads, advertiser (company) names, the "Paid for by" entity, or Ad Library URLs copied from your browser — searches or single ads.
- Every Ad Library filter. Countries (one or many) and dates: last 30 days, this month, this year, last year, or a custom range. URLs keep all their own filters.
- All results. The Actor pages through the whole search; set
maxAdsto0for every ad. - The whole creative. Intro text, headline, description, call to action, landing page, images, video files (best quality first) and cover, carousel cards, document title and pages, and message ads (sender, text, buttons).
- Transparency data. "Paid for by", the advertiser's page, first and last day the ad ran, total impressions as a range, the share of impressions per country, and targeting: languages, locations included and excluded, and which targeting parameters (audience, demographic, company, education, job, member interests) were used.
- Every format. Single image, video, carousel, document, message, conversation, event, text, spotlight, follower, job and thought-leader ads.
- Pay only for ads delivered. The run stops cleanly at the spending limit you set.
What data can you extract?
One item per ad. Every field is always present; null or [] means LinkedIn shows nothing for it.
| Field | Description |
|---|---|
adId, adUrl | The ad's ID and its page in the Ad Library |
advertiserName, advertiserUrl, advertiserLogoUrl | The advertiser |
promotedMember | Thought-leader ads: the member whose post is promoted (name, url, headline, imageUrl) |
format, formatLabel, creativeType | SINGLE_IMAGE, VIDEO, CAROUSEL, DOCUMENT, MESSAGE, CONVERSATION, EVENT, TEXT, SPOTLIGHT, FOLLOWER, JOB, ARTICLE…, LinkedIn's own label and type |
introText, headline, description | The ad's words |
callToAction, landingUrl | The button and where the ad leads |
imageUrls, videoUrls, videoPosterUrl | Media |
carouselCards | Carousel ads: each card's title, imageUrl, landingUrl |
document | Document ads: title, pageCount, coverImageUrls |
message | Message ads: senderName, senderImageUrl, text, buttons |
paidBy | Who paid for the ad |
firstShown, lastShown, runDatesText | When the ad ran |
impressionsText, impressionsLow, impressionsHigh | Total impressions as a range (1k-5k, < 1k) with numbers |
impressionsByCountry | Share of impressions per country (fractions of 1) |
targetedLanguages, targetedLocations, excludedLocations | Targeting at a glance |
targetingSegments, targetingParameters | Every targeting category with its values, and which parameters were targeted or excluded |
hasDetails, input, inputType, scrapedAt | Whether the ad's page was read, where the ad came from, and when |
How to scrape the LinkedIn Ad Library
- Open the Actor and add advertisers, keywords, payers or Ad Library URLs.
- Pick countries and a date range if you need them.
- Set Max ads per search (
0= all). - Click Start, then download the ads as JSON, CSV, Excel, XML or HTML, or read them through the API.
How much does it cost?
You pay per ad delivered to the dataset: $1.24 per 1,000 ads, with or without ad details. Apify subscribers pay less: Silver −10% ($1.116 per 1,000) and Gold, Platinum and Diamond −20% ($0.992 per 1,000). Each run also carries Apify's standard Actor start charge of $0.0005 (one per GB of memory, at least one).
| Job | Ads | Price (no discount) |
|---|---|---|
| The newest 100 ads of 10 competitors | 1,000 | $1.24 |
| Every ad mentioning a keyword (5,000 ads) | 5,000 | $6.20 |
| A weekly check of 20 advertisers, 50 ads each | 1,000 a week | $1.24 a week |
Searches with no results and ads that cannot be found cost nothing. To cap spending, set a maximum total charge in the run options: the Actor stops cleanly once it is reached and keeps everything collected so far.
Input example
{"advertisers": ["HubSpot"],"searchTerms": ["project management"],"payers": [],"startUrls": ["https://www.linkedin.com/ad-library/search?keyword=crm&countries=DE"],"countries": ["US", "DE"],"dateOption": "last-30-days","maxAds": 100,"includeAdDetails": true}
The scraper picks Apify Proxy's tier itself: datacenter first, residential only when a request is refused.
Output example
A real ad from a test run (long links shortened):
{"adId": "1631307464","adUrl": "https://www.linkedin.com/ad-library/detail/1631307464","advertiserName": "HubSpot","advertiserUrl": "https://www.linkedin.com/company/68529","advertiserLogoUrl": "https://media.licdn.com/dms/image/v2/C4D0BAQF8H-SLmMDZlA/company-logo_100_100/…","promotedMember": null,"format": "VIDEO","formatLabel": "Video Ad","creativeType": "SPONSORED_VIDEO","introText": "La recherche par IA transforme la manière dont les clients découvrent les marques. HubSpot AEO vous indique précisément votre positionnement et les leviers indispensables pour surpasser la concurrence.","headline": "Se démarquer en recherche IA, ça rapporte.","description": null,"callToAction": "Learn more","landingUrl": "https://www.hubspot.fr/products/aeo?utm_source=linkedin&utm_medium=paid_brandstrategy&…","imageUrls": [],"videoUrls": ["https://dms.licdn.com/playlist/vid/v2/D4E10AQEiybKJQl8Bvg/progressive-servable-video/…","https://dms.licdn.com/playlist/vid/v2/D4E10AQEiybKJQl8Bvg/mp4-720p-30fp-crf28/…"],"videoPosterUrl": "https://media.licdn.com/dms/image/v2/D4E10AQEiybKJQl8Bvg/videocover-high/…","carouselCards": [],"document": null,"message": null,"paidBy": "HubSpot, Inc.","firstShown": "2026-11-05","lastShown": "2026-11-08","runDatesText": "Ran from Nov 5, 2026 to Nov 8, 2026","impressionsText": "10k-20k","impressionsLow": 10000,"impressionsHigh": 20000,"impressionsByCountry": [{ "country": "France", "share": 1 },{ "country": "United Arab Emirates", "share": 0.005 },{ "country": "United States", "share": 0.005 }],"targetedLanguages": ["English"],"targetedLocations": ["France"],"excludedLocations": [],"targetingSegments": [{ "category": "Language", "includes": ["English"], "excludes": [] },{ "category": "Location", "includes": ["France"], "excludes": [] }],"targetingParameters": [{ "name": "Audience", "targeted": true, "excluded": false },{ "name": "Demographic", "targeted": false, "excluded": false },{ "name": "Company", "targeted": true, "excluded": true },{ "name": "Education", "targeted": false, "excluded": false },{ "name": "Job", "targeted": true, "excluded": true },{ "name": "Member Interests and Traits", "targeted": false, "excluded": false }],"hasDetails": true,"input": "HubSpot","inputType": "advertiser","scrapedAt": "2026-11-08T12:29:54.428Z"}
Use cases
- Competitor B2B ad research: every ad a competitor runs on LinkedIn, its message, offer, call to action and landing page.
- Creative inspiration: collect hooks, headlines, videos, carousels and documents that work for your audience.
- Targeting intelligence: see which countries, languages and targeting parameters advertisers use for ads shown in the EU.
- Campaign monitoring: schedule the Actor to follow advertisers or keywords week by week.
- Market research and datasets: gather B2B ad copy and media at scale for analysis or training data.
API, Python, JavaScript & integrations
JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });const run = await client.actor('socialscrapers/linkedin-ad-library-scraper').call({advertisers: ['HubSpot'],countries: ['US'],maxAds: 100,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("socialscrapers/linkedin-ad-library-scraper").call(run_input={"searchTerms": ["project management"],"maxAds": 0,})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item["advertiserName"], item["headline"], item["landingUrl"])
Connect it to Make, Zapier, n8n, Google Sheets and other tools with Apify integrations, get notified with webhooks, run it on a schedule, or call it from AI agents through the Apify MCP server.
Limits
- EU transparency data. LinkedIn publishes run dates, impressions, countries and targeting for ads shown in the European Union. Other ads come with their creative, advertiser and "Paid for by" line.
- Custom dates. LinkedIn's custom date range covers the last 12 months, ends yesterday at the latest and spans at least two days; the Actor fits your dates into that window and says so in the log. For older ads, use the "Last year" option.
- Each search stands alone. An ad that matches several of your searches is returned once for each of them;
inputsays which. - Ad versions. Some ads have several versions; the Ad Library page shows one of them.
- Media links expire. Image and video links point to LinkedIn's servers and stop working after some time. Download media promptly if you need it.
- A run with 0 results still succeeds. When an advertiser or ad does not exist in the Ad Library, or nothing matches a search and its filters, the run ends as Succeeded with a status message naming each search and why, and nothing is charged. When nothing in the input can be used at all, the run also ends as Succeeded, with a status message that starts "Nothing to scrape:" and says what to fix; no results are charged. A run fails only when LinkedIn refuses every one of 3 or more searches and a well-known public LinkedIn Ad Library search is refused too (the scraper is then blocked; try again later).
FAQ
Is it legal to scrape the LinkedIn Ad Library? The Actor reads only what the Ad Library shows to every visitor, without logging in. You are responsible for how you use the data, including LinkedIn's terms and data-protection laws.
Do I need a LinkedIn account or cookies? No. The Actor works logged out.
How many ads can I get?
All the ads a search finds: set maxAds to 0.
Why did I get fewer ads than I asked for? The search has fewer results under your filters, or the run reached its maximum total charge. The run log says which, for each search.
Can I get only new ads? Run the Actor on a schedule with a recent date range (for example "Last 30 days") and keep the ad IDs you already have; new ads have IDs you have not seen.
How fast is it?
In our tests, 500 ads with all details took about two minutes, and 500 ads without details (includeAdDetails off) under 30 seconds.
Other scrapers by Social Scrapers
| Scraper | What it gets |
|---|---|
| TikTok Scraper | Videos, Profiles, Hashtags and Comments |
| Instagram Comments Scraper | Comments, Likes and Reply Counts |
| Instagram Hashtag Scraper | Reels and Keyword Search |
| Instagram Post Scraper | Posts, Reels and Comments |
| Instagram Profile Scraper | Followers, Bio, Posts and Reels |
| Instagram Reels Scraper | Reels, Plays, Likes and Comments |
| YouTube Channel Scraper | Videos, Shorts, Subscribers and About |
| YouTube Comments Scraper | Comments, Replies and Likes |
| YouTube Scraper | Videos, Shorts, Channels and Comments |
| YouTube Shorts Scraper | Shorts, Views, Likes and Search |
| YouTube Transcript Scraper | Subtitles, Captions and SRT |
| Facebook Ads Library Scraper | Meta Ad Library and Spend |
| Facebook Groups Scraper | Public Group Posts and Reactions |
| Facebook Posts Scraper | Pages, Profiles and Timelines |
| Facebook Pages Scraper | Profiles, Contact Info and Reviews |
| X (Twitter) Profile Scraper | Followers, Bio and Tweets |
| X (Twitter) Tweet Scraper | Latest Posts by Profile |
| Threads Scraper | Posts, Profiles, Replies and Search |
| Reddit Scraper | Posts, Comments, Subreddits, Users and Search |
| Quora Scraper | Answers, Questions, Profiles and Topic Search |
| LinkedIn Jobs Scraper | Job Listings, Salaries and Companies |
| Google News Scraper | Headlines, Articles and Search |
| Google Ads Transparency Scraper | Ad Creatives and Advertisers |
| Telegram Channel Scraper | Posts, Views and Media |