Who advertises on LinkedIn, and what they say

ads_linkedin_advertisers is a $0.20 GET request on the Wuthering AI API. Turn a company, advertiser name, payer or phrase into the LinkedIn advertisers behind it, with their ads as rows. It answers complete JSON, and a call that fails is not charged.

Endpoint

GET /v1/ads_linkedin_advertisers

Price per successful call

$0.20

Failed calls

Not charged

curl 'https://wutheringai.com/v1/ads_linkedin_advertisers?company_id=…&token=YOUR_TOKEN'

What does ads_linkedin_advertisers return, and when should you call it?

Read LinkedIn's public ad library for a company, advertiser name, payer or phrase and return the advertisers found, each with the ads of theirs on the page as text.

This is the first step of any LinkedIn ad research, and this is where B2B spend goes: the Google tools here cover search and YouTube and the Meta tools cover consumer social, while LinkedIn is the one library where the buyer is a job title. Searching by payer is the thing nothing else here does — LinkedIn publishes who paid for each ad, so a payer search returns every brand that agency buys for, and the payer on a rival's ad names the agency running their acquisition.

IMPORTANT, and the trap every caller falls into once: this page carries NO DATES AND NO IMPRESSIONS. There is no equivalent of Meta's days_running. An ad's run dates, impression range and targeting are published only on that ad's own detail page, and only for ads shown in the EU and EEA where the law requires it; a US ad's detail page carries the advertiser and the payer and nothing else. Every row carries detail_url for that follow-up — read it with wuthering_web_fetch. Do not read run length off the ordering, which is by ad creation and nothing else.

Three more habits from the Meta tools that do not carry over. There is no landing URL, destination domain or call to action anywhere on this page — every link on a card points back into the ad library — so you cannot see where an ad sends people without opening its detail page. There is no way to search by the domain an ad advertises. And LinkedIn publishes no active flag, so a row does not say whether the ad is still running and you cannot ask for only live ones.

For text baked INSIDE a creative — a partner logo wall, a stat in the artwork — pass that ad's creative_image to wuthering_web_ocr, one creative at a time. Measured, that read all forty partner names off one alliance logo wall, none of which appear anywhere in this page's markup. Transcribing a rendered results page instead returns anonymous prose: no ad id, no link, and every word already an attributed field here.

PAGING: about 24 ads a call, newest first. Pass next_page_token back as page_token with every other argument unchanged, until a response carries none.

Returns: total_results (LinkedIn's count for the whole search, far larger than one call reads), ads_returned, next_page_token when more remain, and advertisers — each with advertiser, ad_library_url, and ads holding ad_id, format, headline, body, sender, creative_image and detail_url. body is TRUNCATED with an ellipsis as the card shows it; the detail page holds it whole. sender is set only on message ads, which are letters from a named person rather than from the brand. creative_image is LinkedIn's own signed CDN link and some expire. A paged call returns no total_results: a batch is a slice of the search, not the search.

Use to find who advertises on LinkedIn and read what they say. Don't use it for Meta or Google ads, which are wuthering_ads_meta_advertisers and wuthering_ads_advertisers.

What parameters does ads_linkedin_advertisers take?

ads_linkedin_advertisers accepts 9 parameters, none of them required. Array values are comma-separated on the query string.

Parameters accepted by the ads_linkedin_advertisers operation
ParameterTypeRequiredDescription
company_idstringnoLinkedIn company id of one advertiser — the precise aim, returning that company's ads and nobody else's. It is not on the search results page: take it from an ad's detail page, which links the advertiser as linkedin.com/company/<id>. A company URL or an ad-library URL can be pasted whole and the id is taken out of it. Note that a company's vanity URL (linkedin.com/company/acme-inc) is a slug, not an id, and is not accepted here.
advertiserstringnoCompany or advertiser name to search for, for example 'Asana'. Looser than company_id and useful for that: it catches regional pages, product pages and showcase pages a single company id would miss. Use company_id instead when you need exactly one advertiser.
keywordstringnoWord or phrase to match against ad text, for example 'project management'. A category term returns the whole field competing on it, including companies you had not thought to name. Combines with the other aims to narrow within them.
payerstringnoName of the entity that PAID for the ads, which LinkedIn publishes separately from the advertiser — usually a media agency. Searching one returns every brand that agency buys for. Take the exact string from the 'Paid for by' line on an ad's detail page; it is matched as written.
countrystringnoTwo-letter country code for the market whose ads to show, for example 'US' or 'DE', or 'ALL' for every country. Defaults to US, matching every other tool here. Worth changing for more than coverage: only ads shown in the EU and EEA publish run dates and impressions on their detail pages, so a European market is the one place those numbers exist at all.Defaults to US
started_afterstringnoOnly ads created on or after this date, as YYYY-MM-DD. The library holds a rolling twelve months and nothing older, and a date outside that window is not an error — it returns an empty page that reads exactly like an advertiser with no ads, so anything out of range is clamped back into it rather than sent.
started_beforestringnoOnly ads created on or before this date, as YYYY-MM-DD. With started_after this reads one campaign window. Same rolling twelve-month window and same clamping as started_after.
sortstringnoOrder the results by when each ad was created. newest is LinkedIn's own default. oldest is the more useful one for a teardown: the library holds twelve months, so the ads it returns first are the ones that have survived longest, and reading a competitor's oldest first shows what they settled on before what they are still trying. It is not run length — LinkedIn does not publish that here — but it is the closest ordering to it.One of: newest, oldestDefaults to newest
page_tokenstringnoFetch the next batch instead of the first. Pass back the next_page_token from a previous call, with EVERY OTHER ARGUMENT IDENTICAL — the token is only meaningful against the search that produced it, and a token from a different search returns the wrong ads or fails outright. A response with no next_page_token is the last batch; there is nothing further to ask for.

Reference for ads_linkedin_advertisers · last updated · published by Wuthering AI