Get one ad from LinkedIn's Ad Library
Fetch one ad in full by its id or URL: what linkedin/ads gives, and where it was seen, country by country, with its targeting.
https://api.scrapefield.com/v1/linkedin/adhttps://api.scrapefield.com/v1/linkedin/ad?id=171897547In your code
const params = new URLSearchParams({
"id": "1572822563"
});
const res = await fetch(`https://api.scrapefield.com/v1/linkedin/ad?${params}`, {
headers: { Authorization: `Bearer ${process.env.SCRAPEFIELD_KEY}` },
});
const { data, meta } = await res.json();
console.log(data, meta.credits_charged);Parameters
| Parameter | What it does |
|---|---|
id | The Ad Library's id for the ad: id in linkedin/ads. |
url | The ad's page in the Ad Library: https://www.linkedin.com/ad-library/detail/<id>. |
fresh | Skip the cache and fetch now. Charged normally. Not available on trial credits — buy any pack to unlock it. default false |
Response
Returns one 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": "171897547",
"url": "https://www.linkedin.com/ad-library/detail/171897547",
"advertiser": {
"name": "Brightwater",
"url": "https://www.linkedin.com/company/brightwater/"
},
"format": "Video Ad",
"headline": "Join our engineering team",
"text": "We are hiring in Lisbon and Berlin.",
"image_url": null,
"video_url": "https://cdn.example/li/ad/PWtqp0SHWycUlN.mp4",
"carousel_image_urls": [],
"call_to_action": "Download",
"destination_url": "https://brightwater.example/campaign",
"first_shown": "2026-08-21T13:35:43.000Z",
"last_shown": "2026-09-20T00:00:00.000Z",
"impressions": "5k-10k",
"impressions_by_country": [
{
"country": "United States",
"share": "64%"
},
{
"country": "Germany",
"share": "21%"
},
{
"country": "Other",
"share": "15%"
}
],
"targeting": {
"language": "English",
"location": "United States"
}
},
"meta": {
"request_id": "req_7f3ac1e94b2d40f8a1c6e5d2",
"credits_charged": 7,
"credits_remaining": 74218,
"cached": false,
"fetched_at": "2026-09-20T09:12:03Z",
"next_cursor": null
}
}Fields of linkedin_ad
An ad from LinkedIn's Ad Library. Named after the words LinkedIn prints, since LinkedIn has no official data API.
| Field | What it is |
|---|---|
id | The Ad Library's id for the ad. |
url | The ad in LinkedIn's Ad Library. |
advertiser | Who paid for the ad. |
advertiser.name | The advertiser's name. null where the source does not give it. |
advertiser.url | Their company page, or a person's profile for an ad a person runs. |
format | As the library names it, e.g. "Single Image Ad". |
headline | The ad's headline. |
text | The ad's text. |
image_url | The ad's image. |
video_url | The ad's video. |
carousel_image_urls | A carousel's images, in order. |
call_to_action | The button, e.g. "Learn more". |
destination_url | Where the ad leads. |
first_shown | When it was first shown, as the library dates it. |
last_shown | When it was last shown, as the library dates it. |
impressions | The range the library shows, e.g. "1k-5k" or "<1k". |
impressions_by_country | Where the ad was seen, as linkedin/ad gives it. Empty in a search. |
impressions_by_country[].country | As the library names it. |
impressions_by_country[].share | The share it shows, e.g. "61%" or "<1%". |
targeting | Whom the ad was aimed at, as the library shows it. |
targeting.language | As the library prints it. |
targeting.location | As the library prints it. |
What it costs
7 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 $5.46 per 1,000 calls; on the largest, $3.08. The full table.
Questions
How much does the LinkedIn ad details API cost?
7 credits a call: $5.46 per 1,000 calls on the smallest pack and $3.08 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?
One linkedin_ad object. 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.
Can an AI agent call it?
Yes: it is the MCP tool get_linkedin_ad on our MCP server, with the same parameters, answer and price. Without a key, the tool answers from the demo.