Facebook Ad Library Scraper: Meta Ads and EU Reach
This Actor returns ads from the Meta Ad Library (Facebook, Instagram, Messenger, Threads and Audience Network) by keyword, advertiser or Ad Library link, with text, headline, landing page, media, start date and days running. It is for e-commerce teams, agencies and researchers who study competitor ads, and it can add EU reach by country, age and gender.
Main price: $0.40 to $0.75 per 1,000 ads, depending on your Apify plan.
What you can do with it
- Collect every running ad of a competitor, with offers, hooks and landing pages.
- Keep winning ads only: ads running 30 days or more, or creatives used in many ads.
- Build swipe files of headlines, ad copy, calls to action and videos.
- Find brands that advertise on Meta, with their page and Instagram, for agency prospecting.
- Study EU reach by age and gender, and who paid for political ads.
What you get
Results come as rows in an Apify dataset, which you can export as JSON, CSV or Excel or read over the API. These are the main fields:
| Field | Example | Meaning |
|---|---|---|
pageName | Whatnot | Advertiser page |
adText, headline | Take your sneaker game... | Ad copy |
linkUrl, ctaText | Install now | Landing page and call to action |
startDate, daysRunning | 2026-05-13, 160 | When the ad started and how long it has run |
adsUsingThisCreative | 2 | How many ads share the same creative |
platforms | facebook, instagram, messenger | Where the ad runs |
euTotalReach | 3846070 | EU reach, with Add ad details on |
Pricing
This Actor is pay per event. Apify plan tiers set the price: the column for your Apify plan is what you pay, and higher plans pay less per result. Prices are per 1,000 events.
| Event | What is charged | Free | Starter | Scale | Business |
|---|---|---|---|---|---|
| Ad | One ad from the Meta Ad Library (ads skipped by your filters are free). | $0.75 | $0.50 | $0.45 | $0.40 |
| Ad details | EU reach, target audience, who paid and advertiser profile for one ad (only when Add ad details is on). | $0.75 | $0.50 | $0.45 | $0.40 |
Run start fee: $0.05 per 1,000 runs. Charged when the Actor starts running. Number of events charged depends on Actor memory (one event per GB, minimum one event). Prices come from the Apify Store and can change; the Actor's Apify page always shows the current ones. Platform usage is billed through your Apify account.
Run it from code
Create an API token in Apify Console (Settings, API and Integrations) and replace YOUR_APIFY_TOKEN. This call starts a run with a small input and returns the rows when it finishes. Synchronous calls suit small inputs; for big jobs, start a run and read the dataset later.
curl
curl -X POST "https://api.apify.com/v2/acts/apisamurai~meta-ad-library-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"searchQueries": [
"nike"
],
"country": "US",
"maxAdsPerSource": 20
}'Python (pip install apify-client)
from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run_input = {
"searchQueries": ["nike"],
"country": "US",
"maxAdsPerSource": 20,
}
# Start the Actor and wait for it to finish.
run = client.actor("apisamurai/meta-ad-library-scraper").call(run_input=run_input)
# Read the results from the run's default dataset.
items = client.dataset(run.default_dataset_id).list_items().items
for item in items:
print(item)JavaScript (npm install apify-client)
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const input = {
searchQueries: ['nike'],
country: 'US',
maxAdsPerSource: 20,
};
// Start the Actor and wait for it to finish.
const run = await client.actor('apisamurai/meta-ad-library-scraper').call(input);
// Read the results from the run's default dataset.
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);Client calls follow the Python and JavaScript client docs. The full input reference is on the Actor's Apify page.
FAQ
- Do I need a Facebook account or Meta API token?
- No. The Actor reads the public Ad Library without login. Only an Apify account is needed.
- How many ads can I get?
- Up to 50,000 ads per keyword, advertiser or link. Meta returns about 10 ads per page, so large runs take longer.
- Can I scrape a filtered Ad Library search?
- Yes. Set filters on facebook.com/ads/library, copy the link and paste it into Ad Library links. Every filter is kept.
- What is not charged?
- Ads skipped by the winning-ad filters. Ad details are a separate event, charged only when you turn them on.
- Do media links last?
- No. Image and video links from Meta expire after a few days, so download what you want to keep.
- Where do I report a problem?
- Email hello@apisamurai.com, or open an issue on the Actor's Apify page.