LinkedIn Ad Library: scrapers and the official API, compared
Advertiser pages and public ad creative in LinkedIn's ad library.
Short answer
For most LinkedIn Ad Library jobs, start with LinkedIn Ad Library Keyword & Advertiser Scraper: it covers 3 of 5 core fields (advertiser, started at, country) at $0.99 per 1,000 results on Apify's Free plan. The top published score for LinkedIn Ad Library goes to LinkedIn Ad Library Scraper by sourabhbgp (79 of 100), a Store tool from another publisher, listed for reference.
From published Store listings, output schemas and the official documentation. Checked 2026-11-12. How the ranking works.LinkedIn Ad Library Keyword & Advertiser Scraper: inputs, code and costOpen in Apify Store
Route map
Each line is one way to get LinkedIn Ad Library data; each stop is a field you probably need. Green lines are catalogue Actors, ranked by the published formula.
- 1 LinkedIn Ad Library Keyword & Advertiser Scraper 19 output fields, pay per event 3 of 5 core fields
$0.99 / 1K - + 8 other Store tools, combined Reference only 4 of 5 core fields
from $0.50 / 1K - API No public ad-library API No open API fields not compared
Stops are fields. A ring means the field is in that route's published output schema; no ring means the line passes without it. Bold labels are the core fields for this website, the rest are fields that differ between routes. A white capsule means every data line stops there. The red line is the official API; its field coverage is not compared. A crossed red line means there is no open official API.
Catalogue Actors for LinkedIn Ad Library
LinkedIn Ad Library Keyword & Advertiser Scraper
Search the public LinkedIn Ad Library by keyword, advertiser, country, or date range, and get headline, body copy, advertiser info, media URLs,…
Field matrix: who returns what
Every tool with a published output schema, against the 5 fields most LinkedIn Ad Library jobs need. A dot means the field name appears in the schema; rows can still leave it empty.
| Tool | advertiser | ad copy | creative url | started at | country | Fields |
|---|---|---|---|---|---|---|
| LinkedIn Ad Library Keyword & Advertiser Scraper | ● | – | – | ● | ● | 3/5 |
| LinkedIn Ad Library ScraperReference only, by sourabhbgp | ● | – | – | ● | – | 2/5 |
| LinkedIn Ad Library ScraperReference only, by jaybird | ● | – | – | – | ● | 2/5 |
| LinkedIn Ad Library Scraper (LinkedIn Ads Library)Reference only, by pulsedata | ● | – | ● | – | ● | 3/5 |
| LinkedIn Ad Library ScraperReference only, by jy-labs | ● | – | ● | – | – | 2/5 |
| LinkedIn Ad Library Scraper: LinkedIn Ads, No LoginReference only, by alexmorain | ● | – | ● | – | – | 2/5 |
| LinkedIn Ad Library ScraperReference only, by scrapesage | ● | – | – | – | – | 1/5 |
| LinkedIn Ad Library Scraper [NO COOKIES]Reference only, by unseenuser | ● | – | ● | ● | – | 3/5 |
| LinkedIn Ad Library ScraperReference only, by ivanvs | – | – | ● | – | – | 1/5 |
| Tools returning it | 8 | 0 | 5 | 3 | 3 |
Field dictionary: the exact keys
The same core field has a different key in each Actor's output. Map these before you merge datasets; a dash means the published schema has no matching key. Need a field that is not listed here, such as email? Search every LinkedIn Ad Library Actor by field.
| Core field | LinkedIn Ad Library Keyword… |
|---|---|
| advertiser | advertiser_name |
| ad copy | – |
| creative url | – |
| started at | start_date |
| country | country |
Download this comparison: CSV · JSON (every tool with a published schema, matching keys per core field, price and score).
All 9 tools, scored
Catalogue Actors link to their detail pages; the score (0 to 100) is the published formula, identical for every tool. Other Store tools follow in their own table, for reference. Price is the published primary-result rate per 1,000 (the Free-plan rate where the price is tiered; higher Apify plans pay less); start events and platform usage are excluded.
| Sample fields | ||||||
|---|---|---|---|---|---|---|
| 73 | LinkedIn Ad Library Keyword & Advertiser Scraper Catalogue Actor, pay per event | advertiser_name, start_date, country | 19 | $0.99 | 19 runs, too few to rate | Oct 2026 |
Other Store tools, for reference
Scored with the same published formula and listed for comparison only; this site does not link or recommend them.
| Sample fields | ||||||
|---|---|---|---|---|---|---|
| 79 | LinkedIn Ad Library Scraper Reference only, by sourabhbgp | advertiserName, adStartDate, adId | 31 | $0.50 | 100% of 138 runs | Jul 2026 |
| 78 | LinkedIn Ad Library Scraper Reference only, by jaybird | advertiserName, countries, noAdsFound | 29 | $0.50 | 91% of 227 runs | Nov 2026 |
| 77 | LinkedIn Ad Library Scraper (LinkedIn Ads Library) Reference only, by pulsedata | advertiserName, url, topCountry | 10 | $2.00 | 100% of 174 runs | Nov 2026 |
| 77 | LinkedIn Ad Library Scraper Reference only, by jy-labs | advertiser, adId, matches | 19 | $1.00 | 97% of 454 runs | Nov 2026 |
| 77 | LinkedIn Ad Library Scraper: LinkedIn Ads, No Login Reference only, by alexmorain | advertiser, detail_url, ad_id | 30 | $1.00 | 91% of 2,110 runs | Nov 2026 |
| 68 | LinkedIn Ad Library Scraper Reference only, by scrapesage | advertiserName, creativeTypeLabel, headline | 16 | $2.00 | 97% of 239 runs | Nov 2026 |
| 67 | LinkedIn Ad Library Scraper [NO COOKIES] Reference only, by unseenuser | advertiser, url, startDate | 53 | $5.00 | 100% of 1,965 runs | Nov 2026 |
| 65 | LinkedIn Ad Library Scraper Reference only, by ivanvs | url, id, advertiser.name | 4 | $3.00 | 100% of 7,569 runs | Oct 2026 |
What to check before you choose
Teams use LinkedIn Ad Library records to compare advertiser messaging, track campaign themes and collect creative references. Keeping ad copy alongside advertiser names and campaign dates makes those records easier to compare across searches. Advertiser searches suit research into known companies, while keyword searches help investigate a topic across advertisers. Choose a route that returns creative links for a visual archive or targeting details for audience research.
Checklist
- Check how advertiser_name, body_text and start_date map to your destination columns; headline alone may not capture the copy you need.
- For creative collection, look for image_urls and video_urls, then check whether the returned links lead to usable media.
- For geographic analysis, distinguish country from impressions_by_country and targeting_location_included; these describe different aspects of an ad.
Where the data is incomplete
The published schema lists body_text_full, targeting_parameters and media links. Check returned records before making any of these mandatory in a downstream workflow.
Likewise, start_date and end_date need clear interpretation before you use them to describe a campaign's full history.
Official API route
No public ad-library API
LinkedIn publishes a public ad library for transparency, but no open API for querying it is documented for general use.
Price. Not applicable.
Limits. Public pages remain subject to LinkedIn's terms and access controls.
Terms and personal data
Review LinkedIn's user agreement and access controls, and use transparency records for research with attribution. This is general information, not legal advice.
Read LinkedIn Ad Library's terms. Keep to public data, do not bypass logins or access controls, and check whether personal data is involved before you collect it. The can-I-scrape checklist walks through it.
How to start
- Use a narrow advertiser or keyword query where supported, following the listing's input instructions.
- Review the resulting dataset for advertiser identity, complete copy, campaign dates and usable creative links before expanding the search.
Call LinkedIn Ad Library Keyword & Advertiser Scraper from code
The example input uses the Actor's published defaults; set your own LinkedIn Ad Library query before you run it. You need an Apify API token.
Python
from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run_input = {
"mode": "search",
"searchTerms": [],
"advertisers": [],
"companyIds": [
"1035"
],
"companyUrls": [],
"payer": [],
"advertiserMatch": "startsWith",
"countries": [],
"dateOption": "last-30-days",
"sortOrder": "newest",
"impressionsMinUnit": "none",
"impressionsMaxUnit": "none",
"targetingIncluded": [],
"targetingExcluded": [],
"includeDetails": True,
"decodeShortLinks": False,
"adIds": [],
"directUrls": [],
"maxItems": 3
}
run = client.actor("nimbryxo-studio/linkedin-ad-library-keyword-and-advertiser-scraper").call(run_input=run_input)
if run is None:
raise RuntimeError("The Actor run was not found.")
for item in client.dataset(run.default_dataset_id).iterate_items():
print(item) pip install apify-client
JavaScript
import { ApifyClient } from "apify-client";
const client = new ApifyClient({ token: "<YOUR_APIFY_TOKEN>" });
const input = {
"mode": "search",
"searchTerms": [],
"advertisers": [],
"companyIds": [
"1035"
],
"companyUrls": [],
"payer": [],
"advertiserMatch": "startsWith",
"countries": [],
"dateOption": "last-30-days",
"sortOrder": "newest",
"impressionsMinUnit": "none",
"impressionsMaxUnit": "none",
"targetingIncluded": [],
"targetingExcluded": [],
"includeDetails": true,
"decodeShortLinks": false,
"adIds": [],
"directUrls": [],
"maxItems": 3
};
const run = await client.actor("nimbryxo-studio/linkedin-ad-library-keyword-and-advertiser-scraper").call(input);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items); npm install apify-client
cURL
curl -X POST "https://api.apify.com/v2/actors/nimbryxo-studio~linkedin-ad-library-keyword-and-advertiser-scraper/run-sync-get-dataset-items" -H "Authorization: Bearer $APIFY_TOKEN" -H "Content-Type: application/json" -d '{"mode":"search","searchTerms":[],"advertisers":[],"companyIds":["1035"],"companyUrls":[],"payer":[],"advertiserMatch":"startsWith","countries":[],"dateOption":"last-30-days","sortOrder":"newest","impressionsMinUnit":"none","impressionsMaxUnit":"none","targetingIncluded":[],"targetingExcluded":[],"includeDetails":true,"decodeShortLinks":false,"adIds":[],"directUrls":[],"maxItems":3}' Waits for the run and returns the dataset items (runs over 300 seconds return HTTP 408; start an async run instead).
MCP (AI agents)
{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com?tools=nimbryxo-studio/linkedin-ad-library-keyword-and-advertiser-scraper",
"headers": {
"Authorization": "Bearer <YOUR_APIFY_TOKEN>"
}
}
}
} Adds this Actor as a tool in an MCP client that takes a remote server URL (Cursor, VS Code, Claude Code) through Apify's hosted MCP server. OAuth sign-in also works without the header. Clients that only start local servers can wrap the URL with npx mcp-remote.
Questions people ask
Is there an official API for searching LinkedIn Ad Library?
No open ad-library query API is documented for general use. Access through a scraping tool remains subject to LinkedIn's terms and access controls.
Which columns should I use for ad copy?
The published schema includes headline, body_text and body_text_full. Check returned records to establish which column captures the text needed for your analysis.
Can I collect images and videos?
The published schema includes image_urls, video_urls and video_poster_url. Verify that the returned links contain the media you need before building a creative archive.
Can country tell me who an ad targeted?
Do not treat country alone as a complete targeting description. Compare it with targeting_location_included, targeting_language and targeting_parameters, while using impressions_by_country separately for geographic impression analysis.
What is the cheapest catalogue Actor for LinkedIn Ad Library data?
LinkedIn Ad Library Keyword & Advertiser Scraper lists $0.99 per 1,000 results (pay per event), with 19 fields in its published output schema. Start events and platform usage are billed separately. Checked 2026-11-12.
Which LinkedIn Ad Library scraper returns the most core fields?
LinkedIn Ad Library Keyword & Advertiser Scraper covers 3 of the 5 core LinkedIn Ad Library fields this page tracks (advertiser, ad copy, creative url, started at, country), based on its published output schema.
Does LinkedIn Ad Library have an official API?
No open API: LinkedIn publishes a public ad library for transparency, but no open API for querying it is documented for general use. Not applicable.
Is it legal to scrape LinkedIn Ad Library?
It depends on what you collect and how. Review LinkedIn's user agreement and access controls, and use transparency records for research with attribution. Read LinkedIn Ad Library's terms (https://www.linkedin.com/legal/user-agreement) before you collect, and check whether personal data is involved. This is general information, not legal advice.
More on LinkedIn Ad Library
Related websites
- Meta Ad Library2 Actors
- Google Ads Transparency Center3 Actors
- LinkedIn19 Actors
Sources
- LinkedIn Ad Library Keyword & Advertiser Scraper on Apify Store
- No public ad-library API documentation
- LinkedIn Ad Library terms
Cite this page
Scraper Finder. "How to get LinkedIn Ad Library data." https://scraperfinder.com/sites/linkedin-ad-library/ (data checked 2026-11-12).
Highest-scoring catalogue Actor
LinkedIn Ad Library Keyword & Advertiser Scraper: 3 of 5 core fields, $0.99 per 1,000 results, score 73. The highest score overall is 79 (LinkedIn Ad Library Scraper, a Store tool from another publisher); both are in the table above.