LinkedIn Ads Library Scraper avatar

LinkedIn Ads Library Scraper

Pricing

from $0.69 / 1,000 linkedin ad (without details)s

Go to Apify Store
LinkedIn Ads Library Scraper

LinkedIn Ads Library Scraper

Scrape the LinkedIn Ad Library: ad copy, headline, images, videos, CTAs, landing page, advertiser, payer, run dates, impressions by country and targeting. Search URLs, ad URLs or company pages.

Pricing

from $0.69 / 1,000 linkedin ad (without details)s

Rating

0.0

(0)

Developer

ParseBird

ParseBird

Maintained by Community

Actor stats

1

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Categories

Share

LinkedIn Ads Library Scraper

LinkedIn Ads Library Scraper extracts ads from the LinkedIn Ad Library: full ad copy, headline, images, videos, CTAs, landing page, advertiser, the entity that paid for the ad, run dates, total impressions, impressions by country and targeting, as clean JSON, CSV or Excel.

Paste any LinkedIn Ad Library search URL (advertiser, keyword, payer, country and date filters are kept), a single ad URL or a company page, and get every ad with its creative, landing page, reach and targeting across 12 ad formats, from single image and video to message, document and event ads.

ParseBird LinkedIn Suite   •  Companies, jobs, ads & B2B leads
LinkedIn Company Scraper Bulk
Company profiles in bulk, no cookies
LinkedIn Jobs Scraper
Job postings, salaries & details
LinkedIn B2B Phone Number Scraper
B2B phone numbers & emails
LinkedIn Ads Library Scraper
You are here

ParseBird Ad Library Suite   •  Competitor ads from 6 ad libraries
 Meta | Facebook Ads Library Scraper
Facebook & Instagram ads, EU reach
 Google Ads Transparency Center Scraper
Search, YouTube & Shopping ads
 TikTok Ads Scraper
Top Ads from TikTok Creative Center
 LinkedIn Ads Library Scraper
You are here
 Microsoft Ads Library Scraper
Bing ads in the EU & EEA
 Snapchat Ads Library Scraper
Snap Ads Gallery, EU & Turkey

Copy to your AI assistant

Copy this block into ChatGPT, Claude, Cursor, or any LLM to start using this actor.

