Skip to content
ScrapeField

Search LinkedIn's Ad Library

Search the ads LinkedIn shows in its public Ad Library, by advertiser, by words in the ad or by company id, optionally by country and date: each ad's advertiser, format, headline, text, image or video, call to action, where it leads, when it ran, its impressions range and its targeting, about 25 a page. Use this to watch what a competitor advertises.

3credits
GEThttps://api.scrapefield.com/v1/linkedin/ads
Try itno key needed3 credits on a real call · 0 here
https://api.scrapefield.com/v1/linkedin/ads?advertiser=Ferrari

In your code

const params = new URLSearchParams({
  "advertiser": "Ferrari"
});

const res = await fetch(`https://api.scrapefield.com/v1/linkedin/ads?${params}`, {
  headers: { Authorization: `Bearer ${process.env.SCRAPEFIELD_KEY}` },
});

const { data, meta } = await res.json();
console.log(data, meta.credits_charged);

Parameters

ParameterWhat it does
advertiser
string · one of the search ids
The advertiser's name, as the library searches it. It matches loosely: a person whose name contains it can appear.
company_id
string · one of the search ids
LinkedIn's numeric id for the company, company_id in linkedin/company: that company's ads only.
query
string · one of the search ids
Words in the ad.
countries
string
Only ads shown in these countries: two-letter codes, comma-separated, e.g. US,GB.
start_date
string
Only ads shown on or after this day, YYYY-MM-DD, within the last year. With end_date.
end_date
string
Only ads shown on or before this day, YYYY-MM-DD, before today. With start_date.
cursor
string
The meta.next_cursor from the previous page. Omit for the first page.
fresh
boolean
Skip the cache and fetch now. Charged normally. Not available on trial credits — buy any pack to unlock it.
default false

Response

Returns an array of linkedin_ad. This is the demo’s answer, the one the playground above returns, in full rather than abbreviated — including the fields that come back null, because a field is null when the platform does not show it and you should know which ones those are before you build on them. A call with your key returns the account you ask for.

{
  "data": [
    {
      "id": "742463016",
      "url": "https://www.linkedin.com/ad-library/detail/742463016",
      "advertiser": {
        "name": "Blue Door Coffee",
        "url": "https://www.linkedin.com/company/bluedoorcoffee/"
      },
      "format": "Single Image Ad",
      "headline": "The 2026 report on analytics teams",
      "text": "Fewer moving parts, fewer pages at 3 am.",
      "image_url": "https://cdn.example/li/ad/8KY-zEZAWTkmB8.jpg",
      "video_url": null,
      "carousel_image_urls": [],
      "call_to_action": "Sign up",
      "destination_url": "https://bluedoorcoffee.example/campaign",
      "first_shown": "2026-01-01T01:47:37.000Z",
      "last_shown": "2026-02-23T01:47:37.000Z",
      "impressions": "5k-10k",
      "impressions_by_country": [],
      "targeting": {
        "language": "English",
        "location": "Germany, France"
      }
    },
    {
      "id": "853921648",
      "url": "https://www.linkedin.com/ad-library/detail/853921648",
      "advertiser": {
        "name": "Blue Door Coffee",
        "url": "https://www.linkedin.com/company/bluedoorcoffee/"
      },
      "format": "Document Ad",
      "headline": "Join our engineering team",
      "text": "We are hiring in Lisbon and Berlin.",
      "image_url": null,
      "video_url": null,
      "carousel_image_urls": [],
      "call_to_action": "Download",
      "destination_url": "https://bluedoorcoffee.example/campaign",
      "first_shown": "2026-03-04T08:18:08.000Z",
      "last_shown": "2026-03-21T08:18:08.000Z",
      "impressions": "10k-50k",
      "impressions_by_country": [],
      "targeting": {
        "language": "English",
        "location": "Europe"
      }
    }
  ],
  "meta": {
    "request_id": "req_7f3ac1e94b2d40f8a1c6e5d2",
    "credits_charged": 3,
    "credits_remaining": 74218,
    "cached": false,
    "fetched_at": "2026-09-20T09:12:03Z",
    "next_cursor": "eyJwIjoxLCJzIjoiYTNmOSJ9"
  }
}

Fields of linkedin_ad

An ad from LinkedIn's Ad Library. Named after the words LinkedIn prints, since LinkedIn has no official data API.

FieldWhat it is
id
string
The Ad Library's id for the ad.
url
URL
The ad in LinkedIn's Ad Library.
advertiser
object
Who paid for the ad.
advertiser.name
string · or null
The advertiser's name. null where the source does not give it.
advertiser.url
URL · or null
Their company page, or a person's profile for an ad a person runs.
format
string · or null
As the library names it, e.g. "Single Image Ad".
headline
string · or null
The ad's headline.
text
string · or null
The ad's text.
image_url
URL · or null
The ad's image.
video_url
URL · or null
The ad's video.
carousel_image_urls
array of URLs
A carousel's images, in order.
call_to_action
string · or null
The button, e.g. "Learn more".
destination_url
URL · or null
Where the ad leads.
first_shown
time, ISO 8601 UTC · or null
When it was first shown, as the library dates it.
last_shown
time, ISO 8601 UTC · or null
When it was last shown, as the library dates it.
impressions
string · or null
The range the library shows, e.g. "1k-5k" or "<1k".
impressions_by_country
array of objects
Where the ad was seen, as linkedin/ad gives it. Empty in a search.
impressions_by_country[].country
string
As the library names it.
impressions_by_country[].share
string · or null
The share it shows, e.g. "61%" or "<1%".
targeting
object
Whom the ad was aimed at, as the library shows it.
targeting.language
string · or null
As the library prints it.
targeting.location
string · or null
As the library prints it.

What it costs

3 credits per successful call, whether we fetch it or serve it from cache — you pay for the answer, not for how we produced it. Responses are cached for 1 day and a cached one tells you when the data was actually fetched. A call we fail costs 0 and is refunded automatically.

On the smallest pack that is $2.34 per 1,000 calls; on the largest, $1.32. The full table.

Questions

How much does the LinkedIn Ad Library API cost?

3 credits a call: $2.34 per 1,000 calls on the smallest pack and $1.32 on the largest. A call that fails costs nothing, and the refund is automatic. A cached answer costs the same as a fresh one. Credits are bought in packs and never expire; there is no subscription.

Do I need a LinkedIn account, a login or cookies?

No. You need a key from us and nothing from LinkedIn. We never take a customer's login, cookies or session, at any price, and no account of yours is ever at risk.

Can I try it without signing up?

Yes. Add demo=true and leave the key out, or press Send request in the playground on this page. The demo answers with a real answer about Ferrari, captured once a week, in exactly the shape a live call returns, whatever you ask, and charges nothing.

How fresh is the data?

An answer is kept for up to 1 day, and a cached one says when it was fetched, in meta.fetched_at. Add fresh=true to fetch it again now, at the same price; it needs any purchase, not the trial.

What does it return?

A list of linkedin_ad objects. Its fields are named after the words LinkedIn prints, since LinkedIn has no official data API. A field is null when LinkedIn does not show it, never missing. Every field is described on this page.

How do I get more than one page?

Pass meta.next_cursor back as cursor, and stop when it is null. Each page is a call, priced the same. A cursor lasts as long as the answer it belongs to is cached.

Can an AI agent call it?

Yes: it is the MCP tool search_linkedin_ads on our MCP server, with the same parameters, answer and price. Without a key, the tool answers from the demo.