Meta Ad Library Scraper — Facebook & Instagram Ads avatar

Meta Ad Library Scraper — Facebook & Instagram Ads

Pricing

$0.68 / 1,000 per ad returneds

Go to Apify Store
Meta Ad Library Scraper — Facebook & Instagram Ads

Meta Ad Library Scraper — Facebook & Instagram Ads

Scrape the Meta Ad Library by keyword or advertiser: ad creative, headline, CTA, landing-page URL, run dates, placements, plus the advertiser's page name, ID, likes and category. Find who is advertising. No login.

Pricing

$0.68 / 1,000 per ad returneds

Rating

0.0

(0)

Developer

Scrapers Delight

Scrapers Delight

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

1

Monthly active users

2 days ago

Last modified

Share

What is Meta Ad Library Scraper?

Meta Ad Library Scraper extracts ads running on Facebook, Instagram, Messenger and Threads from Meta's public Ad Library — the creative, the landing page, the run dates, and the advertiser behind each ad.

Search by keyword to see everyone advertising in a niche, or by advertiser page ID to pull one company's entire ad history. No login and no Facebook account.

  • Find who is spending on ads — every row carries the advertiser's page name, page ID, profile URL, follower count and business categories
  • See the whole creative — headline, body copy, call-to-action, landing-page URL, and image or video URLs
  • Competitor and market research — what a rival is running right now, how long each ad has been live, and which placements it runs on
  • Filter before you pay — country, active/inactive, media type and ad category
  • Export to Excel, CSV, JSON or HTML; run it on a schedule or from the API

Why this doubles as a lead list

An advertiser is a business that is actively spending money to get customers — which makes this one of the cleanest B2B lead signals there is. Every ad returns:

page_name · page_id · page_profile_url · page_likes · page_categories · link_url

That last one is the advertiser's own website, which you can push straight into an email or contact enrichment step. In a run for "plumber" in the US on 2026-09-07 (qvehWosG1BgnQgqmC), 50 ads came from 36 distinct advertisers — page name, page ID, profile URL, follower count and categories filled on 50 of 50 rows, landing-page URL on 47.

What data can this scraper extract?

🏢 Advertiser page name🆔 Page ID🔗 Page profile URL
👍 Page likes🏷️ Page categories🌐 Landing-page URL
📝 Headline & body copy🔘 Call-to-action🖼️ Image / video URLs
📅 Start & end date✅ Active status📱 Placements (FB/IG/Messenger/Threads)
🎞️ Display format🗂️ Card count🆔 Ad archive ID + Ad Library URL

On spend and impressions: Meta only publishes reach and spend ranges for political and issue ads — for everything else those fields are empty by design. That's the source data, not the scraper. To get them, set the ad category to "Issues, elections or politics".

How much does it cost?

Pay per event — you're charged for what you actually receive.

  • Scraped ad — the base charge, once per unique ad. Ads are deduplicated by Meta's ad archive ID before you're billed, and rows are pushed and charged page by page, so a run that stops at your budget cap never hands you ads you were not billed for (or bills you for ads you never got).

The platform cost of running it is small next to that. Measured 2026-09-07 on run 0y8RM1E04e3wdVOfo — 1,000 ads, 99 pages, 256 MB — the Apify platform usage came to $0.0598 per 1,000 ads, about a tenth of the per-ad charge.

Why it is fast and cheap

There is no browser. Rows come from two of Meta's own public surfaces over plain HTTP, so a run allocates 256 MB instead of 4 GB, peaks at 73 MB of memory, and pulls about 5.6 KB of residential proxy traffic per ad instead of 114 KB. Same-input, same-moment comparison against the old browser build: $0.0525 vs $0.0018 for the identical 50 ads.

How do I use it?

⬇️ Input

{
"query": "plumber",
"country": "US",
"maxItems": 200,
"activeStatus": "active"
}

To pull one advertiser's full history, take the numeric ID from an Ad Library URL (…view_all_page_id=1234567890) and put it in Advertiser page ID instead of a search term.

⬆️ Output

One row per ad:

{
"ad_archive_id": "1409568196971821",
"page_name": "Honest Plumbing AZ LLC",
"page_id": "205528589318346",
"page_profile_url": "https://www.facebook.com/HonestPlumbingAZ/",
"page_likes": 73268,
"page_categories": ["Business", "Home Repair"],
"title": "Need a plumber today?",
"body_text": "Same-day service across the valley…",
"cta_text": "Learn more",
"link_url": "https://www.example-plumbing.com/",
"is_active": true,
"start_date": "2026-07-09",
"end_date": null,
"publisher_platforms": ["FACEBOOK", "INSTAGRAM", "THREADS"],
"ad_library_url": "https://www.facebook.com/ads/library/?id=1409568196971821"
}

Common uses

  • Agencies & marketers — competitor creative research, and a prospect list of businesses already paying for ads
  • Lead generation — advertisers are pre-qualified buyers; pair link_url with contact enrichment for outbound
  • Market & trend research — who entered a category, what messaging they use, how long ads run
  • Brand protection — spot ads impersonating your brand

Frequently asked questions

Do I need a Facebook account? No. The Ad Library is Meta's public ad-transparency product and this reads it without logging in.

Do I need residential proxies? For pagination, yes — and the default is already set correctly. The first 30 ads come off the Ad Library page itself, which datacenter IPs serve fine, so this scraper puts that leg on the cheap lane automatically and only spends residential on the pages after it. Point the proxy at datacenter and you will still get the first 30 ads, then nothing: Meta's pagination API refuses datacenter exit IPs outright.

How does it read the Ad Library without a browser? Over the Ad Library's own two public surfaces, with plain HTTP. The page answers the first request with a short body carrying the verification step it hands its own browser; the scraper completes that step and the page loads normally, with the first 30 ads embedded in it. Pages after that come from the same pagination request the site makes when you scroll. No login, no account, no CAPTCHA solving — and if Meta's own is_captcha_required flag ever turns on, the run stops and tells you rather than trying to work around it.

Why are spend and impressions empty? Meta only publishes them for political and issue ads. See the note above.

How many ads can I get? Meta paginates indefinitely for broad searches — set Number of ads to cap the run, or 0 to collect everything it will serve.

Is this legal? The Ad Library is published by Meta specifically for public transparency and requires no login. You are still responsible for complying with Meta's Terms of Service and applicable law, particularly around how you store and use any personal data.

Your feedback

Hit a bug or want another field? Open an issue on the Issues tab.