Facebook Ad Library Scraper (Audience Data, No Login)
Pricing
Pay per event
Facebook Ad Library Scraper (Audience Data, No Login)
Scrape the Meta Ad Library for Facebook and Instagram ads by keyword, advertiser Page or Ad Library link. Get ad text, headline, link, images and videos, start date, platforms, political spend and impressions. Optional EU and UK reach with age and gender split. No login. From $0.70 per 1,000 ads.
Pricing
Pay per event
Rating
0.0
(0)
Developer
locaihost data
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Get every ad a brand, a competitor or a keyword runs on Facebook, Instagram, Messenger and Threads, straight from Meta's public Ad Library, as clean rows you can sort, chart and schedule.
What people use it for
- Competitor ad research: every live ad a rival runs, with its text, headline, offer, landing page and creative, and how long each ad has been running (long-running ads are the ones that work).
- Creative swipe files: pull hundreds of ads for a keyword ("meal kit", "crm software") with their images and videos, and filter by format, platform or start date.
- Political and issue ad monitoring: who paid, how much they spent, how many impressions, and (with audience data) the age, gender and regional split Meta discloses.
- EU and UK reach data: for ads delivered in Europe, Meta publishes reach by country, age and gender, plus who paid and who benefited. This Actor reads it for you.
- New-ad alerts: schedule it daily with "Only new ads" on and get only the ads that appeared since the last run.
Quick start
- Type a keyword (or paste a Page link under Advertisers), pick a country, and press Start.
- Or call it from code with input like this:
{"searchTerms": ["running shoes"],"advertisers": ["https://www.facebook.com/Fit2RunSuperstore", "Gymshark"],"country": "US","activeStatus": "active","maxAds": 100}
You can also search on facebook.com/ads/library with any filters and paste the link into Ad Library links.
What data can I get?
| Field | What it is |
|---|---|
adArchiveId, adLibraryUrl | The ad's Ad Library ID and link |
pageName, pageId, pageUrl, pageLikes, pageCategories | The advertiser's Facebook Page |
status, startDate, endDate, daysActive | Whether it is running, when it started and stopped, and for how many days |
platforms | Facebook, Instagram, Messenger, Audience Network, Threads, WhatsApp |
displayFormat | Image, video, carousel, dynamic creative or catalogue ad |
bodyText, headline, linkDescription, ctaText | The ad's copy and button |
linkUrl, linkDomain, caption | Where the ad sends people |
imageUrls, videoUrls, thumbnailUrls, cards | The creative files, and each card of a carousel or catalogue ad |
variationCount | How many versions of this creative the advertiser runs |
paidForBy, spend, impressions, reachEstimate | For political and issue ads: who paid, the spend range with currency, and the impressions range |
audience ($) | Political and issue ads: share of impressions by age and gender, and by region |
euTransparency, ukTransparency ($) | Ads delivered in the EU or UK: total reach, targeting (age, gender, locations) and reach by country, age and gender |
payerBeneficiary ($) | Who paid for the ad and who it was for, as disclosed in the EU |
pageDetails ($) | The advertiser's Page likes, Instagram followers and username, verification and category |
searchInput, searchCountry, scrapedAt | Which search found the ad, and when |
One real row (image links shortened):
{"adArchiveId": "1476276287628343","adLibraryUrl": "https://www.facebook.com/ads/library/?id=1476276287628343","pageId": "153470341405993","pageName": "Fit2Run, The Runner's Superstore","pageUrl": "https://www.facebook.com/Fit2RunSuperstore/","pageCategories": ["Sportswear"],"pageLikes": 55434,"status": "ACTIVE","isActive": true,"startDate": "2026-04-06","endDate": null,"daysActive": 209,"platforms": ["FACEBOOK", "INSTAGRAM"],"displayFormat": "IMAGE","bodyText": "Find the perfect fit for every run with top brands like On, HOKA, Brooks, ASICS, and Nike. Run in, shop local - or browse online anytime!","headline": "Visit Online or In Store","linkDescription": "Fuel your movement.","ctaText": "Learn more","ctaType": "LEARN_MORE","linkUrl": "https://www.fit2run.com/","linkDomain": "fit2run.com","caption": "www.fit2run.com","imageUrls": ["https://scontent-sin2-2.xx.fbcdn.net/v/t39.35426-6/668340220..."],"videoUrls": [],"cards": [],"variationCount": 4,"paidForBy": null,"spend": null,"impressions": null,"pageDetails": {"likes": 55434,"instagramFollowers": 45356,"instagramUsername": "fit2run_therunnerssuperstore","verification": "NOT_VERIFIED","category": "Sportswear shop"},"detailsStatus": "no-audience-data","searchInput": "https://www.facebook.com/Fit2RunSuperstore","searchCountry": "US","scrapedAt": "2026-11-01T12:08:31.512Z"}
How much does it cost?
You pay per ad returned. Prices per 1,000:
| Event | Free and Starter | Scale | Business |
|---|---|---|---|
| Ad | $0.70 | $0.525 | $0.385 |
| Ad with audience data ($, only with "Audience data" on, and only for ads where Meta shows audience data) | $2.00 | $1.50 | $1.10 |
Plus a one-time $0.00005 per run.
Free: advertisers that can't be found, searches with no matching ads, ads already returned by an earlier run (with "Only new ads" on), and the same ad found by two of your searches (charged once). With "Audience data" on, an ad where Meta shows no audience data is charged as a plain ad.
Apify's free $5 monthly credit covers about 7,100 ads.
Limits, stated up front
- Public ads only, logged out. This Actor reads what anyone sees on the Ad Library without an account. It never logs in and never asks for cookies.
- Audience data is only where Meta discloses it: political and issue ads (any country), and ads delivered in the EU or UK. For other ads (for example a US shop's product ads) Meta shows no spend, reach or demographics, and neither can we.
- Image and video links are signed by Meta and expire after a few days. Download the files you want to keep.
- Meta caps its own result count at about 50,000 per search. Split very large searches by country, date or keyword.
- Pages are read about 10 ads at a time, so 1,000 ads from one search take a few minutes. Several searches run side by side.
- Advertiser names are matched to the Page with that exact name among ads that mention it. For an exact match every time, paste the Page link or Page ID.
- Free plan: up to 1,000 ads per run. Any paid Apify plan removes the cap.
Only new ads, and scheduling
Turn on Only new ads and schedule the Actor (Apify Console, Schedules) daily or weekly. Each run remembers the ads it returned for the same searches and filters, and skips them for free, so you get only ads that appeared since the last run. Changing the keywords or filters starts a fresh memory.
Integrations
- API: run it and read results with the Apify API or the JavaScript and Python clients.
- n8n and Make: use the Apify node or module, pick this Actor, and pass the input above.
- Agents (MCP): add it to Apify's MCP server and call it from any MCP client.
- Exports: CSV, Excel, JSON, XML from the dataset, or straight into Google Sheets.
FAQ
How much will a run cost me? 100 ads cost $0.07 on the Starter price. The run's maximum charge (in the run options) caps it: the Actor stops cleanly when it is reached.
Can I use it through the API? Yes. Every input field works the same through the API, and results come back as JSON, CSV or Excel.
Can agents use it? Yes, through Apify's MCP server. It is paid per event, so an agent pays only for the ads it gets.
Is it legal? The Ad Library is a public transparency tool that Meta publishes for anyone to read without an account, and this Actor only reads what a logged-out visitor sees. You are responsible for how you use the data; check the rules that apply to you, especially for any personal data in ad text.
Why is a field empty? It means Meta does not show it for that ad. Spend, impressions and audience data exist only for political and issue ads and for ads delivered in the EU or UK; headline and button are missing on ads that have none; endDate is empty while an ad is still running.
Why did a run end with "No ads matched"? Nothing in the Ad Library matched your keyword with those filters. Nothing was charged. Try country "All countries", status "Active and inactive", or a broader keyword.
More from locaihost data
- TikTok Trends Scraper: TikTok's top ads, hashtags and videos.
- Google Maps Leads & Emails Scraper: local businesses with website checks.
- Website Traffic Checker: visits, sources and referral shares for any site.
- Domain to Company Data Lookup: logo, socials and role emails from a domain.
- TikTok Shop Scraper: products with exact sold counts.
Did it help? A rating on the Store helps other people find it.
Support: open an issue on this Actor's Issues tab. We answer issues within 24 hours.