Get Results
curl --request GET \
--url https://api.lobstr.io/v1/results \
--header 'Authorization: <authorization>'import requests
url = "https://api.lobstr.io/v1/results"
headers = {"Authorization": "<authorization>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<authorization>'}};
fetch('https://api.lobstr.io/v1/results', 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.lobstr.io/v1/results",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: <authorization>"
],
]);
$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.lobstr.io/v1/results"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<authorization>")
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.lobstr.io/v1/results")
.header("Authorization", "<authorization>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.lobstr.io/v1/results")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<authorization>'
response = http.request(request)
puts response.read_body{
"ad_archive_id": "<string>",
"ad_url": "<string>",
"ad_id": "<string>",
"page_id": "<string>",
"page_name": "<string>",
"page_url": "<string>",
"page_likes": 123,
"page_categories": "<any>",
"page_profile_picture": "<string>",
"page_is_deleted": true,
"page_owner_name": "<string>",
"page_owner_id": "<string>",
"ad_text": "<string>",
"headline": "<string>",
"link_description": "<string>",
"caption": "<string>",
"cta_text": "<string>",
"cta_type": "<string>",
"link_url": "<string>",
"display_format": "<string>",
"byline": "<string>",
"images": "<any>",
"videos": "<any>",
"cards": "<any>",
"is_reshared": true,
"start_date": {},
"end_date": {},
"total_active_time": 123,
"is_active": true,
"publisher_platforms": "<any>",
"currency": "<string>",
"spend": "<string>",
"impressions_text": "<string>",
"impressions_index": 123,
"categories": "<any>",
"collation_count": 123,
"gated_type": "<string>",
"contains_sensitive_content": true,
"contains_digitally_created_media": true,
"total_ads": 123,
"search_keyword": "<string>",
"payer": "<string>",
"beneficiary": "<string>",
"targets_eu": true,
"eu_total_reach": 123,
"eu_location_audience": "<any>",
"eu_gender_audience": "<string>",
"eu_age_min": 123,
"eu_age_max": 123,
"eu_age_country_gender_breakdown": "<any>",
"is_ad_taken_down": true,
"page_about": "<string>",
"page_alias": "<string>",
"page_category": "<string>",
"page_verification": "<string>",
"instagram_followers": 123,
"instagram_username": "<string>",
"insights_age_gender": "<any>",
"insights_location": "<any>",
"page_spend_lifetime": "<any>",
"violation_types": "<any>"
}Facebook Ad Library Scraper
Get Results
Retrieve scraped data from Facebook Ad Library Scraper
GET
/
v1
/
results
Get Results
curl --request GET \
--url https://api.lobstr.io/v1/results \
--header 'Authorization: <authorization>'import requests
url = "https://api.lobstr.io/v1/results"
headers = {"Authorization": "<authorization>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<authorization>'}};
fetch('https://api.lobstr.io/v1/results', 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.lobstr.io/v1/results",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: <authorization>"
],
]);
$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.lobstr.io/v1/results"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<authorization>")
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.lobstr.io/v1/results")
.header("Authorization", "<authorization>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.lobstr.io/v1/results")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<authorization>'
response = http.request(request)
puts response.read_body{
"ad_archive_id": "<string>",
"ad_url": "<string>",
"ad_id": "<string>",
"page_id": "<string>",
"page_name": "<string>",
"page_url": "<string>",
"page_likes": 123,
"page_categories": "<any>",
"page_profile_picture": "<string>",
"page_is_deleted": true,
"page_owner_name": "<string>",
"page_owner_id": "<string>",
"ad_text": "<string>",
"headline": "<string>",
"link_description": "<string>",
"caption": "<string>",
"cta_text": "<string>",
"cta_type": "<string>",
"link_url": "<string>",
"display_format": "<string>",
"byline": "<string>",
"images": "<any>",
"videos": "<any>",
"cards": "<any>",
"is_reshared": true,
"start_date": {},
"end_date": {},
"total_active_time": 123,
"is_active": true,
"publisher_platforms": "<any>",
"currency": "<string>",
"spend": "<string>",
"impressions_text": "<string>",
"impressions_index": 123,
"categories": "<any>",
"collation_count": 123,
"gated_type": "<string>",
"contains_sensitive_content": true,
"contains_digitally_created_media": true,
"total_ads": 123,
"search_keyword": "<string>",
"payer": "<string>",
"beneficiary": "<string>",
"targets_eu": true,
"eu_total_reach": 123,
"eu_location_audience": "<any>",
"eu_gender_audience": "<string>",
"eu_age_min": 123,
"eu_age_max": 123,
"eu_age_country_gender_breakdown": "<any>",
"is_ad_taken_down": true,
"page_about": "<string>",
"page_alias": "<string>",
"page_category": "<string>",
"page_verification": "<string>",
"instagram_followers": 123,
"instagram_username": "<string>",
"insights_age_gender": "<any>",
"insights_location": "<any>",
"page_spend_lifetime": "<any>",
"violation_types": "<any>"
}Retrieve scraped data from your Facebook Ad Library Scraper runs.
Headers
string
required
Your API authentication token. Value:
Token YOUR_API_KEYQuery Parameters
string
required
Hash of the squid to get results from
integer
Page number (default: 1)
Result Fields
string
Unique Meta Ad Library identifier. Example:
1234567890123456string
Direct Ad Library URL of this ad
string
Meta’s internal ad id
string
Numeric identifier of the Facebook Page
string
Name of the Facebook Page running the ad. Example:
Applestring
URL of the Facebook Page
integer
Number of likes of the Page
json
Categories of the Page
string
Profile picture of the Page
boolean
Whether the Page has been deleted
string
Legal name of the confirmed page owner
string
Meta identifier of the confirmed owner
text
Main body text of the ad creative. Example:
Introducing iPhone 17. The most advanced iPhone yet.text
Headline of the ad creative
text
Link description shown under the headline
string
Display link (domain shown on the creative)
string
Label of the call-to-action button
string
Type of the call-to-action button
string
Destination URL of the ad
string
Creative format:
IMAGE, VIDEO, MEME, DCO, DPA, CAROUSELstring
Paid-for-by byline (political/issue ads)
json
Images of the creative
json
Videos of the creative
json
Cards of a multi-card creative
boolean
Whether the ad reshares an existing post
datetime
Date and time the ad started running. Example:
2026-09-01T00:00:00Zdatetime
Date and time the ad stopped running
integer
Total time active, in seconds
boolean
Whether the ad is currently running. Example:
truejson
Meta platforms the ad runs on
string
Currency of the spend range
string
Spend range as a range string (political ads only)
string
Impressions range (political ads only)
integer
Meta’s internal impressions index. Example:
4json
Ad Library categories
integer
Number of ads Meta collated with this one
string
Whether the ad is eligible or was taken down
boolean
Whether Meta flags the creative as sensitive
boolean
Whether the creative contains AI-generated or altered media
integer
Total ads Meta reports for this advertiser
string
Keyword the ad was found with
Detail Fields
The following fields requiread_details: true in settings.
string
Declared payer of the ad
string
Declared beneficiary of the ad
boolean
Whether the ad targets the EU
integer
Total EU accounts reached
json
Locations targeted in the EU
string
Gender targeted in the EU
integer
Lower bound of age range targeted in EU
integer
Upper bound of age range targeted in EU
json
EU reach broken down by country, age and gender
boolean
Whether Meta has taken the ad down
text
About text of the advertiser’s Page
string
Vanity alias of the advertiser’s Page
string
Category of the advertiser’s Page
string
Verification status of the advertiser’s Page
integer
Number of followers of the advertiser’s Instagram account
string
Username of the advertiser’s Instagram account
json
Share of impressions by age and gender (political ads)
json
Share of impressions by region (political ads)
json
Lifetime ad spend of the advertiser
json
Policy violations Meta records on the ad
Response
200
{"total_results": 1, "data": [{"ad_archive_id": "1234567890123456", "page_name": "Apple", "ad_text": "Introducing iPhone 17. The most advanced iPhone yet.", "is_active": true, "start_date": "2026-09-01T00:00:00Z", "impressions_index": 4}]}