Linkedin Ads Scraper avatar

Linkedin Ads Scraper

Pricing

from $0.50 / 1,000 results

Go to Apify Store
Linkedin Ads Scraper

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

Data Xplorer

Maintained by Community

Actor stats

7

Bookmarked

66

Total users

2

Monthly active users

9 days ago

Last modified

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/hubspot and 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:

RunTime
20 ads (keyword search)about 9 seconds
100 ads (one advertiser)about 25 seconds
200 adsabout 1 minute
500 adsabout 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

  1. Open the LinkedIn Ad Library and search for a company or a keyword. Add a country or a date filter if you want.
  2. Copy the URL of the results page.
  3. On this page, click Try for free and paste the URL in LinkedIn Ads Search URL.
  4. Set the Maximum number of ads.
  5. 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.

AdsCost
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

FieldTypeDefaultDescription
LinkedIn Ads Search URL (searchUrl)textrequiredA LinkedIn Ad Library search URL, or a LinkedIn company page URL
Maximum number of ads (maxItems)number20How many ads to collect
Decode shortened URLs (decodeUrls)yes/nonoFollow 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 wantURL to paste
All ads from one advertiserhttps://www.linkedin.com/ad-library/search?accountOwner=hubspot
Ads that mention a keywordhttps://www.linkedin.com/ad-library/search?keyword=energy
One advertiser, one country, last 30 dayshttps://www.linkedin.com/ad-library/search?accountOwner=hubspot&countries=FR&dateOption=last-30-days
A keyword in one countryhttps://www.linkedin.com/ad-library/search?keyword=crm&countries=DE
A company pagehttps://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?

FieldDescription
idUnique ad identifier
adUrlLink to the ad in the LinkedIn Ad Library
advertiserNameCompany or member that runs the ad
advertiserLogoLogo or profile picture of the advertiser
adPaidByEntity that paid for the ad
adTypeFormat: Single Image Ad, Video Ad, Carousel, Document, Article, Sponsored Message and more
adDescriptionFull text of the ad
adHashtagsHashtags found in the text
adImageCreative: image, video poster or document cover
adLinkUrlLanding page of the ad (decoded when Decode shortened URLs is on)
rawUrlOriginal link as written in the ad
Publication DateStart and end dates, as MM/DD/YYYY
Publication TimestampsThe same dates as Unix timestamps
adTotalImpressionsTotal impressions, as a range such as 5k-10k
adImpressionsCountryFor each country: share of impressions and an estimated range
adTargetingAudienceTargeting: 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 ApifyClient
client = 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 accountOwner for a company and keyword for a topic.
  • Add countries with a European country to get impressions and targeting on every ad.
  • Keep maxItems modest for a quick answer, and turn on decodeUrls only 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:

🔗 Other scrapers you may like

❓ 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.

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.