Ad Details
curl --request GET \
--url https://api.sociavault.com/v1/scrape/linkedin-ad-library/ad-details \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.sociavault.com/v1/scrape/linkedin-ad-library/ad-details"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.sociavault.com/v1/scrape/linkedin-ad-library/ad-details', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.sociavault.com/v1/scrape/linkedin-ad-library/ad-details",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.sociavault.com/v1/scrape/linkedin-ad-library/ad-details"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.sociavault.com/v1/scrape/linkedin-ad-library/ad-details")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sociavault.com/v1/scrape/linkedin-ad-library/ad-details")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"success": true,
"id": "1174793313",
"description": "Scraping at scale requires trust. IPRoyal proxies are built for reliable performance.",
"headline": "IPRoyal - Reliable Proxies for Success",
"poster": "IPRoyal",
"posterTitle": "Promoted",
"promotedBy": null,
"targeting": {
"language": "Targeting includes English",
"location": "Targeting includes United States, Australia and\n \n 2 others\n \n New Zealand, Europe\n \n Targeting excludes India, Egypt"
},
"image": "https://media.licdn.com/dms/image/v2/D4D10AQHMqLVjbh0VwQ/image-shrink_1280/B4DZqmsGvMKIAM-/0/1763733173685/01_DataScrapingBusinessIntelligence_1200x1200jpg?e=2147483647&v=beta&t=L2YlJTBCcA2HFvnTrMb13rhrwypTRiW848Xu4FzwOSk",
"video": null,
"carouselImages": {},
"url": "https://www.linkedin.com/ad-library/detail/1174793313",
"adType": "Single Image Ad",
"advertiser": "IPRoyal",
"advertiserLinkedinPage": "https://www.linkedin.com/company/71890168",
"cta": "Request Demo",
"destinationUrl": "https://iproyal.com/?utm_source=linkedin&utm_medium=cpc&utm_campaign=enterprise&utm_content=data_scraping_2&trk=ad_library_ad_preview_headline_content",
"adDuration": "Ran from Feb 6, 2026 to Feb 8, 2026",
"startDate": "2026-02-06T00:00:00.000Z",
"endDate": "2026-02-08T00:00:00.000Z",
"totalImpressions": "5k-10k",
"impressionsByCountry": {}
},
"credits_used": 1
}{
"error": "Missing required parameter: handle",
"endpoint": "<string>",
"credits_required": 123
}{
"error": "Invalid API key",
"docs": "https://docs.sociavault.com/authentication"
}{
"error": "Insufficient credits",
"required": 1,
"available": 0
}{
"error": "Service configuration error"
}LinkedIn Ad Library
Ad Details
Get the details for an ad
GET
/
v1
/
scrape
/
linkedin-ad-library
/
ad-details
Ad Details
curl --request GET \
--url https://api.sociavault.com/v1/scrape/linkedin-ad-library/ad-details \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.sociavault.com/v1/scrape/linkedin-ad-library/ad-details"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.sociavault.com/v1/scrape/linkedin-ad-library/ad-details', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.sociavault.com/v1/scrape/linkedin-ad-library/ad-details",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.sociavault.com/v1/scrape/linkedin-ad-library/ad-details"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.sociavault.com/v1/scrape/linkedin-ad-library/ad-details")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sociavault.com/v1/scrape/linkedin-ad-library/ad-details")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"success": true,
"id": "1174793313",
"description": "Scraping at scale requires trust. IPRoyal proxies are built for reliable performance.",
"headline": "IPRoyal - Reliable Proxies for Success",
"poster": "IPRoyal",
"posterTitle": "Promoted",
"promotedBy": null,
"targeting": {
"language": "Targeting includes English",
"location": "Targeting includes United States, Australia and\n \n 2 others\n \n New Zealand, Europe\n \n Targeting excludes India, Egypt"
},
"image": "https://media.licdn.com/dms/image/v2/D4D10AQHMqLVjbh0VwQ/image-shrink_1280/B4DZqmsGvMKIAM-/0/1763733173685/01_DataScrapingBusinessIntelligence_1200x1200jpg?e=2147483647&v=beta&t=L2YlJTBCcA2HFvnTrMb13rhrwypTRiW848Xu4FzwOSk",
"video": null,
"carouselImages": {},
"url": "https://www.linkedin.com/ad-library/detail/1174793313",
"adType": "Single Image Ad",
"advertiser": "IPRoyal",
"advertiserLinkedinPage": "https://www.linkedin.com/company/71890168",
"cta": "Request Demo",
"destinationUrl": "https://iproyal.com/?utm_source=linkedin&utm_medium=cpc&utm_campaign=enterprise&utm_content=data_scraping_2&trk=ad_library_ad_preview_headline_content",
"adDuration": "Ran from Feb 6, 2026 to Feb 8, 2026",
"startDate": "2026-02-06T00:00:00.000Z",
"endDate": "2026-02-08T00:00:00.000Z",
"totalImpressions": "5k-10k",
"impressionsByCountry": {}
},
"credits_used": 1
}{
"error": "Missing required parameter: handle",
"endpoint": "<string>",
"credits_required": 123
}{
"error": "Invalid API key",
"docs": "https://docs.sociavault.com/authentication"
}{
"error": "Insufficient credits",
"required": 1,
"available": 0
}{
"error": "Service configuration error"
}💳 1 credit per request
Authorizations
Query Parameters
The url of the ad
Example:
"https://www.linkedin.com/ad-library/detail/666281156"
Response
Successful response
Key Response Fields:
id: Unique ad identifierdescription: Full ad body text/copyheadline: Ad headline (may benull)poster: Name of the company running the adadType: Ad format (e.g.Single Image Ad,Video Ad,Carousel Ad)advertiser: Advertiser display nameadvertiserLinkedinPage: URL to the advertiser's LinkedIn company pageimage: URL of the ad's image asset (may benull)video: Video asset details (may benull)carouselImages: Object containing carousel image assetscta: Call-to-action button text (e.g.Request Demo)destinationUrl: Full landing page URL including UTM parameterstargeting.language: Audience language targeting descriptiontargeting.location: Audience location targeting descriptionadDuration: Human-readable run period (e.g.Ran from Feb 6, 2026 to Feb 8, 2026)startDate/endDate: ISO 8601 timestamps for ad run periodtotalImpressions: Impression range string (e.g.5k-10k) ornullimpressionsByCountry: Per-country impression breakdown