Linkedin Ads Scraper
Pricing
from $0.50 / 1,000 results
Linkedin Ads Scraper
🔮 Unlock LinkedIn Ads Insights: Transform LinkedIn Ad Library data into structured analytics. Extract comprehensive ad performance, targeting strategies, and campaign metrics with automated calculations. Access real-time advertising intelligence through simple API calls.
Pricing
from $0.50 / 1,000 results
Rating
1.1
(2)
Developer
Data Xplorer
Maintained by CommunityActor stats
7
Bookmarked
66
Total users
2
Monthly active users
9 days ago
Last modified
Categories
Share
📢 What is LinkedIn Ads Scraper?
LinkedIn Ads Scraper extracts ads from the LinkedIn Ad Library and gives them back as clean, structured data: ad text, creative, format, advertiser, who paid for it, run dates, impressions by country and targeting. Paste a LinkedIn Ad Library search URL, choose how many LinkedIn ads you want, and download the result as JSON, CSV or Excel.
It needs no LinkedIn account, no cookies and no login: it reads the public LinkedIn Ad Library, also called the LinkedIn Ads Library. Use this LinkedIn ads scraper to see what your competitors advertise on LinkedIn, to collect creative ideas for your own LinkedIn ads, or to follow a market over time. Run it from the Apify Console, call it as a LinkedIn Ads API from your code, schedule it every day, or connect it to Make, n8n, Zapier and your AI agents.
What can this LinkedIn Ads Scraper do?
- ⚡ Fast: 100 LinkedIn ads in about 25 seconds, 500 in under 3 minutes (see the timings below)
- 💰 $1 per 1,000 ads, the same price on every Apify plan
- 🔓 No login, no cookies: it reads the public LinkedIn Ad Library
- 🔗 Any LinkedIn Ad Library search: by company, keyword, country or date, simply by pasting the search URL
- 🏢 Company page URLs work too: paste
linkedin.com/company/hubspotand it is turned into the right ad search - 🌍 Impressions by country: total impressions, share per country and an estimated range for each country
- 🎯 Targeting: location, language, and the audience criteria included or excluded
- 🖼️ All the main ad formats: image, video, carousel, document, article and sponsored message
- 🧾 Who paid: the entity that paid for the ad, next to the advertiser name
- 🔗 Real landing pages: optional decoding of shortened links (
lnkd.in,bit.ly) - 🛡️ Reliable on large runs: if a results page cannot be read, the ads already found are kept and saved
- ⚙️ Everything the Apify platform offers: API, scheduling, monitoring, integrations, and export to JSON, CSV, Excel or HTML
⚡ How fast is this LinkedIn Ads Scraper?
Timings measured on real runs in October 2026:
| Run | Time |
|---|---|
| 20 ads (keyword search) | about 9 seconds |
| 100 ads (one advertiser) | about 25 seconds |
| 200 ads | about 1 minute |
| 500 ads | about 2 minutes 40 seconds |
Times depend on how quickly LinkedIn answers, so yours can differ.
💡 Why scrape LinkedIn ads?
- Competitor research: see every ad a competitor runs on LinkedIn, with the copy, the creative and the landing page
- Creative inspiration: build a swipe file of the best B2B ads in your market before writing your own LinkedIn ads
- Market and country analysis: find out in which countries a brand invests, from the impressions by country
- Audience insight: read the targeting criteria an advertiser includes and excludes
- Agencies and consultants: audit a prospect's LinkedIn advertising before a pitch
- Monitoring: schedule a daily run and spot new campaigns as soon as they start
- AI and analytics: feed a dataset of LinkedIn ads to a model, a dashboard or an AI agent
🚀 How to scrape LinkedIn ads
- Open the LinkedIn Ad Library and search for a company or a keyword. Add a country or a date filter if you want.
- Copy the URL of the results page.
- On this page, click Try for free and paste the URL in LinkedIn Ads Search URL.
- Set the Maximum number of ads.
- Click Start. The LinkedIn ads appear in the Output tab within seconds. Download them as JSON, CSV or Excel.
You can also paste the URL of a LinkedIn company page: the Actor turns it into the matching Ad Library search.
💰 How much does it cost to scrape LinkedIn ads?
You pay for the ads you get: $1 per 1,000 LinkedIn ads ($0.001 per ad), plus $0.0005 when a run starts. The price is the same on every Apify plan, and platform usage is included.
| Ads | Cost |
|---|---|
| 100 | $0.10 |
| 1,000 | $1.00 |
| 10,000 | $10.00 |
Apify's free plan includes monthly credits, enough for thousands of LinkedIn ads to try the Actor. To control your spending, set Maximum number of ads in the input, or a maximum cost per run in the run options. The current prices are always on the Pricing tab.
⬇️ Input
| Field | Type | Default | Description |
|---|---|---|---|
LinkedIn Ads Search URL (searchUrl) | text | required | A LinkedIn Ad Library search URL, or a LinkedIn company page URL |
Maximum number of ads (maxItems) | number | 20 | How many ads to collect |
Decode shortened URLs (decodeUrls) | yes/no | no | Follow lnkd.in and bit.ly links to get the real landing page. Slightly slower |
The proxyConfiguration field is still accepted so that existing integrations keep working, but it is ignored: the Actor manages its own network access.
Search URL examples
| What you want | URL to paste |
|---|---|
| All ads from one advertiser | https://www.linkedin.com/ad-library/search?accountOwner=hubspot |
| Ads that mention a keyword | https://www.linkedin.com/ad-library/search?keyword=energy |
| One advertiser, one country, last 30 days | https://www.linkedin.com/ad-library/search?accountOwner=hubspot&countries=FR&dateOption=last-30-days |
| A keyword in one country | https://www.linkedin.com/ad-library/search?keyword=crm&countries=DE |
| A company page | https://www.linkedin.com/company/hubspot/ |
Input example
{"searchUrl": "https://www.linkedin.com/ad-library/search?accountOwner=hubspot&countries=FR&dateOption=last-30-days","maxItems": 100,"decodeUrls": true}
⬆️ What data can you extract from LinkedIn ads?
| Field | Description |
|---|---|
id | Unique ad identifier |
adUrl | Link to the ad in the LinkedIn Ad Library |
advertiserName | Company or member that runs the ad |
advertiserLogo | Logo or profile picture of the advertiser |
adPaidBy | Entity that paid for the ad |
adType | Format: Single Image Ad, Video Ad, Carousel, Document, Article, Sponsored Message and more |
adDescription | Full text of the ad |
adHashtags | Hashtags found in the text |
adImage | Creative: image, video poster or document cover |
adLinkUrl | Landing page of the ad (decoded when Decode shortened URLs is on) |
rawUrl | Original link as written in the ad |
Publication Date | Start and end dates, as MM/DD/YYYY |
Publication Timestamps | The same dates as Unix timestamps |
adTotalImpressions | Total impressions, as a range such as 5k-10k |
adImpressionsCountry | For each country: share of impressions and an estimated range |
adTargetingAudience | Targeting: location, language and audience criteria, included or excluded |
LinkedIn publishes the dates, impressions and targeting of an ad when it was shown in the European Union. To get these fields on every row, add a European country to your search, for example &countries=FR.
Output example
{"id": "1500000001","advertiserName": "Example Company","advertiserLogo": "https://media.licdn.com/dms/image/v2/logo.jpg","adImage": "https://media.licdn.com/dms/image/v2/ad-creative.jpg","adLinkUrl": "https://example.com/demo?utm_source=linkedin","rawUrl": "https://lnkd.in/abc123","Publication Date": [{ "start": "10/01/2026" },{ "end": "10/12/2026" }],"Publication Timestamps": [{ "type": "Start", "value": 1790812800000 },{ "type": "End", "value": 1791763200000 }],"adType": "Single Image Ad","adDescription": "The forecast review is the most expensive meeting in most revenue teams...","adHashtags": ["revops", "forecasting"],"adUrl": "https://www.linkedin.com/ad-library/detail/1500000001","adPaidBy": "Example Company Ltd","adTotalImpressions": "5k-10k","adImpressionsCountry": [{ "country": "France", "percentage": "13%", "estimatedImpressions": { "min": 650, "max": 1300 } },{ "country": "Germany", "percentage": "9%", "estimatedImpressions": { "min": 450, "max": 900 } },{ "country": "Spain", "percentage": "7%", "estimatedImpressions": { "min": 350, "max": 701 } }],"adTargetingAudience": [{ "type": "Location", "value": "France, Germany, Spain" },{ "type": "Language", "value": "English" },{ "type": "Criteria", "value": "Companies with 1000+ employees", "status": "Included" }]}
🔎 Is there a LinkedIn Ads API?
LinkedIn's advertising APIs are made for advertisers who manage their own campaigns, and they need an approved developer application. To read the public ads of any advertiser, this LinkedIn Ad Library scraper works as a LinkedIn Ad Library API: send a search URL in one request and get the LinkedIn ads back as JSON.
🔌 How to use this LinkedIn Ads Scraper as an API
Call it with the Apify API from any language.
Python:
from apify_client import ApifyClientclient = ApifyClient("<YOUR_API_TOKEN>")run = client.actor("data_xplorer/linkedin-ads-scraper").call(run_input={"searchUrl": "https://www.linkedin.com/ad-library/search?accountOwner=hubspot","maxItems": 100,})for ad in client.dataset(run["defaultDatasetId"]).iterate_items():print(ad["advertiserName"], ad["adType"], ad["adUrl"])
Node.js:
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: '<YOUR_API_TOKEN>' });const run = await client.actor('data_xplorer/linkedin-ads-scraper').call({searchUrl: 'https://www.linkedin.com/ad-library/search?keyword=energy&countries=FR',maxItems: 100,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(`${items.length} LinkedIn ads`);
cURL (one request that starts the run and returns the ads):
curl -X POST "https://api.apify.com/v2/acts/data_xplorer~linkedin-ads-scraper/run-sync-get-dataset-items" \-H "Authorization: Bearer <YOUR_API_TOKEN>" \-H "Content-Type: application/json" \-d '{"searchUrl":"https://www.linkedin.com/ad-library/search?accountOwner=hubspot","maxItems":50}'
🤖 Use LinkedIn Ads Scraper with AI agents (MCP)
AI assistants such as Claude, Cursor or VS Code can call this Actor as a tool through the Apify MCP server. The agent sends a search URL, the Actor returns the LinkedIn ads as JSON, and the agent answers with real ad data.
Use this server URL to give your agent this Actor only:
https://mcp.apify.com?tools=data_xplorer/linkedin-ads-scraper
Claude Code:
$claude mcp add --transport http linkedin-ads "https://mcp.apify.com?tools=data_xplorer/linkedin-ads-scraper"
Cursor, VS Code and other MCP clients (MCP config file):
{"mcpServers": {"linkedin-ads": {"url": "https://mcp.apify.com?tools=data_xplorer/linkedin-ads-scraper"}}}
Example prompts:
- "Which LinkedIn ads is HubSpot running in France this month, and what do they promote?"
- "Compare the LinkedIn ads of three CRM vendors: formats, messages and landing pages."
- "In which countries does this advertiser get most of its LinkedIn ad impressions?"
Tips for agents:
- Build the search URL with
accountOwnerfor a company andkeywordfor a topic. - Add
countrieswith a European country to get impressions and targeting on every ad. - Keep
maxItemsmodest for a quick answer, and turn ondecodeUrlsonly when the landing pages matter.
🧩 Integrations
LinkedIn Ads Scraper runs on the Apify platform, so you can connect it to the rest of your stack without code:
- Make: Make and Apify integration
- n8n: n8n and Apify integration
- Zapier: send new LinkedIn ads to Slack, email, Airtable or a CRM. See Apify integrations
- Google Sheets: export each run to a spreadsheet and build an ad history
- Schedules: run the same search every day with Apify schedules
- Webhooks: get notified when a run finishes and process the ads in your own app. See webhooks
🔗 Other scrapers you may like
- LinkedIn Ads Library Scraper: the same LinkedIn ads data, from the LinkedIn Ad Library
- Facebook Ads Library: your competitors' Facebook and Instagram ads from the Meta Ad Library
- TikTok Ads Library FAST: competitor ad campaigns and creatives from the TikTok Ads Library
- TikTok Ads Scraper: TikTok Ads Library and top ads in one Actor
- Google Trends Scraper: trending searches by country and keyword interest over time
- Trustpilot Scraper: the Trustpilot reviews of any company, with filters and company replies
❓ FAQ
Do I need a LinkedIn account?
No. The Actor reads the public LinkedIn Ad Library. You do not need a LinkedIn login, cookies or your own proxies.
How many LinkedIn ads can I scrape?
As many as the search returns. Set Maximum number of ads to the number you want.
Why do some ads have no impressions, dates or targeting?
LinkedIn publishes these details when an ad was shown in the European Union. Add a European country to your search (for example &countries=FR) to get them on every row.
What is the difference between advertiserName and adPaidBy?
advertiserName is the company or member whose name appears on the ad. adPaidBy is the entity that paid for it. They often differ for agencies and for ads published by employees.
Which ad formats are supported?
The formats shown in the LinkedIn Ad Library, including single image, video, carousel, document, article and sponsored message ads.
Can I search by company, keyword, country or date?
Yes. Apply the filters in the LinkedIn Ad Library, then paste the URL. See the search URL examples above.
What does "Decode shortened URLs" do?
Many LinkedIn ads use lnkd.in or bit.ly links. With this option on, adLinkUrl contains the real landing page, and rawUrl keeps the original link.
Can I monitor a competitor's LinkedIn ads every day?
Yes. Create a schedule with the competitor's search URL. Each run is saved, so you can compare the ads from one day to the next.
What happens if LinkedIn blocks a page during a run?
The run continues. The ads already found are saved, and the run message tells you that the result is partial.
Is it legal to scrape LinkedIn ads?
The Actor only collects ads that LinkedIn publishes in its public Ad Library. You are responsible for how you use the data, including compliance with LinkedIn's terms and with data protection law such as GDPR, because some ads are published by individual members. If in doubt, ask a legal professional. See also Is web scraping legal?.
I need another feature or found a bug.
Open an issue in the Issues tab: we read every one and answer quickly. If this Actor saves you time, a short review helps other people find it.