Facebook Ads Library Scraper (Public, No Login) avatar

Facebook Ads Library Scraper (Public, No Login)

Pricing

Pay per usage

Go to Apify Store
Facebook Ads Library Scraper (Public, No Login)

Facebook Ads Library Scraper (Public, No Login)

Pull live and inactive ads from Meta's public Ads Library by keyword or advertiser page. Each row carries library ID, advertiser, ad copy, creative URL, started date, platforms, country, ad type, and active status. JSON. Pay per ad row.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Ken M

Ken M

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Pull live and inactive ads from Meta's public Ads Library by keyword or by advertiser page. No cookies. No login. No app review or token rotation. Each row ships the library ID, advertiser, ad copy, creative URL, started date, platforms, country, ad type, and active status. Pay per ad row.

Built for competitive intel teams, media buyers, performance marketing agencies, brand monitoring, PR research, and political/issue analysts who need fast access to every ad an advertiser is running on Facebook, Instagram, Audience Network, and Messenger.

Keywords this actor ranks for: facebook ads library scraper, meta ads library api, instagram ads scraper, ad creative intelligence, competitor ad spy, ad creative database, facebook ad copy scraper, political ad scraper, ad transparency api, magicbrief alternative, bigspy alternative, adespresso alternative, adsparo alternative.


Why this actor

Other Ads Library scrapersThis actor
Need a Meta developer app and reviewZero auth, zero approval
Stop at 100 ads then hit a paywallConfigurable cap up to 2000 ads per query
Return raw page HTMLLibrary ID, advertiser, copy, creative, platforms, dates parsed
Charge per seat per monthCharge per ad row, no contract
Fail silently when the SPA reflowsAnchored on the public "Library ID:" label, not brittle class names

How it works

flowchart LR
A[Keyword or page] --> B[Build Ads Library URL<br/>per country and ad type]
B --> C[Open the public SPA<br/>no auth needed]
C --> D[Scroll the result list<br/>respect maxAdsPerQuery]
D --> E[Anchor on Library ID label<br/>walk up to ad card]
E --> F[Parse advertiser, copy,<br/>platforms, creative, dates]
F --> G[Push one row per ad]
G --> H[(JSON CSV Excel API)]

The actor anchors extraction on the public "Library ID:" label that Meta renders on every ad card. That makes it resilient to the React class name churn that breaks most Ads Library scrapers within weeks.


What you get per row

flowchart LR
R[Ad row] --> R1[Identity<br/>libraryId snapshotUrl]
R --> R2[Advertiser<br/>name pageId pageUrl]
R --> R3[Creative<br/>adText ctaText landingUrl]
R --> R4[Media<br/>creativeImageUrls creativeVideoUrls]
R --> R5[Reach<br/>platforms country]
R --> R6[Lifecycle<br/>startedAt lastSeenActiveAt isActive variations]

Pipe straight into a creative swipe file, an offer benchmarking sheet, or a spend tracker.


Quick start

Spy on a category by keyword

{
"queries": ["meal kit", "smart mattress"],
"countries": ["US"],
"maxAdsPerQuery": 200
}

Pull every ad a competitor is running

{
"pageUrls": [
"https://www.facebook.com/Nike",
"https://www.facebook.com/Stripe"
],
"countries": ["US", "GB"],
"maxAdsPerQuery": 500
}

Track political and issue ads

{
"queries": ["election 2026"],
"adType": "POLITICAL_AND_ISSUE_ADS",
"countries": ["US"],
"maxAdsPerQuery": 300
}

Sample output

