LinkedIn hub

LinkedIn Ad Library Ad API

Resolve a single LinkedIn Ad Library creative by ad id or detail URL — structured JSON in the shared Social Fetch envelope.

GET /v1/linkedin/ad-library/ads

1 credit per successful request.

About this endpoint

Competitive intel jobs often land on one LinkedIn Ad Library detail page: a teammate pasted `/ad-library/detail/…`, a search row already gave you an ad id, or a ticket asks for the creative behind a specific archive link. Opening that page in a browser works once. It fails when you need the same card in a warehouse row next to Facebook and TikTok ads, on a schedule, without babysitting login walls.

`GET /v1/linkedin/ad-library/ads` takes either `adId` or `url` (at least one required). Pass the numeric/string Ad Library id, or a public detail URL such as `https://www.linkedin.com/ad-library/detail/{id}`. Branch on `data.lookupStatus` before you write — `found` vs `not_found`. When found, `data.ad` carries `id`, `url`, headline, description, `adType`, poster fields, `advertiser`, `targeting`, `creative` (image, video, carousel, CTA, destination), `duration`, and `impressions` when LinkedIn exposes them. When not found, `ad` is null. Bill from `meta.creditsCharged`; the flat amount for this operation is on this page and in the OpenAPI note.

This route is a single-ad lookup. Keyword, company, or company-id discovery belongs on `GET /v1/linkedin/ad-library/ads/search`. Same Social Fetch API key as the rest of the LinkedIn hub.

LinkedIn Ad Library Ad API FAQ

What does the LinkedIn Ad Library Ad API return?

A Social Fetch success envelope with data.lookupStatus (found or not_found) and data.ad. When found, ad includes id, url, headline, description, adType, poster fields, advertiser, targeting, creative assets, duration, and impressions when LinkedIn shows those fields. When not found, ad is null. meta.requestId and meta.creditsCharged are always present on a completed response.

How do I get one LinkedIn Ad Library ad via API?

Call GET /v1/linkedin/ad-library/ads with your Social Fetch API key (x-api-key) and either adId or url. Read data.lookupStatus, then data.ad. Full parameters are in the API docs.

Do I pass an ad id or an Ad Library URL?

Either works. Use adId for the Ad Library identifier, or url for a public detail link (https://www.linkedin.com/ad-library/detail/…). At least one of the two is required. Company vanity URLs and person /in/… pages are not inputs for this route.

How much does LinkedIn Ad Library ad detail cost?

Pricing is documented on the operation in the API registry (shown on this page). Confirm on every response with meta.creditsCharged — that field is the billing source of truth.

Is this the same as LinkedIn Ad Library ads search?

No. GET /v1/linkedin/ad-library/ads returns one ad when you already have an ad id or detail URL. GET /v1/linkedin/ad-library/ads/search finds ads by company, keyword, or company id with optional country and date filters and cursor pagination.

What happens when the LinkedIn ad is not found?

The call still returns HTTP 200 with lookupStatus not_found and ad null. Do not upsert that row. Keep meta.requestId if you need to retry or escalate.

Do I need a LinkedIn ads account or Campaign Manager token?

No. You authenticate to Social Fetch with an API key. The route reads public Ad Library detail data; it does not act on behalf of an ads account you manage.