ScavioScavio
ToolsPricing
Sign InsGet Startedg
2 live endpoints

LinkedIn Ad Library API

Search every ad running on LinkedIn by keyword or advertiser and get the advertiser, creative, ad copy and 'paid for by' as structured JSON — each a single POST. No LinkedIn login and no partner application.

Get your API keyRead the docs

50 free credits on signup. No card, no LinkedIn login.

POST /api/v1/linkedin/ads/search
captured response
keyword:ai search
Run it with your key
{  "data": {    "ads": [      {        "ad_id": "1564460026",        "advertiser": "Ahrefs",        "advertiser_id": null,        "ad_copy": "Every AI answer that leaves you out is a customer going to someone else. See how your brand's AI visibility compares wit…",        "format": "Single Image Ad",        "creative_type": "SPONSORED_STATUS_UPDATE",        "is_sponsored": true,        "headline": "Don't get left out of the AI answer",        "thumbnail": "https://media.licdn.com/dms/image/v2/D5610AQGqb9rOk1j9aQ/image-shrink_1280/B56Z.UXmB1KAAk-/0/1784900641216/2png?e=2147483647&v=beta&t=vUeLvAZ0QdN5MLuNqx1zwrLEikFiAGSqzBQRWhThg_4",        "advertiser_logo": "https://media.licdn.com/dms/image/v2/D4D0BAQFsw_XSUcUEjg/company-logo_100_100/B4DZ4GwS3HIEAI-/0/1778229784240/ahrefs_logo?e=1788998400&v=beta&t=zpAgN2ol9Y--yDydCSt4BSKBgDWLGxMh6mznxv2wAgs",        "detail_url": "https://www.linkedin.com/ad-library/detail/1564460026"      },      {        "ad_id": "1518688244",        "advertiser": "Sodéli Sorvetes",        "advertiser_id": null,        "ad_copy": null,        "format": "Message Ad",        "creative_type": "SPONSORED_INMAILS",        "is_sponsored": true,        "headline": null,        "thumbnail": null,        "advertiser_logo": "https://media.licdn.com/dms/image/v2/D4D0BAQHBGuiNnf_RcA/company-logo_100_100/B4DZmhwMyTJcAQ-/0/1759355391576/sodli_sorvetes_logo?e=1788998400&v=beta&t=Aq8yJlTg0Wfxq-3eXTo6gkPB-0FVJTYypnyu9pBYqGQ",        "detail_url": "https://www.linkedin.com/ad-library/detail/1518688244"      }    ],    "total_seen": 24  },  "response_time": 3690,  "credits_used": 6,  "credits_remaining": 4564}
captured example · 6 credits50 free credits on signup

A real captured response from this endpoint. Sign up to run your own.

What is the Scavio LinkedIn Ad Library API?

The Scavio LinkedIn Ad Library API is a REST API that returns LinkedIn ad data as structured JSON. You send a keyword or an advertiser's company id to a search endpoint, or an ad id to a detail endpoint, with your API key, and get back the advertiser, ad copy, creative and 'paid for by'.

2
endpoints, both live in production
6
credits per call, premium tier
0
LinkedIn logins or applications required

Two endpoints, the whole library

Search the library by keyword or advertiser, then open any ad in full.

Ad search

POST /api/v1/linkedin/ads/search

Search every ad running on LinkedIn by keyword, by advertiser company id, or both — filtered by country and recent time window. Each row carries the advertiser, ad copy, format and a detail link.

Ad detail

POST /api/v1/linkedin/ads/detail

One ad in full by its id or its Ad Library URL: the advertiser, who paid for it, the full ad copy, the creative and — for ads covered by EU transparency rules — estimated impressions and targeting.

Both LinkedIn Ad Library endpoints

Each route is a POST, returns JSON, and takes the same API key. The Ad Library is a premium surface at 6 credits per call.

EndpointReturnsCredits
Ad search/api/v1/linkedin/ads/searchEvery ad matching a keyword or advertiser — advertiser, ad copy, format, sponsored label and a detail link6
Ad detail/api/v1/linkedin/ads/detailOne ad in full by id or URL — advertiser, paid-for-by, ad copy, creative, and impressions/demographics where disclosed6

50 free credits on signup covers your first calls of any kind. See plans

A keyword to every ad, then the full record

Search by keyword or advertiser, then open any ad by its id. The response on the right is a real capture, field names and all.

from scavio import ScavioClient

client = ScavioClient(api_key="sk_live_your_key")

# Search every ad running on LinkedIn by keyword - 6 credits
res = client.linkedin.ads_search(keyword="ai search", countries="US")
for ad in res["data"]["ads"]:
    print(ad["ad_id"], ad["advertiser"], ad["format"])

