Facebook Ads Library Scraper · No Login · $0.5/1k avatar

Facebook Ads Library Scraper · No Login · $0.5/1k

Pricing

from $0.35 / 1,000 ads

Go to Apify Store
Facebook Ads Library Scraper · No Login · $0.5/1k

Facebook Ads Library Scraper · No Login · $0.5/1k

Facebook Ads Library scraper: search Meta ads by keyword, advertiser page or Ad Library URL, export to Excel, CSV or JSON, no login. Ad text, creatives, call to action, dates, platforms, EU reach, advertiser info. Same fields as the official Facebook Ads Scraper. $0.50 per 1,000 ads, no start fee.

Pricing

from $0.35 / 1,000 ads

Rating

0.0

(0)

Developer

Alfalfa

Alfalfa

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Facebook Ads Library Scraper (No Login)

Search the Meta Ad Library (Facebook, Instagram, Messenger, Audience Network, Threads ads) by keyword, advertiser page or Ad Library URL and get every ad as a clean record: ad text, title, call to action, landing page, images, videos and carousel cards, start and end dates, platforms, advertiser page and, on request, the EU transparency data (total reach and the reach by country, age and gender) and advertiser details. No Facebook account, login or cookies needed. Same output fields as the official Facebook Ads Scraper at $0.50 per 1,000 ads, with no start fee and ad details included.

Export to JSON, CSV or Excel, read the dataset through the API, or run it on a schedule from n8n, Make or Zapier.

What you can do with Facebook ad data

  • Competitor monitoring: pull every active ad of a competitor's page each week and see what they promote, which landing pages they push and how long each ad has been running.
  • Creative research and swipe files: search a niche keyword ("running shoes", "meal prep", "CRM software") and collect the ads with their images, videos, hooks and calls to action.
  • Lead generation: advertisers in your niche are businesses with a marketing budget. Get their page names, page IDs, likes, Instagram handles and landing pages in one table.
  • Agency reporting: track a client's ads and the competition, with the EU reach breakdown by age, gender and country for European campaigns.
  • Political, housing, employment and credit ads: filter the special ad categories Facebook keeps for years, with spend and impression ranges where Facebook publishes them.
  • Brand protection: find ads that use your brand name in their text, including ads from resellers and scammers.

What data do you get

FieldExample
adArchiveID, url, isActive, startDateFormatted, endDateFormatted1785179045778580, the Ad Library URL, true, 2026-05-07T07:00:00.000Z
pageName, pageID, snapshot.pageProfileUri, snapshot.pageLikeCount, snapshot.pageCategoriesadvertiser page, its likes and categories
snapshot.body.text, snapshot.title, snapshot.caption, snapshot.linkDescriptionthe ad copy
snapshot.ctaText, snapshot.ctaType, snapshot.linkUrlShop now, SHOP_NOW, the landing page
snapshot.images, snapshot.videos, snapshot.cards, snapshot.displayFormatcreatives with original and resized image URLs, HD and SD video URLs, carousel cards
publisherPlatform, collationCount, categories, targetedOrReachedCountries["FACEBOOK", "INSTAGRAM"], number of ad versions, special ad categories
spend, impressionsWithIndex, currency, reachEstimateranges Facebook publishes for political and issue ads
ad_details (with Include ad details)advertiser About text, likes, Instagram followers and verification; payer and beneficiary; eu_transparency with eu_total_reach and the reach by country, age and gender; spend of political advertisers
inputUrlthe keyword, page ID or URL the ad was found from

How to scrape the Facebook Ad Library

  1. Type one or more Keywords (one per line), paste Advertiser page IDs, or paste Ad Library URLs copied from your browser (keyword searches, advertiser pages or single ads).
  2. Pick the Country, and optionally the ad status, media type, category, platforms and start date range.
  3. Set Max ads per search, switch on Include ad details if you need the EU reach data or advertiser info, and click Start. Ads stream into the dataset as they are found.

Input

