Facebook Ad Library Scraper: Ads by Keyword or Page | $1/1K
Pricing
from $1.00 / 1,000 results
Facebook Ad Library Scraper: Ads by Keyword or Page | $1/1K
$1 per 1,000 results, platform usage included. Ads from the public Meta Ad Library by keyword or advertiser page ID: ad text, advertiser, start date, platforms, button, link, image and video links. About 30 ads per search. No login.
Pricing
from $1.00 / 1,000 results
Rating
0.0
(0)
Developer
One Dollar Store
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Facebook Ad Library Scraper: Ads by Keyword or Advertiser Page
$1 per 1,000 ads. Platform usage included. No rental, no minimum.
New to Apify? [Create a free account](https://www.apify.com?fpr=ymnoit) (referral link). Runs from a free plan account return the first 10 results; any paid plan returns everything you ask for, up to your limit.What it costs
| Ads | Price |
|---|---|
| 1,000 | $1.00 |
| 10,000 | $10.00 |
| 100,000 | $100.00 |
Plus $0.001 per run. One flat price, platform usage included, so there is no separate compute or proxy bill. A daily run over 5 keywords that returns 150 ads costs $0.151, or about $4.53 over 30 days.
Why use it
- One flat price. The Ad Library needs a full browser, and that browser time and the proxy are included. The bill follows the number of ads and nothing else.
- No Facebook account. The actor opens the public Ad Library as a logged out visitor. No cookies, no login, no API key.
- Keyword or advertiser. Search by keyword, or by page ID to get one advertiser's ads. Filter by country, active or inactive ads, media type, and issue, election or political ads (these can carry spend and impressions).
- Wide rows, no repeats. Advertiser, page likes and categories, ad text, headline, button, link, start date, days running, platforms, format, and image and video links. An ad already returned in the run is dropped before you are charged.
Quick start
- Open the actor, type a keyword, press Start.
- Or paste this input:
{ "searchQueries": ["running shoes"], "country": "US", "maxItems": 30 }
- Download the results as JSON, CSV or Excel, or read them through the API.
Use it from code
curl -X POST "https://api.apify.com/v2/acts/one_dollar_store~facebook-ad-library-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"searchQueries": ["running shoes"], "country": "US", "maxItems": 30}'
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("one_dollar_store/facebook-ad-library-scraper").call(run_input={"searchQueries": ["meal kit"], "country": "US", "maxItems": 30})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item["startDate"], item["pageName"], item.get("bodyText", "")[:80])
Use it from an AI assistant
Claude, ChatGPT, Cursor and other assistants can call this actor through Apify's MCP server. Add it with this server address:
https://mcp.apify.com?tools=one_dollar_store/facebook-ad-library-scraper
Then ask, for example: "Find 30 active Facebook ads for meal kits in the US and tell me which advertisers have run theirs the longest."
Switching from another Facebook Ad Library actor
Keywords go in searchQueries (a list, so one run can cover many searches). Advertisers go in pageIds, as numeric page IDs or Ad Library links that contain view_all_page_id. The result limit is maxItems. The core fields are adArchiveId, pageName, bodyText, startDate, platforms and linkUrl.
Input
| Field | Type | Default | What it does |
|---|---|---|---|
searchQueries | list of text | none | Keywords to search, for example a brand, product or topic. Each one is a separate search. |
pageIds | list of text | none | Numeric Facebook page IDs, or Ad Library links with view_all_page_id, to get one advertiser's ads. |
country | text | US | Two letter country code where the ads ran, or ALL. |
activeStatus | text | active | active, inactive or all. |
adType | text | all | all, or political_and_issue_ads for ads about social issues, elections or politics. |
mediaType | text | all | all, image, video, meme or none. |
maxItems | number | 100 | Total ads for the run. Minimum 10. |
maxItemsPerTarget | number | 0 | Cap per keyword or page. 0 means no cap. |
proxyConfiguration | object | Apify data center | Proxy for the browser. Its cost is included in the price. See Limits for residential. |
Give at least one keyword or page ID. Example:
{ "searchQueries": ["running shoes", "meal kit"], "country": "US", "maxItems": 60 }
Output fields
| Field | Meaning |
|---|---|
adArchiveId, adLibraryUrl | Ad Library id and link. Good for dropping repeats across runs. |
pageId, pageName, pageUrl, pageLikeCount, pageCategories, pageProfilePictureUrl | The advertiser's page. |
isActive, startDate, endDate, activeDays | Status and dates. endDate of an active ad is the day of the run. |
platforms, displayFormat | Where it ran (Facebook, Instagram, Messenger, Threads, Audience Network, WhatsApp) and the format, such as IMAGE, VIDEO, CAROUSEL, DPA or DCO. |
bodyText, title, linkDescription, caption, ctaText, ctaType, linkUrl | Ad text, headline, link text, shown domain, button and where it leads. |
imageUrls, videoUrls, videoPreviewImageUrls, cardCount | Creative links and number of cards. |
sameCreativeAdCount, collationId | Other ads that share this creative. |
spend, impressions, currency | Issue, election and political ads only. |
containsSensitiveContent, searchQuery, country, scrapedAt | Flag, which input found the ad, and collection time. |
Empty fields are left out of a row. Pictures and videos are returned as links and never downloaded.
Sample results
Real rows from a test run on 4 October 2026 (US), with some fields left out and long links shortened to save space.
[{"adArchiveId": "4259039927704549", "pageId": "20662169998", "pageName": "Saucony", "pageLikeCount": 1641679, "isActive": true, "startDate": "2026-02-22", "activeDays": 224, "platforms": ["FACEBOOK", "INSTAGRAM", "AUDIENCE_NETWORK", "MESSENGER", "THREADS"], "displayFormat": "DPA", "bodyText": "The best of the best is all in one place. Shop our top shoes, running apparel, and retro staples.", "title": "Women's Women's Saucony Jazz Triple Black|Silver, Size 5.5 M", "ctaText": "Shop now", "searchQuery": "running shoes"},{"adArchiveId": "1279489107485101", "pageId": "103032366405927", "pageName": "HOKA", "pageLikeCount": 1220034, "isActive": true, "startDate": "2026-04-01", "activeDays": 186, "platforms": ["FACEBOOK", "INSTAGRAM"], "displayFormat": "IMAGE", "bodyText": "The legs give out. The heart doesn’t. Together We Fly Higher.", "title": "FLY HUMAN FLY™", "ctaText": "Learn more", "linkUrl": "https://www.hoka.com/en/us/fly-human-fly/?utm_source=...", "searchQuery": "running shoes"},{"adArchiveId": "904160855878574", "pageId": "101442462022002", "pageName": "Shop FlavCity", "pageLikeCount": 26697, "isActive": true, "startDate": "2026-08-21", "activeDays": 44, "platforms": ["FACEBOOK", "INSTAGRAM", "AUDIENCE_NETWORK", "MESSENGER", "WHATSAPP", "THREADS"], "displayFormat": "VIDEO", "bodyText": "Tired of flipping over protein labels only to find junk? These packets have nothing to hide. Just 25g grass-fed protein, real fruit, and functional mushrooms. Done.", "title": "Flip the Label, Feel Good", "ctaText": "Shop now", "linkUrl": "https://www.shopflavcity.com/products/build-your-own-protein-smoothie-packets", "searchQuery": "meal kit"}]
Limits
- About 30 ads per search. For a logged out visitor, Facebook shows the first page of results and refuses requests for more with a rate limit, so each keyword or page ID gives about 30 ads on the default proxy. For more ads, add more keywords, narrower keywords, more page IDs or other countries.
- Residential proxy is optional. With it, scrolling sometimes loads more ads per search, but each search is slower and costs several times more to run. The price per result stays the same.
- Keyword search is Facebook's own match, so it can include ads that do not contain the exact words.
- If Facebook shows a check page, a CAPTCHA or a login wall, that search is stopped and listed in the log. The actor never answers these.
- A search takes about 30 to 90 seconds because a full browser loads the page.
- Searches with no ads, and run summaries, are never charged.
FAQ
How much does it cost to scrape 10,000 Facebook ads? $10, plus $0.001 for each run. At about 30 ads per search, 10,000 ads takes about 330 keywords or page IDs.
Do I pay for compute or proxy on top? No. Platform usage is included in the $1 per 1,000 price.
Do I need a Facebook account? No. The Ad Library is public and the actor opens it as a logged out visitor.
How do I find a page ID?
Every row has pageId. You can also paste an Ad Library link that contains view_all_page_id.
Why are spend and impressions empty for most ads?
Meta publishes those only for ads about social issues, elections or politics. Set adType to political_and_issue_ads to get them.
Can I watch competitors over time?
Yes. Schedule a daily run with their page IDs and compare rows by adArchiveId.
Is it legal? The actor collects only public data that Meta shows to any visitor of the Ad Library. You are responsible for how you use it: follow Meta's terms and the data protection laws that apply to you, such as GDPR or CCPA.
Is this an official Facebook or Meta product? No. It is an independent tool and is not affiliated with or endorsed by Meta.
Do I need an Apify account? Yes. Actors run from an Apify account, and a free account is enough to start: it includes $5 of platform usage every month. You can sign up here. This is a referral link and it costs you nothing.
Is there a limit on the free plan? Yes. A run started from a free plan account delivers the first 10 results, then ends with a message and a link to the plans. Any paid plan returns everything you ask for, up to your own limit. The price per result is the same on every plan.
More from The One Dollar Store
Every actor here costs $1 per 1,000 results, platform usage included.
Google and search
- Google News Scraper: News articles by keyword, topic or country.
- Google Maps Leads Scraper: Local businesses with phones, websites and emails.
- Google Ads Transparency Scraper: Ads any advertiser or domain runs on Google.
Maps and local business
- 2GIS Business Scraper: Businesses in Russia, Central Asia and the UAE.
- Yandex Maps Scraper: Businesses on Yandex Maps around any city.
- IndiaMART Supplier Scraper: Indian suppliers for any product, with phones.
Social media
- Threads Scraper: Public Threads posts by keyword or profile.
- Instagram Profile Scraper: Followers, posts and engagement for public profiles.
- TikTok Hashtag Scraper: Videos, views and creators for any hashtag.
- Pinterest Pin Search Scraper: Public pins with images and outbound links.
- Telegram Channel Scraper: Posts, views and media from public channels.
- Xiaohongshu Scraper: RedNote notes from the public explore feeds.
Shopping
- Amazon Reviews Scraper: Public reviews for any Amazon product.
- AliExpress Product Scraper: Products with prices, orders sold and ratings.
- Etsy Scraper: Listings with prices, shops and badges.
- Carsales Scraper: Australian car listings with prices and specs.
Real estate
- Zillow Rentals Scraper: US rentals by city, ZIP or search link.
- Zillow Sold Homes Scraper: Recently sold US homes with prices and dates.
- Zillow Photos Scraper: Every photo of a Zillow listing.
Jobs
- Foundit Jobs Scraper: Indian jobs with salary and experience filters.
- Naukri Jobs Scraper: Naukri.com jobs by keyword, city and experience.
Company records
- Bundesanzeiger Scraper: German company filings and notices.
- US Business Registry Search: Company records from 6 US state registries.
Changelog
- October 2026: first release.