# Open one ad in full by its id - 6 credits
detail = client.linkedin.ads_detail(ad_id="1564460026")
print(detail["data"]["paid_for_by"])
200 response.jsoncaptured
{
  "data": {
    "ads": [
      {
        "ad_id": "1564460026",
        "advertiser": "Ahrefs",
        "advertiser_id": null,
        "ad_copy": "Every AI answer that leaves you out is a customer going to someone else. See how your brand's AI visibility compares wit…",
        "format": "Single Image Ad",
        "creative_type": "SPONSORED_STATUS_UPDATE",
        "is_sponsored": true,
        "headline": "Don't get left out of the AI answer",
        "thumbnail": "https://media.licdn.com/dms/image/v2/D5610AQGqb9rOk1j9aQ/image-shrink_1280/B56Z.UXmB1KAAk-/0/1784900641216/2png?e=2147483647&v=beta&t=vUeLvAZ0QdN5MLuNqx1zwrLEikFiAGSqzBQRWhThg_4",
        "advertiser_logo": "https://media.licdn.com/dms/image/v2/D4D0BAQFsw_XSUcUEjg/company-logo_100_100/B4DZ4GwS3HIEAI-/0/1778229784240/ahrefs_logo?e=1788998400&v=beta&t=zpAgN2ol9Y--yDydCSt4BSKBgDWLGxMh6mznxv2wAgs",
        "detail_url": "https://www.linkedin.com/ad-library/detail/1564460026"
      },
      {
        "ad_id": "1518688244",
        "advertiser": "Sodéli Sorvetes",
        "advertiser_id": null,
        "ad_copy": null,
        "format": "Message Ad",
        "creative_type": "SPONSORED_INMAILS",
        "is_sponsored": true,
        "headline": null,
        "thumbnail": null,
        "advertiser_logo": "https://media.licdn.com/dms/image/v2/D4D0BAQHBGuiNnf_RcA/company-logo_100_100/B4DZmhwMyTJcAQ-/0/1759355391576/sodli_sorvetes_logo?e=1788998400&v=beta&t=Aq8yJlTg0Wfxq-3eXTo6gkPB-0FVJTYypnyu9pBYqGQ",
        "detail_url": "https://www.linkedin.com/ad-library/detail/1518688244"
      }
    ],
    "total_seen": 24
  },
  "response_time": 3690,
  "credits_used": 6,
  "credits_remaining": 4564
}

Why not LinkedIn's own Ad Library?

LinkedIn's Ad Library is public, but it is a manual web UI — there is no official API behind it.

LinkedIn Ad Library (web)

  • No official API — it is a web page you browse one advertiser or one ad at a time
  • No bulk export and no JSON; nothing to query programmatically
  • You cannot filter and pull results into your own tools
  • Reading a hundred advertisers means a hundred manual page loads

Scavio LinkedIn Ad Library API

  • One API key, issued at signup — no LinkedIn login, no partner application
  • Search by keyword or advertiser, then open any ad by id or URL
  • Advertiser, ad copy, creative and paid-for-by as structured JSON
  • Same key and JSON envelope as 30 other Scavio platforms

Scavio returns data LinkedIn itself publishes in its Ad Library for transparency, and never authenticates as a LinkedIn member.

What developers build with it

Competitor ad monitoring

Pull every ad a competitor is running by their company id and diff it weekly. New campaigns, message shifts and quiet pauses all surface as structured rows, no scrolling the Ad Library by hand.

search

B2B creative research

Search a category by keyword to collect the ad copy, headlines and formats actually in market — Single Image, Video, Message and Article ads — as a swipe file your team can query.

search + detail

Ad transparency and compliance

Open a single ad by id to read who paid for it and, for EU-targeted ads, the disclosed impressions and targeting — the record you need for transparency, brand-safety or due-diligence work.

detail

Demand and positioning signals

See which advertisers are pushing which messages in a category before you commit budget. Advertiser, format and copy on every row give quick context on how crowded and how loud a space is.

search

Agent tools for ad research

Point an agent at the MCP server and the LinkedIn Ad Library becomes a callable tool — what is this company running, who else advertises on this keyword — with one API key.

MCP + REST

How to get LinkedIn ad data as JSON

  1. 1

    Get an API key

    Sign up for a Scavio account and copy your key from the dashboard. You get 50 credits free on signup, with no card required and no LinkedIn login or partner application.

  2. 2

    Search by keyword or advertiser

    POST to /api/v1/linkedin/ads/search with {"keyword": "ai search"} or a company_id, optionally scoped by countries and a recent date_option, and an Authorization: Bearer header. You get back the ads on the page with advertiser, copy, format and a detail_url.

  3. 3

    Open any ad in full

    Take the ad_id (or detail_url) from a search row and POST it to /api/v1/linkedin/ads/detail for the full record: advertiser, paid_for_by, ad copy, creative, and — when the ad is covered by EU transparency rules — impressions and demographics.