FieldTypeDescription
searchQueriesarray of stringsKeywords to search for, each one is a separate search.
pageIdsarray of stringsNumeric advertiser page IDs (view_all_page_id in Ad Library URLs). All ads of the page.
startUrlsarray of { "url": ... }Ad Library URLs in the same form as the official Facebook Ads Scraper: ?q=..., ?view_all_page_id=... or ?id=.... Filters in the URL override the fields below.
countrystringISO code (US, GB, DE...) or ALL. Default ALL.
activeStatusall / active / inactiveDefault all.
mediaTypeall / image / video / meme / image_and_meme / noneDefault all.
adTypeall / political_and_issue_ads / housing_ads / employment_ads / credit_adsDefault all.
publisherPlatformsarrayfacebook, instagram, audience_network, messenger, whatsapp, threads. Empty = all.
searchTypekeyword_unordered / keyword_exact_phraseHow keywords are matched.
startDateMin, startDateMaxYYYY-MM-DDOnly ads that started in this range.
maxAdsintegerMax ads per keyword, page or URL (default 100). resultsLimit works too.
scrapeAdDetailsbooleanAdd ad_details to every ad (advertiser info, payer and beneficiary, EU reach breakdown). No surcharge.
maxConcurrencyintegerSearches run in parallel (default 5).
proxyConfigurationobjectResidential proxies by default, included in the price. Optionally pick a country or use your own proxy servers.

Example:

{
"searchQueries": ["running shoes"],
"pageIds": ["15087023444"],
"country": "US",
"activeStatus": "active",
"mediaType": "video",
"maxAds": 200,
"scrapeAdDetails": true
}

Output

One record per ad (trimmed):

{
"adArchiveID": "1785179045778580",
"adArchiveId": "1785179045778580",
"pageID": "721404351056614",
"pageId": "721404351056614",
"pageName": "IControl: Easy Widgets Themes",
"isActive": false,
"startDate": 1778137200,
"endDate": 1782716400,
"startDateFormatted": "2026-05-07T07:00:00.000Z",
"endDateFormatted": "2026-06-29T07:00:00.000Z",
"publisherPlatform": ["FACEBOOK", "INSTAGRAM", "AUDIENCE_NETWORK", "MESSENGER", "THREADS"],
"collationCount": 1,
"collationId": "974017695598335",
"categories": ["UNKNOWN"],
"isAaaEligible": true,
"snapshot": {
"body": { "text": "❤️Aesthetic presets for your phone✨" },
"title": "🥰a FREE and personalized APP for you",
"caption": "play.google.com",
"ctaText": "Install now",
"ctaType": "INSTALL_MOBILE_APP",
"linkUrl": "http://play.google.com/store/apps/details?id=com.icontrol.easy.widgets.themes",
"displayFormat": "IMAGE",
"images": [{ "originalImageUrl": "https://scontent.xx.fbcdn.net/v/t39.35426-6/...", "resizedImageUrl": "https://scontent.xx.fbcdn.net/v/t39.35426-6/..." }],
"videos": [],
"cards": [],
"pageName": "IControl: Easy Widgets Themes",
"pageProfileUri": "https://www.facebook.com/people/IControl-Easy-Widgets-Themes/61575866489402/",
"pageLikeCount": 4601,
"pageCategories": ["App page"]
},
"ad_details": {
"advertiser": {
"page": { "about": { "text": "iControl: Simple Widget Theme is a professional theme application..." } },
"ad_library_page_info": {
"page_info": { "likes": 4601, "ig_followers": null, "page_verification": "NOT_VERIFIED", "page_category": "App page" },
"page_spend": { "is_political_page": false }
}
},
"aaa_info": { "targets_eu": true, "payer_beneficiary_data": [{ "payer": "BEIJING XINMEI HUTONG TECHNOLOGY CO., LTD.", "beneficiary": "BEIJING XINMEI HUTONG TECHNOLOGY CO., LTD." }] },
"transparency_by_location": {
"eu_transparency": {
"eu_total_reach": 1208452,
"age_audience": { "min": 25, "max": 64 },
"gender_audience": "All",
"location_audience": [{ "name": "Czech Republic", "type": "countries", "excluded": false }],
"age_country_gender_reach_breakdown": [{ "country": "CZ", "age_gender_breakdowns": [{ "age_range": "25-34", "male": 25656, "female": 29841, "unknown": 1632 }] }]
}
}
},
"url": "https://www.facebook.com/ads/library/?id=1785179045778580",
"inputUrl": "nike"
}

ad_details is present only with Include ad details on. Political and issue ads carry spend, impressionsWithIndex and currency in every run.

Pricing

$0.50 per 1,000 ads ($0.0005 per ad), no start fee, ad details included, platform usage and residential proxies included. You pay only for records written to the dataset. Set the maximum budget per run in the Actor settings; the scraper stops when it is reached and never overshoots the number you typed.