{
"libraryId": "857432109876543",
"snapshotUrl": "https://www.facebook.com/ads/library/?id=857432109876543",
"advertiserName": "Nike",
"advertiserPageId": "15087023444",
"advertiserPageUrl": "https://www.facebook.com/Nike",
"adText": "Just Do It. Lace up the new Pegasus 41 and run further than yesterday. Free shipping for members.",
"ctaText": "Shop Now",
"landingUrl": "https://www.nike.com/w/pegasus-41",
"creativeImageUrls": [
"https://scontent.fbcdn.net/v/t39.../pegasus41_hero.jpg"
],
"creativeVideoUrls": [],
"platforms": ["Facebook", "Instagram"],
"startedAt": "Apr 12, 2026",
"lastSeenActiveAt": null,
"isActive": true,
"variations": 14,
"country": "US",
"adType": "ALL",
"activeStatusFilter": "all",
"searchQuery": null,
"searchPageId": "15087023444",
"scrapedAt": "2026-05-10T07:30:00.000Z"
}

Who uses this

RoleUse case
Performance marketerBuild a creative swipe file from competitor ads in your category
Media buyerTrack which formats and CTAs a brand is running this quarter
Brand strategistWatch positioning shifts in your category month over month
AgencySource winning hooks for client campaigns
PR researchMonitor a brand's paid messaging during a crisis or launch
Political analystPull funder, copy, and lifecycle data on issue ads
InvestorRead ad cadence as a leading signal of growth stage

Input reference

FieldTypeWhat it does
queriesstring[]Search keywords. One Ads Library search per query per country.
pageUrlsstring[]Advertiser page URLs or numeric page IDs. Pulls every ad on each page.
countriesstring[]ISO country codes. Default ['US'].
adTypestringALL, POLITICAL_AND_ISSUE_ADS, HOUSING_ADS, EMPLOYMENT_ADS, CREDIT_ADS.
activeStatusstringall, active, inactive.
maxAdsPerQueryintegerMax rows collected per search before scrolling stops. Default 100.
concurrencyintegerSearches processed in parallel. Three is the safe default for Meta.
proxyConfigurationobjectApify proxy. Residential is required at any meaningful volume.

API call

curl -X POST \
"https://api.apify.com/v2/acts/YOUR_USER~facebook-ads-library-scraper/runs?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"queries": ["meal kit"],
"countries": ["US"],
"maxAdsPerQuery": 100
}'

Pricing

The first 20 ad rows per run are free so you can validate output before paying. After that, each ad row is charged. No surprise add on charges.


FAQ

Do I need a Meta developer account or app review?

No. The actor only touches Meta's public Ads Library surface. The official Meta Ad Library API requires app review, an access token, and rate-limits new accounts hard. This actor sidesteps all of that.

What ad types are supported?

The full Ads Library surface: ALL (commercial), POLITICAL_AND_ISSUE_ADS, HOUSING_ADS, EMPLOYMENT_ADS, and CREDIT_ADS. Political ads carry funder and spend-range fields; commercial ads carry copy, creative, platforms, and lifecycle fields.

Can I get spend or impressions data?

Spend ranges and impression ranges are only published by Meta for political and issue ads. For commercial ads, the public surface ships ad copy, creative, runtime, platforms, and variation count, but no spend.

Can I track a brand over time?

Yes. Schedule weekly runs against the same advertiser pages. Diff the libraryId set against the prior run to detect new and stopped ads.

Why not use the official Ad Library API?

The official API requires app review, a Meta developer account in good standing, ID verification, and is rate-limited per token. New accounts often wait weeks for approval. This actor returns the same public data without any of that overhead.

How do I find an advertiser's page ID?

Open the brand's Facebook page and copy the URL. The actor accepts both the slug form (facebook.com/Nike) and the numeric form (facebook.com/15087023444).

Is scraping the Ads Library allowed?

This actor reads HTML any anonymous web visitor can see. Meta publishes the Ads Library specifically as a transparency tool. Respect Meta's terms and rate limit sensibly. Do not redistribute personal data you have no lawful basis to process.


  • Facebook Marketplace Deal Finder — pull live Marketplace listings with price, location, and seller
  • Threads Intelligence — pull public Threads posts and creator metrics
  • TripAdvisor Scraper — pull hotel, restaurant, and attraction listings with reviews
  • E-commerce Scraper Pro — pull product listings across major shop platforms
  • Lead Enrichment Pipeline — multi source enrichment for a list of company domains