One key, 31 platformsMCP server for agentsPython & JS SDKsn8n community node

LinkedIn Ad Library API FAQ

What is the Scavio LinkedIn Ad Library API?

+

It is a REST API that returns LinkedIn Ad Library data as structured JSON. Two POST endpoints cover searching every ad running on LinkedIn by keyword or advertiser, and opening a single ad in full by its id or URL. You authenticate with a Scavio API key — there is no LinkedIn login and no partner application.

Does LinkedIn have an official Ad Library API?

+

No. LinkedIn's Ad Library is a manual web UI you browse one advertiser or one ad at a time — there is no official API, no bulk export and no JSON. Scavio turns that same public library into two REST calls you can query programmatically, pay-as-you-go, on one key.

What can I search by?

+

By keyword, by advertiser company id, or both together. You can also restrict results to one or more countries and to a recent time window. At least one of keyword or company_id is required on every search.

What does a search result contain?

+

Each ad row carries ad_id, advertiser, advertiser_id, ad_copy, format, creative_type, is_sponsored, headline, thumbnail, advertiser_logo and a detail_url. Fields that LinkedIn does not surface for a given ad — a Message Ad has no public copy or thumbnail, for instance — come back as null rather than being omitted.

What extra detail does the ad detail endpoint add?

+

Detail returns the advertiser's company URL, who paid for the ad (paid_for_by), the full untruncated ad copy, the creative as a media array, and an about block with the format and run dates. For ads covered by EU transparency rules it also returns impressions and demographics.

Why are impressions and demographics sometimes null?

+

LinkedIn only discloses estimated impressions and audience targeting for ads covered by EU transparency rules (the Digital Services Act). For those ads the detail response includes impressions and demographics; for every other ad both fields come back as null, and you get advertiser, creative and paid-for-by only. This is a limit of what LinkedIn publishes, not of the API.

How much does a request cost?

+

Every LinkedIn Ad Library endpoint costs 6 credits per call — it is a premium surface, priced above Scavio's standard platforms. New accounts get 50 free credits on signup, one time, with no card required. Paid plans start at $30 per month.

How do I get every ad one company is running?

+

Pass that advertiser's numeric LinkedIn company id as company_id to the search endpoint. That returns the ads on the page for that advertiser; page through with the country and date filters to widen or narrow the set.

Is the ad copy in search results truncated?

+

In search results long copy is truncated with an ellipsis, so the list stays scannable. Call the detail endpoint with that ad's id to get the full, untruncated ad copy along with the creative and paid-for-by.

Which languages and tools are supported?

+

Official Python (pip install scavio) and JavaScript/TypeScript (npm i scavio) SDKs, a remote MCP server at mcp.scavio.dev for AI agents, and an n8n community node. Any language can call the REST endpoints directly with an HTTP client.

Is using LinkedIn Ad Library data legal?

+

Scavio returns data LinkedIn itself publishes in its Ad Library for transparency purposes, and never authenticates as a LinkedIn member. You remain responsible for how you use it, including compliance with LinkedIn's terms. Talk to your own counsel for your specific use case.

Explore more of Scavio

LinkedIn API

Profiles, companies, posts and job listings as JSON.

Meta Ad Library API

Facebook and Instagram ads by keyword, Page or archive id.

Google Ads Transparency API

Advertisers, ads and creative history.

Facebook API

Profiles, posts, reels, groups and events.

MCP server

Every platform as a callable tool for agents.

Pricing

Credit packs and plans, no per-platform surcharge.

Start pulling LinkedIn ads today

50 free credits on signup, no card. Your first request is a POST with a keyword in it.

Get your API keySee pricing
ScavioScavio

One scraper API for every social, search and ecommerce platform. Built for AI agents.

Product

  • Features
  • Pricing
  • Dashboard
  • Affiliates

Developers

  • Documentation
  • API Reference
  • Quickstart
  • MCP Integration
  • Python SDK

Alternatives

  • Tavily Alternative
  • SerpAPI Alternative
  • Firecrawl Alternative
  • Exa Alternative
  • Serper Alternative
  • Tavily vs Scavio
  • SerpAPI vs Scavio
  • All alternatives
  • Compare Scavio vs alternatives

Search APIs

  • Google Search API
  • Amazon Product API
  • YouTube API
  • Reddit API
  • Walmart Product API
  • TikTok API
  • Instagram API

Tools

  • All Tools

© 2026 Scavio. All rights reserved.

Featured on TAAFT
Terms of ServicePrivacy Policy