Apify Actor: parsebird/linkedin-ads-library-scraper. Scrapes ads from the LinkedIn Ad Library (linkedin.com/ad-library). Call via ApifyClient: client.actor("parsebird/linkedin-ads-library-scraper").call(run_input={"startUrls": [{"url": "https://www.linkedin.com/ad-library/search?accountOwner=apify&countries=US&dateOption=last-30-days"}], "resultsLimit": 100, "skipDetails": false}). Inputs: startUrls (required array of {url}: LinkedIn Ad Library search URLs with any filters such as accountOwner, keyword, payer, countries, dateOption=last-30-days|current-month|current-year|last-year|custom-date-range with startdate/enddate; single ad URLs https://www.linkedin.com/ad-library/detail/<id>; or company pages https://www.linkedin.com/company/<slug or id>/, which return all of the company's ads without country or date filters), resultsLimit (integer, max ads per start URL, empty = all), skipDetails (boolean, default false: true reads search results only, faster and cheaper, without run dates, impressions, targeting, paidBy, advertiserUrl or video files, ad copy cut to about 100 characters), concurrency (integer 1-32, default 8). Output: one record per ad with adId, adUrl, advertiserName, advertiserUrl, advertiserId, advertiserLogo, paidBy, format (SINGLE_IMAGE | VIDEO | CAROUSEL | DOCUMENT | EVENT | ARTICLE | MESSAGE | TEXT | SPOTLIGHT | FOLLOW_COMPANY | JOBS | JOB_POSTING), adType, creativeType, availability {start, end}, impressions (range such as "100k-150k"), impressionsPerCountry [{country, impressions}], targeting {language, location, ...}, targetingParameters [{parameter, targeted, excluded}], headline, body, description, clickUrl, ctas, imageUrl, imageUrls, videoUrl, videoPosterUrl, carouselCards, document, event, article, message, job, hashtags, hasDetails, startUrl, scrapedAt. Pricing: pay per ad, one event per ad: "ad-with-details" or "ad-without-details". Full API spec: https://apify.com/parsebird/linkedin-ads-library-scraper/api. Get your token: https://console.apify.com/settings/integrations.

What is LinkedIn Ads Library Scraper?

LinkedIn Ads Library Scraper turns the public LinkedIn Ad Library into a structured dataset. The Ad Library lists the ads companies run on LinkedIn. On October 18, 2026 it showed 26,224 ads for Microsoft, 30,567 for SAP and 2,242 for NVIDIA.

The easiest way to try it: search for an advertiser in the Ad Library, set the country and date filters, copy the URL from your browser, paste it into Start URLs and click Start. It works as a LinkedIn Ad Library API alternative: no LinkedIn account, cookies or API key needed.

What can LinkedIn Ads Library Scraper do?

  • 🔎 Any Ad Library search. Advertiser, keyword, payer, countries, date range and impressions filters are read straight from the URL.
  • 🏢 Company pages. Paste a LinkedIn company URL and get all of that company's ads (matched by company id, not by name).
  • 🔗 Single ads. Paste ad detail URLs to scrape specific ads.
  • 🎨 12 ad formats. Single image, video, carousel, document, event, article, message (InMail and conversation), text, spotlight, follow company, jobs and job posting ads, each with its own content fields.
  • 📊 Reach and targeting. Run dates, total impressions, impressions by country, targeted languages and locations, and which targeting parameters were used or excluded, when LinkedIn shows them.
  • ⚡ Skip details mode. Read only the search results for much faster, cheaper runs.
  • 📅 Scheduling. Run daily or weekly with Apify Schedules to track competitors' new LinkedIn ads.
  • 🔌 API and integrations. Use the Apify API, or send results to Google Sheets, Zapier, Make, Slack or webhooks with Apify integrations. Export as JSON, CSV, Excel, XML or HTML.

What data can you extract from the LinkedIn Ad Library?

FieldDescription
adId, adUrlAd Library id and ad page URL
advertiserName, advertiserUrl, advertiserId, advertiserLogoThe company page that ran the ad
paidByThe entity that paid for the ad (often an agency)
format, adType, creativeTypeAd format (e.g. SINGLE_IMAGE), LinkedIn's label ("Single Image Ad") and its internal creative type
headline, body, descriptionHeadline, full ad copy and image description
clickUrl, ctasLanding page URL (when the ad links out) and call-to-action buttons
imageUrl, imageUrlsAd images
videoUrl, videoPosterUrlVideo file (highest bitrate) and cover image
carouselCardsTitle and image of each carousel card
documentDocument ad title, preview pages and cover images
event, article, jobEvent name, time, organizer and location; article title and newsletter; job title, company and location
messageSender name and photo of message ads (InMail / conversation)
availabilityFirst and last day the ad ran
impressionsTotal impressions range (e.g. 100k-150k, <1k, >1M)
impressionsPerCountryShare of impressions per country
targetingTargeted languages and locations (and excluded locations)
targetingParametersWhether audience, demographic, company, education, job and interest targeting was used or excluded
hashtagsHashtags in the ad copy

How to scrape the LinkedIn Ad Library

  1. Open the LinkedIn Ad Library and search by advertiser, keyword or payer. Set countries and dates if you like.
  2. Copy the URL of the results page, for example https://www.linkedin.com/ad-library/search?accountOwner=apify&countries=US&dateOption=last-30-days.
  3. Open LinkedIn Ads Library Scraper in Apify Console and sign in (or create a free account).
  4. Paste the URL into Start URLs. Add more search URLs, ad URLs or company pages if you need them.
  5. Set Results limit (ads per URL). Leave Skip details off to get reach, targeting, run dates and full ad copy.
  6. Click Start, then download the ads from the Output tab as JSON, CSV or Excel, or read them through the API.

How much does it cost to scrape the LinkedIn Ad Library?

LinkedIn Ads Library Scraper uses pay-per-event pricing: each ad is charged once, with or without details. Compute and proxy costs are included in the event price; there are no other usage charges for the run.

EventFreeBronzeSilverGold
ad-without-details (Skip details on)$0.00099$0.00089$0.00079$0.00069
ad-with-details (full ad page)$0.00299$0.00249$0.00199$0.00149
Per 1,000 ads without details$0.99$0.89$0.79$0.69
Per 1,000 ads with details$2.99$2.49$1.99$1.49

For example, 1,000 ads with full details cost $2.99 on the Free plan, or $0.99 with Skip details on. If an ad's page can't be loaded, that ad is saved from the search results and charged at the lower price. Set a maximum cost per run in Apify Console and the actor stops when it's reached.

Input parameters

ParameterTypeRequiredDefaultDescription
startUrlsURL[]Yes—Ad Library search URLs, ad detail URLs or LinkedIn company URLs
resultsLimitintegerNoallMaximum ads per start URL
skipDetailsbooleanNofalseRead search results only (faster and cheaper, fewer fields)
concurrencyintegerNo8Ad pages loaded at the same time (1-32)
{
"startUrls": [
{ "url": "https://www.linkedin.com/ad-library/search?accountOwner=apify&countries=US&dateOption=last-30-days" },
{ "url": "https://www.linkedin.com/company/nvidia/" },
{ "url": "https://www.linkedin.com/ad-library/detail/1600269964" }
],
"resultsLimit": 100,
"skipDetails": false
}

Output example

One single image ad with details (lists shortened):

{
"adId": "1600269964",
"adUrl": "https://www.linkedin.com/ad-library/detail/1600269964",
"advertiserName": "Microsoft",
"advertiserUrl": "https://www.linkedin.com/company/1035",
"advertiserId": "1035",
"advertiserLogo": "https://media.licdn.com/dms/image/v2/D560BAQH32RJQCl3dDQ/company-logo_100_100/B56ZYQ0mrGGoAU-/0/1744038948046/microsoft_logo?e=1793836800&v=beta&t=AL2OIJZ6o8r3RRAi17N7JqUObdnVb6ixUcvRMZbLb2k",
"paidBy": "ZENITH UK (MEDIA) LIMITED",
"format": "SINGLE_IMAGE",
"adType": "Single Image Ad",
"creativeType": "SPONSORED_STATUS_UPDATE",
"availability": { "start": "2026-10-14", "end": "2026-10-18" },
"impressions": "<1k",
"impressionsPerCountry": [
{ "country": "Netherlands", "impressions": "91%" },
{ "country": "Belgium", "impressions": "8%" },
{ "country": "Luxembourg", "impressions": "<1%" }
],
"targeting": { "language": "Nederlands", "location": "Benelux" },
"targetingParameters": [
{ "parameter": "Audience", "targeted": true, "excluded": false },
{ "parameter": "Company", "targeted": false, "excluded": true },
{ "parameter": "Job", "targeted": true, "excluded": false }
],
"headline": "Beveilig, beheer en schaal AI op",
"body": "Van pilot naar productie: kom naar de Microsoft Frontier Tour in Utrecht voor een dag over de architectuur, beveiliging en governance achter AI voor ondernemingen.\n\nEchte implementatiepatronen, lessen uit de praktijk en directe toegang tot Microsoft-experts.\n\n10 december 2026\nUtrecht, Nederland\n\nVraag deelname aan.",
"description": null,
"clickUrl": "https://aitour.microsoft.com/flow/microsoft/utrecht27/citylanding/page/cityhome?wt.mc_id=3084764_QSG_PD_SCL_675381_imga",
"ctas": ["Registreren"],
"imageUrl": "https://media.licdn.com/dms/image/v2/D4D10AQFkx_1c2JlL7w/image-shrink_1280/B4DaE1ppf5HoAc-/0/1791901473042/EMEA_FrontierTour_Utrecht_IMGajpg?e=2147483647&v=beta&t=ueLgAOg35AP1vSRYU1RoRmvaebXifY_yTWtKbRSEvRg",
"videoUrl": null,
"carouselCards": [],
"document": null,
"event": null,
"message": null,
"hashtags": [],
"hasDetails": true,
"startUrl": "https://www.linkedin.com/ad-library/search?accountOwner=microsoft",
"scrapedAt": "2026-10-18T07:59:35Z"
}

Format-specific fields (carouselCards, document, event, article, message, job, videoUrl) are filled for their formats and empty otherwise. Download the dataset in JSON, CSV, Excel, XML or HTML from the Output tab.

Use the LinkedIn Ads Library Scraper API

Start the actor and read its results from your own code with the Apify API clients. Find your token in Apify Console → Settings → Integrations.

Python (apify-client):

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("parsebird/linkedin-ads-library-scraper").call(run_input={
"startUrls": [{"url": "https://www.linkedin.com/ad-library/search?accountOwner=hubspot&countries=DE&dateOption=last-30-days"}],
"resultsLimit": 200,
})
for ad in client.dataset(run["defaultDatasetId"]).iterate_items():
print(ad["format"], ad["headline"], ad["impressions"], ad["clickUrl"])

JavaScript (apify-client):

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });
const run = await client.actor('parsebird/linkedin-ads-library-scraper').call({
startUrls: [{ url: 'https://www.linkedin.com/company/salesforce/' }],
resultsLimit: 500,
skipDetails: true,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((ad) => console.log(ad.advertiserName, ad.format, ad.body));

Use cases

  • Competitor research: see every LinkedIn ad a competitor runs, with copy, creative, CTA and landing page.
  • B2B ad inspiration: collect headlines, hooks and formats that companies in your market use.
  • Agency reporting: track which agencies (paidBy) run ads for which brands.
  • Reach analysis: compare impressions and country splits across ads and advertisers.
  • Targeting insight: see which languages, locations and targeting types advertisers choose.
  • Monitoring: schedule a run to catch new ads from the companies you follow.

How it works

  1. Each search URL is run as it is, with all its filters. Company URLs are turned into a search by the company's LinkedIn id.
  2. The actor pages through the results (24 ads per page) and removes duplicates across URLs.
  3. Unless Skip details is on, it opens each ad's page for the full copy, media, run dates, impressions and targeting.
  4. Ads are saved and charged as they come in. LinkedIn blocks datacenter IPs from the Ad Library, so the actor uses residential proxies; that cost is included in the price.

FAQ

Why do some ads have no impressions, run dates or targeting? LinkedIn shows impressions, the run period and targeting only for some ads. In our tests about a third of ads had them (172 of 500 across Microsoft and Salesforce); the rest show only the creative and the advertiser. The actor returns this data whenever the ad page has it.

What does Skip details change? With Skip details on, the actor reads only the search results. You get the format, advertiser name and logo, headline, image or video cover and the start of the ad copy (search results cut it at about 100 characters). Run dates, impressions, targeting, paidBy, advertiserUrl, landing page and video files are only on the ad page. In our tests on Apify, 1,000 ads without details took about 3.5 minutes, and 500 ads with details about 8 minutes.

Can I filter by country or date when I use a company URL? Not with the company URL itself. Instead, search for the company in the Ad Library, set the filters there and paste that search URL.

Why is clickUrl empty for some ads? Some ads don't link out from the Ad Library preview (for example message ads, or ads whose button LinkedIn shows without a link). The actor returns the landing page whenever the ad shows one.

Why do message ads contain %FIRSTNAME%? These are LinkedIn's personalization placeholders. The ad copy is returned exactly as the advertiser wrote it.

Can I schedule runs and connect them to other tools? Yes. Use Apify Schedules for recurring runs and integrations for Google Sheets, Slack, Zapier, Make, n8n or webhooks. Results are also available through the API.

Something doesn't work or a field is missing? Open an issue on the actor's Issues tab with the input you used, and we'll look into it.

This actor collects ad information that LinkedIn publishes in its public Ad Library. Message ads can show the sender's name and photo, which are personal data, so if you process them, make sure you have a lawful basis under the privacy laws that apply to you (for example the GDPR), and respect LinkedIn's terms of use. Scraping public data is generally lawful, but you are responsible for how you use it. Read more in Apify's blog post Is web scraping legal?, and ask a lawyer if you're unsure.

Other ad library and LinkedIn scrapers

ActorWhat it does
Meta | Facebook Ads Library ScraperFacebook and Instagram ads from the Meta Ad Library
Google Ads Transparency Center ScraperAds from the Google Ads Transparency Center by domain, keyword or advertiser
TikTok Top Ads ScraperTop-performing TikTok ads from TikTok Creative Center
LinkedIn Company Scraper BulkLinkedIn company profiles in bulk
LinkedIn Jobs ScraperLinkedIn job postings with salaries and details
LinkedIn B2B Phone Number ScraperPhone numbers and business emails from public LinkedIn pages