Meta Ad Library Scraper - Facebook & Instagram Ads avatar

Meta Ad Library Scraper - Facebook & Instagram Ads

Pricing

Pay per event

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

Meta Ad Library Scraper - Facebook & Instagram Ads

Scrape the Meta Ad Library without the Meta API: Facebook and Instagram ads by keyword or advertiser page, with ad text, headline, link, CTA, image, video, page details, start date, days running, platforms and EU reach. Active or inactive, any country. No account, no start fee. CSV or JSON.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Zaver

Zaver

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

19 hours ago

Last modified

Share

Meta Ad Library Scraper — Facebook and Instagram Ads by Keyword or Advertiser Page

Scrape the Meta Ad Library without the Meta API. Enter keywords or advertiser pages and get every matching Facebook and Instagram ad as a clean row: ad text, headline, link, call to action, image and video, the advertiser page with its likes and verification, start date, days running, platforms and EU reach. Active or inactive ads, any country. No account, no browser, no start fee. Pay per ad.

⭐ Keyword and advertiser-page search · ad copy, headline, CTA and landing page · image and video links · page likes and verification · start date and days running · active or inactive · 200+ countries · parallel collection · API and MCP ready

What does Meta Ad Library Scraper do?

The Meta Ad Library lists every ad running on Facebook, Instagram, Messenger and the Audience Network. This Actor searches it the way the library's own search does and returns the results as rows.

You enterYou get
Keywords, one per lineEvery ad the library returns for that search in your country
Advertiser pages (link, page ID or name)Every ad that page is running or has run
BothBoth, with repeated ads delivered once

What data does it extract?

Every ad

FieldDescription
id, urlAd Library ID and link to the ad in the library
pageId, pageName, pageUrlThe advertiser's Facebook page
pageLikes, pageVerified, pageCategoryPage size, verification and category
igUsername, igFollowersLinked Instagram account, when the page has one
body, title, description, captionAd text, headline, description and the link caption
linkUrl, ctaText, ctaTypeLanding page and call to action
imageUrl, videoUrlCreative files of the first card
creatives, creativeCountAll cards of carousel and multi-creative ads
isActive, status, startDate, endDate, daysRunningDelivery status and how long the ad has been live
platformsfacebook, instagram, messenger, audience_network
displayFormat, adType, categoriesFormat and Meta's category flags
impressionsLower, impressionsUpper, spendLower, spendUpper, currencyRanges, when Meta publishes them (political and EU ads)
euTotalReach, targetsEu, languages, bylines, fundingEntity, disclaimerTransparency data where it exists
position, query, sourceRank in the results and the keyword or page it came from

With the details add-on

FieldDescription
creativesEvery card, including ones the search result does not carry
targeting, ageGenderDistribution, regionDistributionAudience data for ads shown in the EU or UK
reachLower, reachUpper, euTotalReachReach ranges where published

Product links you paste always return the full details.

A Meta Ad Library API alternative

Meta's official Ad Library API needs a developer app, identity confirmation and, outside the EU, returns only political and issue ads. Commercial ads are visible on the library website but not through the API.

This Actor is a Meta Ad Library API alternative that reads the library the website itself reads. It works without the Meta API: no app review, no identity check, no token.

Meta Ad Library APIThis Actor
Commercial adsPolitical and issue ads only (outside the EU)All ads
AccessDeveloper app and ID confirmationAnyone
SetupApp, token, rate limitsKeywords or pages, press Start
OutputAPI objectsFlat rows: CSV, Excel, JSON

Why use this Meta Ad Library scraper

Every ad, not the first screen

The library's page shows a few dozen cards and loads more as you scroll. The Actor follows the library's own pagination until it has as many ads as you asked for.

Paste a Facebook page link, an Ad Library link with view_all_page_id, a numeric page ID, or just the page name; the best match is used.

Built for monitoring

Run it daily over the same pages and keywords. startDate and daysRunning show which ads an advertiser keeps alive, which usually means they work.

Parallel sessions

Keywords and pages are collected in parallel, each on its own session, so a list of competitors finishes in minutes.

No start fee, and failures are free

You pay per ad delivered. Keywords with no results, pages that cannot be resolved and repeated ads are free.

How to scrape the Meta Ad Library

  1. Open the Actor and type Keywords or paste Advertiser pages, one per line.
  2. Set the Country (two-letter code) and, if you want, the ad status, category, matching mode and sort.
  3. Set Max ads per keyword or page.
  4. Turn on Add ad details if you need audience data and all creative cards.
  5. Press Start, then export as CSV, Excel, JSON or XML, or read the dataset through the API.

Input examples

Competitor ads by keyword:

{
"keywords": ["protein powder", "creatine"],
"country": "US",
"adStatus": "active",
"maxAdsPerQuery": 200
}

Everything three advertisers are running in the UK:

