All scrapers

Social & video

Meta Ad Library Scraper

facebook.com/ads/library

89.9% Success rate
21.2s Avg response
In-house anti-bot Protection
1,000 calls Measured over

The Meta Ad Library is served through a dedicated plugin endpoint rather than the generic page fetch. Give it an advertiser - a Facebook Page name or a numeric Page ID - and a country, and it returns the ads Meta shows in its public Ad Library: each with the ad copy, call-to-action, format, the image and video creative URLs, the landing page, the platforms it runs on and its run dates. It runs a real browser on our own anti-bot fleet and captures Meta's own results directly, so there is no Meta developer account or access token, and none of the political-ads-only limits of Meta's official Ad Library API.

What you can extract

  • Ad copy, headline, caption and call-to-action label and type
  • Creative format (image, video, DCO, carousel) with image and video creative URLs
  • Landing page URL the ad sends the click to
  • Platforms the ad runs on (Facebook, Instagram, Messenger, Threads)
  • Run dates (started / ended) and whether the ad is currently active
  • Advertiser Page name, id and follower count

Dedicated endpoints

/ads/meta-ad-library

An advertiser's Meta ads

A Facebook/Instagram advertiser's ads from Meta's public Ad Library: ad text, CTA, creative image/video URLs, landing page, platforms and run dates. Filter by country, active status and media type; bound the result with max_ads.

How to scrape it

curl -X POST \
  -H "X-ScrapeUnblocker-Key: $SU_API_KEY" \
  "https://api.scrapeunblocker.com/ads/meta-ad-library?advertiser=Nike&country=US&active_status=active"
import requests

resp = requests.post(
    "https://api.scrapeunblocker.com/ads/meta-ad-library",
    headers={"X-ScrapeUnblocker-Key": SU_API_KEY},
    params={"advertiser": "Nike", "country": "US", "active_status": "active"},
)
print(resp.text)
import { ScrapeUnblockerClient } from 'scrapeunblocker';

const su = new ScrapeUnblockerClient({ apiKey: process.env.SU_API_KEY });

const ads = await su.metaAdLibrary('Nike', {
  country: 'US',
  activeStatus: 'active',
});
console.log(ads);

Requests are POST and take their parameters in the query string. Browser rendering always happens - there is no flag to enable.

Example response

{
  "advertiser": "Nike",
  "resultsCollected": 30,
  "has_more": true,
  "results": [
    {
      "ad_archive_id": "1049210304776058",
      "page_id": "15087023444",
      "page_name": "Nike",
      "page_like_count": 39281044,
      "is_active": true,
      "started_running": "2026-08-07",
      "ended": null,
      "platforms": [
        "FACEBOOK",
        "INSTAGRAM",
        "MESSENGER",
        "THREADS"
      ],
      "display_format": "VIDEO",
      "ad_text": "Made to move. The new season is here.",
      "title": "Shop the latest",
      "cta_text": "Shop now",
      "cta_type": "SHOP_NOW",
      "link_url": "https://www.nike.com/w/new-3n82y",
      "creatives": [
        {
          "type": "video",
          "image_url": "https://scontent.xx.fbcdn.net/v/preview.jpg",
          "video_url": "https://video.xx.fbcdn.net/v/hd.mp4"
        }
      ]
    }
  ]
}

Read the API docs

Frequently asked questions

Is it legal to scrape the Meta Ad Library?

Collecting publicly available Meta Ad Library data such as ad copy, creative URLs and run dates is lawful in many jurisdictions, but the rules depend on your country, the data you collect and how you use it. Some of it can be personal data, so follow the privacy rules that apply to you. ScrapeUnblocker returns the public page; what you collect and how you use it is your responsibility.

How do I scrape the Meta Ad Library without getting blocked?

The Meta Ad Library is protected by in-house anti-bot systems. ScrapeUnblocker renders the page in a real browser, rotates residential and ISP exits and handles challenges, and the plugin returns the ads as parsed JSON. In ScrapeUnblocker's benchmark it returned real content on 89.9% of 1,000 calls, about 21.2s per call.

What Meta Ad Library data can I get?

For each ad: the ad copy, headline, caption and call-to-action label and type, the creative format (image, video, DCO or carousel) with image and video creative URLs, the landing page URL, the platforms it runs on (Facebook, Instagram, Messenger, Threads), start and end dates and whether it is still active, plus the advertiser Page name, id and follower count.

Do I need a Meta API account or access token?

No. The Meta Ad Library plugin returns an advertiser's ads as JSON without a Meta API account, developer app or access token. Give it a Facebook Page name or a numeric Page ID: a Page ID matches that exact advertiser, while a name can span several Pages that share it.

Can I see an advertiser's ads in a specific country?

Yes. Pass country as an ISO-2 code such as US, GB or DE; Meta scopes its Ad Library by country, and the default is US. Combine it with active_status (active, inactive or all), media_type (all, image, video or meme) and max_ads, up to 500, to control which ads come back.

How much does it cost to scrape the Meta Ad Library?

Pricing is per request: 1 request = 1 credit, from EUR 1.00 per 1,000 on pay as you go to about EUR 0.55 per 1,000 on the Ultimate plan. Plugin calls use the same plan quota as any other request. One call returns up to max_ads ads for one advertiser, paginated for you. Blocks, timeouts and errors on ScrapeUnblocker's side are not billed, and the free trial includes 500 requests with no card.

Related scrapers

Start scraping this site today

Free tier included. No credit card required to test it.