Monthly spendAds
$5, which is what the free plan includesabout 10,000
$49about 98,000
$499about 998,000

For comparison, the official Facebook Ads Scraper charges $5.80 per 1,000 ads on the free plan. Discounts for Starter, Scale and Business plans apply automatically.

Switching from the official Facebook Ads Scraper

  1. Replace the Actor ID in your integration and keep your startUrls and resultsLimit; the URL formats are the same (keyword search, view_all_page_id, single ad id).
  2. Output field names are the same, including snapshot with body.text, ctaText, linkUrl, images, videos and cards, and the ad_details block with isDetailsPerAd replaced by scrapeAdDetails.
  3. Keywords and page IDs can be typed directly (searchQueries, pageIds) instead of building URLs.

Limitations

  • Only what the Ad Library shows to a visitor without a login: ads Facebook has removed from the library are not returned, and reach or spend ranges exist only for political and issue ads (plus the EU transparency block for ads targeting the EU).
  • Facebook ranks search results itself; there is no sorting option. Use the date range, status and media filters to narrow a search.
  • A single ad by id= returns that ad; the isActive flag and dates reflect the moment of the run.

FAQ

Can I scrape the Facebook Ad Library without logging in?

Yes. Everything the public Ad Library shows is collected without a Facebook account. Nothing is posted, liked or followed, and no cookies of yours are used.

How do I get all ads of one advertiser?

Paste the page ID into Advertiser page IDs (or the Ad Library URL with view_all_page_id=) and pick the country. Set Max ads per search high enough; large brands run thousands of ads.

What is the EU transparency data?

For ads shown in the European Union, Facebook publishes the total reach and the reach by country, age range and gender, plus who paid for the ad and who benefits. Switch on Include ad details and read ad_details.transparency_by_location.eu_transparency.

Can I run it every day and get only new ads?

Yes. Use Started after with yesterday's date, or filter on startDateFormatted in your workflow. Schedules and webhooks are built into Apify.

How fast is it?

About 10 to 20 ads per second per search when details are off, and 3 to 5 per second with details on. Searches run in parallel, so five keywords with 100 ads each finish in well under a minute.

The Ad Library is public data Meta publishes for transparency. Scraping publicly available data is generally legal, but you are responsible for how you use it: respect Meta's terms, copyright of the creatives and privacy laws such as GDPR. This Actor is not affiliated with Meta.

Use it from n8n, Make, Zapier or an AI agent

  • n8n, Make, Zapier: add the Apify node, pick alfalfa/facebook-ads-library-scraper as the Actor, paste the same JSON input as above and read the run's dataset in the next step. A workflow that scrapes a competitor's ads every Monday and appends the new ones to Google Sheets takes three nodes. See the Apify integrations docs.
  • AI agents and MCP (Claude, Cursor, VS Code, ChatGPT): connect the Apify MCP server with this Actor as a tool, https://mcp.apify.com/?tools=alfalfa/facebook-ads-library-scraper, and the agent can search the Ad Library by describing what it wants in plain language. See Apify MCP docs.
  • API and scheduling: every run is available through the Apify API and the Apify CLI; schedules, webhooks and dataset exports (JSON, CSV, Excel, XML) are built into the platform.

More Facebook scrapers by Alfalfa

ActorWhat it doesPrice
Facebook Posts Scraperposts of any public page or profile with reactions, comment counts, media, optional video transcripts$2 per 1,000 posts
Facebook Comments Scrapercomments and replies of any public post$0.50 per 1,000 comments
Facebook Pages Scraperpage details with email, phone, address, followers, rating, About textfrom $3.50 per 1,000 pages
LinkedIn Jobs Scraperpublic LinkedIn job postings by keyword, location, date, company or URL, with full description, salary, applicants, seniority and poster$0.50 per 1,000 jobs
YouTube Scrapervideos of a search, channel, playlist or URL list with views, likes, date, tags, plus transcripts and comments; no API key$0.50 per 1,000 rows
Facebook Events Scraperevents by search, city, page or URL, with organizer email$5 per 1,000 events

Same field names as the official Actors, no login, no start fees, one flat price each.

Not working?

Open an issue in the Issues tab of this Actor with your input and the run ID. Facebook changes its pages often; fixes usually ship within a day.