LinkedIn Ads Library Scraper
Pricing
from $0.69 / 1,000 linkedin ad (without details)s
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
Maintained by CommunityActor 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 | ||
|
Facebook & Instagram ads, EU reach |
Search, YouTube & Shopping ads |
Top Ads from TikTok Creative Center |
|
You are here |
Bing ads in the EU & EEA |
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?
| Field | Description |
|---|---|
adId, adUrl | Ad Library id and ad page URL |
advertiserName, advertiserUrl, advertiserId, advertiserLogo | The company page that ran the ad |
paidBy | The entity that paid for the ad (often an agency) |
format, adType, creativeType | Ad format (e.g. SINGLE_IMAGE), LinkedIn's label ("Single Image Ad") and its internal creative type |
headline, body, description | Headline, full ad copy and image description |
clickUrl, ctas | Landing page URL (when the ad links out) and call-to-action buttons |
imageUrl, imageUrls | Ad images |
videoUrl, videoPosterUrl | Video file (highest bitrate) and cover image |
carouselCards | Title and image of each carousel card |
document | Document ad title, preview pages and cover images |
event, article, job | Event name, time, organizer and location; article title and newsletter; job title, company and location |
message | Sender name and photo of message ads (InMail / conversation) |
availability | First and last day the ad ran |
impressions | Total impressions range (e.g. 100k-150k, <1k, >1M) |
impressionsPerCountry | Share of impressions per country |
targeting | Targeted languages and locations (and excluded locations) |
targetingParameters | Whether audience, demographic, company, education, job and interest targeting was used or excluded |
hashtags | Hashtags in the ad copy |
How to scrape the LinkedIn Ad Library
- Open the LinkedIn Ad Library and search by advertiser, keyword or payer. Set countries and dates if you like.
- Copy the URL of the results page, for example
https://www.linkedin.com/ad-library/search?accountOwner=apify&countries=US&dateOption=last-30-days. - Open LinkedIn Ads Library Scraper in Apify Console and sign in (or create a free account).
- Paste the URL into Start URLs. Add more search URLs, ad URLs or company pages if you need them.
- Set Results limit (ads per URL). Leave Skip details off to get reach, targeting, run dates and full ad copy.
- 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.
| Event | Free | Bronze | Silver | Gold |
|---|---|---|---|---|
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
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
startUrls | URL[] | Yes | — | Ad Library search URLs, ad detail URLs or LinkedIn company URLs |
resultsLimit | integer | No | all | Maximum ads per start URL |
skipDetails | boolean | No | false | Read search results only (faster and cheaper, fewer fields) |
concurrency | integer | No | 8 | Ad 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 ApifyClientclient = 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
- 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.
- The actor pages through the results (24 ads per page) and removes duplicates across URLs.
- Unless Skip details is on, it opens each ad's page for the full copy, media, run dates, impressions and targeting.
- 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.
Is it legal to scrape the LinkedIn Ad Library?
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
| Actor | What it does |
|---|---|
| Meta | Facebook Ads Library Scraper | Facebook and Instagram ads from the Meta Ad Library |
| Google Ads Transparency Center Scraper | Ads from the Google Ads Transparency Center by domain, keyword or advertiser |
| TikTok Top Ads Scraper | Top-performing TikTok ads from TikTok Creative Center |
| LinkedIn Company Scraper Bulk | LinkedIn company profiles in bulk |
| LinkedIn Jobs Scraper | LinkedIn job postings with salaries and details |
| LinkedIn B2B Phone Number Scraper | Phone numbers and business emails from public LinkedIn pages |