LinkedIn Ads Library Scraper - Competitor Ad Copy & Targeting
Pricing
from $3.00 / 1,000 ads
LinkedIn Ads Library Scraper - Competitor Ad Copy & Targeting
See which ads any company or keyword is running on LinkedIn, straight from the public LinkedIn Ad Library: advertiser, payer, format, headline, ad text, CTA, landing page, media, run dates, impressions and targeting. No login. $3 per 1,000 ads; empty searches are free.
Pricing
from $3.00 / 1,000 ads
Rating
0.0
(0)
Developer
Tenfold Fleet
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
11 hours ago
Last modified
Categories
Share
What does LinkedIn Ads Library Scraper do?
LinkedIn Ads Library Scraper exports ads from the public LinkedIn Ad Library (linkedin.com/ad-library). Search by company or advertiser name, by keyword in the ad copy, by payer, or paste Ad Library search links, and get one clean row per ad: advertiser, ad format, headline, ad text, images and video, and a link to the ad. Turn on Include full ad details to also get the payer, run dates, call to action, landing page URL, full ad text and, for ads shown in the EU, the impressions range, impressions by country and targeting (language, location and audience facets).
Use it as a LinkedIn Ad Library API from the Apify API, a schedule, Make, Zapier, n8n or an AI agent. No LinkedIn account and no login cookies are needed.
Not affiliated with LinkedIn. This Actor reads the ad library that LinkedIn publishes for anyone to browse.
Why use it?
- Competitor research for B2B marketers: see every ad a competitor runs on LinkedIn, which formats they use (single image, video, carousel, document and the other formats LinkedIn lists) and what they promise in the copy.
- Messaging and creative swipe files: collect headlines, CTAs and landing pages for a category ("cybersecurity", "payroll software") in minutes instead of scrolling the library by hand.
- Targeting insight: for EU-delivered ads, read which locations, languages and audience facets (company, job, demographic, interests) the advertiser selected.
- Spend signals: impressions ranges and the country split show which campaigns get the most delivery.
- Monitoring: schedule it weekly per competitor and spot new ads by
adIdand run dates. - Agency prospecting: check whether a prospect advertises on LinkedIn at all, and who pays for the ads.
What data can it extract?
| Field | Description | Needs details |
|---|---|---|
adId, adUrl | LinkedIn ad ID and link to the ad in the library | |
advertiserName, advertiserLogoUrl, advertiserDescription | Company or person running the ad (headline shown for people) | |
format, creativeType | Ad format as LinkedIn labels it: single image, video, carousel, document and others | |
headline, bodyText | Ad headline and ad text (preview text on search results, full text with details) | |
imageUrls, videoThumbnailUrl | Creative images and the video cover image | |
advertiserUrl | LinkedIn company or profile page of the advertiser | yes |
payer | Who paid for the ad ("Paid for by") | yes |
ctaText, landingUrl | Call-to-action button and destination URL | yes |
videoUrl, carouselCards, document | MP4 file, carousel cards, document title and page count | yes |
startDate, endDate | Dates the ad ran (EU-delivered ads) | yes |
impressions, impressionsMin, impressionsMax | Total impressions range, e.g. 30k-50k (EU-delivered ads) | yes |
impressionsByCountry | Share of impressions per country (EU-delivered ads) | yes |
targeting, targetingParameters | Included and excluded locations and languages, plus which audience facets were used (EU-delivered ads) | yes |
searchType, searchQuery, position | Which search found the ad and its rank |
How to scrape the LinkedIn Ad Library
- Add one or more keywords (for example
cybersecurity), advertiser names (for exampleHubSpot) or payer names. You can also paste search URLs from linkedin.com/ad-library or single ad URLs. - Optionally pick countries and a date range (last 30 days, this month, this year, last year or custom dates).
- Set Max ads per search (default 100). Turn on Include full ad details if you need payer, dates, landing pages, impressions and targeting.
- Click Start, then download the ads as JSON, CSV or Excel, or read them through the API.
How much does it cost?
You pay per ad saved:
- $3 per 1,000 ads ($0.003 per ad) from search results.
- $5 per 1,000 ads with full details ($0.005 per ad). A detailed ad is charged at this price instead of the basic one, never both.
- A $0.00005 start fee per run.
A single ad URL or ad ID always comes with its details, so it is charged as an ad with details. Searches that find no ads, duplicate ads (an ad found by two searches is saved once) and failed requests are free. If a detail page cannot be loaded, the ad is still saved with its search-result data at the basic price. On the Apify free plan, the $5 monthly credit covers about 1,600 ads, or about 1,000 ads with full details. Set a maximum cost per run and the Actor stops as soon as it is reached.
Input
{"keywords": ["cybersecurity"],"advertisers": ["HubSpot"],"countries": ["US", "GB", "DE"],"dateOption": "last-30-days","includeDetails": true,"maxAds": 100}
Each keyword, advertiser, payer and search URL is a separate search with its own Max ads per search limit. Countries and the date range apply to keyword, advertiser and payer searches; a pasted search URL keeps its own filters.
Output
One row per ad. Download it as JSON, CSV, Excel, XML or HTML, or fetch it through the Apify API. Example with details:
{"adId": "1100088693","adUrl": "https://www.linkedin.com/ad-library/detail/1100088693","advertiserName": "Example Analytics","advertiserUrl": "https://www.linkedin.com/company/example-analytics","payer": "Example Analytics Inc.","format": "video","headline": null,"bodyText": "Most CMO hires fail in the first year. Here is what the good ones do differently. ...","ctaText": null,"landingUrl": null,"videoUrl": "https://dms.licdn.com/playlist/vid/v2/.../mp4-720p-30fp-crf28/...","startDate": "2025-12-30","endDate": "2026-01-05","impressions": "30k-50k","impressionsMin": 30000,"impressionsMax": 50000,"impressionsByCountry": [{ "country": "United States", "percent": 23 },{ "country": "France", "percent": 13 }],"targeting": [{ "parameter": "Language", "includes": ["English"], "excludes": [] },{ "parameter": "Location", "includes": ["Australia and New Zealand", "DACH", "United States"], "excludes": [] }],"targetingParameters": [{ "parameter": "Company", "targeted": true, "excluded": false },{ "parameter": "Job", "targeted": true, "excluded": false }],"detailsIncluded": true,"searchType": "keyword","searchQuery": "hiring","position": 1}
A search that finds nothing returns one free row with noResults: true. Failed searches return a free row with an error field.
Tips
- LinkedIn shows run dates, impressions and targeting only for ads delivered in the EU. For other ads the details still add the payer, CTA, landing page, full text and video file.
- Advertiser search matches advertiser names that contain your words, so "Microsoft" also finds partners with Microsoft in their page name. Use the exact company page name ("HubSpot", not "hubspot.com") and check
advertiserNamein the output. - LinkedIn keeps about one year of ads, and custom date ranges must fall inside the past year.
- Search results without details are faster: about 60-100 ads a minute per search. With details, expect about 30-40 ads a minute.
- For monitoring, schedule the Actor and compare
adIdvalues between runs.
Use it with AI agents (MCP)
Give Claude, ChatGPT, Cursor or any MCP client this Actor as a tool through Apify's MCP server: add https://mcp.apify.com?tools=tenfoldfleet/linkedin-ad-library-scraper as a remote MCP server and sign in with your Apify account. The agent fills in the input, runs the Actor and reads the ads itself; you pay the same per-ad price as a normal run.
FAQ
Do I need a LinkedIn account or cookies?
No. The Ad Library is public, and the Actor reads it like a logged-out visitor. It never asks for your LinkedIn login.
Why are impressions and targeting empty for some ads?
LinkedIn publishes those fields only for ads shown in the European Union. Filter by EU countries (for example DE, FR, NL) to get ads that have them.
Can I get every ad of one company?
Yes. Put the company name in Advertiser or company names and raise Max ads per search. Large advertisers can have thousands of ads in the library.
Does it work for ads that already stopped running?
Yes. The library keeps ads for about a year after they run, and the Actor returns them with their run dates when LinkedIn shows them.
Why did a run take longer than expected?
LinkedIn limits how fast one visitor can browse the library, so the Actor spreads requests over several residential connections and paces them. Expect about half an hour per 1,000 ads with details. If LinkedIn blocks most requests for a while, the Actor stops early, keeps the ads it already saved and adds a free row that says so.
Disclaimer
This Actor is not affiliated with, endorsed by or sponsored by LinkedIn Corporation. LinkedIn is a trademark of LinkedIn Corporation. The Actor extracts only advertising data that LinkedIn makes public in its Ad Library. Some ads are run by individual people; their names and public headlines appear in the library, so handle that data in line with GDPR and your local privacy laws.