{
"pages": ["https://www.facebook.com/nike", "15087023444", "Gymshark"],
"country": "GB",
"adStatus": "all",
"maxAdsPerQuery": 500
}
FieldTypeDescription
keywordsarraySearch terms, one per line.
pagesarrayFacebook page links, numeric page IDs, Ad Library links with view_all_page_id, or page names.
countrystringTwo-letter code of the audience country. Default US.
adStatusstringactive (default), inactive or all.
adTypestringall (default), political, housing, employment or credit.
searchTypestringkeyword (any order, default) or exact_phrase.
sortBystringrelevance (default) or impressions.
maxAdsPerQueryintegerAds per keyword or page. Default 100.
maxItemsintegerHard cap for the run. 0 means no cap.
includeDetailsbooleanAdd the detail record of each ad. Charged per ad.
concurrencyintegerKeywords and pages collected in parallel. Default 4.

Output example

{
"type": "ad",
"id": "1550534860016399",
"url": "https://www.facebook.com/ads/library/?id=1550534860016399",
"pageId": "115939511520844",
"pageName": "Perfect themes",
"pageUrl": "https://www.facebook.com/115939511520844",
"isActive": true,
"startDate": "2026-05-19",
"daysRunning": 160,
"platforms": ["facebook", "instagram", "audience_network", "messenger"],
"displayFormat": "IMAGE",
"body": "Themepack is a FREE and personalized APP with various styles of themes, weather and widgets",
"title": "Super hot widgets app!",
"caption": "play.google.com",
"linkUrl": "http://play.google.com/store/apps/details?id=com.iconchanger.widget.theme.shortcut",
"ctaText": "Install now",
"ctaType": "INSTALL_MOBILE_APP",
"imageUrl": "https://scontent.xx.fbcdn.net/v/t39.35426-6/700927950_...jpg",
"query": "widgets",
"source": "widgets",
"position": 1
}

Pricing

Pay per result. No start fee, no monthly rental, no minimum.

EventCharged forPrice
ad-scrapedeach ad delivered$1.59 / 1,000
ad-detailedeach ad that got its detail record (add-on)$3.99 / 1,000
-empty searches, unresolved pages and repeated adsfree
You exportYou pay
100 ads$0.16
1,000 ads$1.59
1,000 ads with details$5.58
10,000 ads$15.90

You are charged right after each batch lands in your dataset, so a run you stop early costs only what it delivered. Proxies are included.

Use cases

Competitor ad research

Pull every active ad of a competitor's page and read their offers, hooks and landing pages in one spreadsheet.

Creative swipe files

Search a product keyword and keep the ads that have been running longest; long-running ads are the ones that pay.

Market and niche analysis

Count advertisers and ads per keyword and country to size a market before entering it.

Agency prospecting

Find pages that advertise in your niche, with their page size and landing pages, and build an outreach list.

Brand and compliance monitoring

Watch pages that use your brand name in ads, with the proof link to the library entry.

Datasets for research and AI

Collect ad copy and creatives at scale for classification, trend analysis and model training.

FAQ

Do I need a Meta account, app or token? No. It works without the Meta API and without logging in.

Is scraping the Meta Ad Library legal? This is general information, not legal advice. The Ad Library exists to make advertising public, and the Actor collects only what the library shows to every visitor, without logging in. Page names and ad content are public, but Meta's terms restrict automated access, and how you use the data depends on the laws where you are. Use it for research and monitoring, and ask a lawyer before building a commercial product on it.

How many ads can I get for a keyword? As many as the library returns, typically up to a few thousand for broad terms. Set the per-keyword limit to what you need; more ads take more time.

Why do impressions and spend show only for some ads? Meta publishes those ranges for political and issue ads, and reach data for ads shown in the EU. Commercial ads elsewhere carry no numbers, and the Actor never invents them.

What does the country setting do? It is the audience country, as in the library's own filter. An ad shown in several countries appears in each of them.

How fast is it? About two ads per second per session; four parallel sessions bring 1,000 ads in about two minutes. The library's own pacing sets the limit, not the Actor.

Can I run it on a schedule? Yes. Daily runs over the same pages and keywords show new ads, dropped ads and how long each one lasts.

Use it from AI agents and MCP clients

This Actor is available as a tool on Apify's MCP server. Point Claude, Cursor, Windsurf, ChatGPT agents or any other MCP client at https://mcp.apify.com with your Apify token, add the tool zaver.api/meta-ad-library-scraper, and the agent can pull an advertiser's ads in the same conversation. From Python:

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("zaver.api/meta-ad-library-scraper").call(run_input={"pages": ["https://www.facebook.com/nike"], "country": "US", "maxAdsPerQuery": 100})
for ad in client.dataset(run["defaultDatasetId"]).iterate_items():
print(ad["pageName"], ad.get("title"), ad.get("linkUrl"))

Integrations

  • Apify API - start runs and fetch datasets from Python, Node.js, cURL or any HTTP client.
  • MCP server - call this Actor as a tool from Claude, Cursor, ChatGPT agents and any MCP client.
  • No-code - Make, Zapier, n8n, Google Sheets, Airtable, Slack, webhooks.
  • Schedules - run daily and append to the same dataset to build history.
  • Exports - JSON, JSONL, CSV, Excel (XLSX), XML, HTML table.

Advertising

Social

Leads


Not affiliated with, endorsed by or sponsored by Meta. This Actor reads only what the Meta Ad Library shows publicly to a logged-out visitor and does not log in. You are responsible for using the data in line with applicable laws and Meta's terms.