Facebook Ads Library Scraper: Meta Ads by Keyword or Page avatar

Facebook Ads Library Scraper: Meta Ads by Keyword or Page

Pricing

from $0.17 / 1,000 ads

Go to Apify Store
Facebook Ads Library Scraper: Meta Ads by Keyword or Page

Facebook Ads Library Scraper: Meta Ads by Keyword or Page

Meta Ad Library ads by keyword, Page or Ad Library link, with text, images, videos and dates. $0.25 per 1,000 ads. Carousel cards, platforms and political spend.

Pricing

from $0.17 / 1,000 ads

Rating

0.0

(0)

Developer

Luzi

Luzi

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

11 minutes ago

Last modified

Share

Get the ads in the Meta Ad Library (Facebook, Instagram, Messenger, Threads, WhatsApp and Audience Network) for any words, any Facebook Page or any Ad Library link, with the Ad Library's main filters, for $0.25 per 1,000 ads and no start fee. No Facebook account, login or cookies needed.

Tested daily. Latest check: 4,946 ads from five searches in 13 minutes: a Page's ads, political ads with their spend, and searches filtered by country, media type, platform, dates and language.

What does this Actor do?

You give it searches (the words you would type in the Ad Library's search box), Facebook Page links, Ad Library Page ids, or Ad Library links. For each one it reads the Ad Library's results page after page, as you would by scrolling, and saves one row per ad until it reaches your limit or the end of the results.

Each row comes with:

  • the ad's Library id and link, its place in the results, whether it is running now, the day it started and the last day it was shown
  • the Page that runs it: id, name, link, picture, likes and categories
  • the platforms it runs on (Facebook, Instagram, Messenger, Threads, WhatsApp, Audience Network) and its format (image, video, carousel, catalogue)
  • the ad itself: text, title, caption, link, link description and button, every image and video (HD and SD), and every card of a carousel or catalogue ad with its own text, link, price line and image
  • how many versions of the ad run (the Ad Library groups them)
  • for ads about social issues, elections or politics: who paid for it (with the contact details on the disclaimer), spend, impressions, reach and currency, as ranges the Ad Library shows
  • Meta's own flags: AI or digitally created media, sensitive content, financial-services rules
  • the search, Page or link it came from, with the Ad Library link for it

Why use it?

  • The Ad Library's main filters. Country, active or not, ad category, media type, exact phrase, most recent first, a date range, platforms and languages, or paste an Ad Library link with the filters you already picked.
  • A Page's link is enough. Paste facebook.com/
  • Carousel and catalogue ads in full. Each card with its own product title, price line, link and image, not only the ad's first frame.
  • Political ads with their paper trail. Spend, impressions, reach and the "Paid for by" disclaimer with its address, phone, email and website.
  • No start fee. You pay per ad saved, nothing per search or per run.
  • Use the data anywhere. Download as JSON, CSV or Excel, or send it to your own tools through Apify's API and integrations.

How to use it

  1. Type one or more searches into Searches, or paste Facebook Page links or Ad Library links into Links.
  2. Optionally, set Max ads per search, Country and the other filters.
  3. Click Start. When the run ends, open the Output tab to view the ads or download them.

Input

FieldWhat it doesDefault
Searches (searchQueries)Words to search the Ad Library for, one search each—
Links (startUrls)Facebook Page links, Ad Library Page ids, or Ad Library links (a search or a Page's ads)—
Max ads per search (maxAdsPerSearch)Stop each search, Page or link after this many ads (1 to 10,000)100
Country (country)Ads shown in this country ("US", "GB", "VN"), or ALLALL
Active or not (activeStatus)active, inactive or allactive
Ad category (adType)all, or political_and_issue_ads (issues, elections or politics)all
Media type (mediaType)all, image, meme, image_and_meme, video or noneall
Exact phrase (exactPhrase)Match the search words as one exact phraseoff
Sort by (sortBy)relevance or most_recentrelevance
Shown from / until (startDate, endDate)Only ads shown in this date range (YYYY-MM-DD)any
Platforms (platforms)Any of facebook, instagram, audience_network, messenger, threads, whatsappall
Languages (languages)Two-letter language codes ("en", "es")all

Give at least one search or one link. Example input:

{
"searchQueries": ["running shoes"],
"startUrls": ["https://www.facebook.com/nike"],
"country": "US",
"activeStatus": "active",
"maxAdsPerSearch": 200
}

Output

One row per ad. An example, with made-up values:

{
"ad_archive_id": "1234567890123456",
"ad_library_url": "https://www.facebook.com/ads/library/?id=1234567890123456",
"position": 1,
"page_name": "A Shoe Brand",
"page_id": "100000000000001",
"page_url": "https://facebook.com/ashoebrand",
"page_profile_picture_url": "https://scontent.xx.fbcdn.net/…",
"page_like_count": 123456,
"page_categories": ["Shoe store"],
"page_is_deleted": false,
"is_active": true,
"start_date": "2026-09-01T07:00:00.000Z",
"end_date": "2026-10-17T07:00:00.000Z",
"total_active_time": null,
"publisher_platforms": ["FACEBOOK", "INSTAGRAM"],
"display_format": "IMAGE",
"body_text": "The ad's text.",
"title": "The ad's headline",
"caption": "ashoebrand.example",
"link_url": "https://ashoebrand.example/",
"link_description": null,
"cta_text": "Shop now",
"cta_type": "SHOP_NOW",
"images": [
{
"original_image_url": "https://scontent.xx.fbcdn.net/…",
"resized_image_url": "https://scontent.xx.fbcdn.net/…"
}
],
"videos": [],
"cards": [],
"collation_id": null,
"collation_count": null,
"categories": ["UNKNOWN"],
"contains_digital_created_media": false,
"paid_for_by": null,
"spend": null,
"impressions_text": null,
"reach_estimate": null,
"search_query": "running shoes",
"search_page_id": null,
"search_country": "US",
"search_url": "https://www.facebook.com/ads/library/?active_status=active&ad_type=all&country=US&…"
}
FieldWhat it holds
ad_archive_idThe ad's id in the Ad Library
ad_library_urlA link to the ad in the Ad Library
positionIts place in the search's results, 1 = the first
page_name, page_idThe Page that runs the ad
page_urlA link to the Page
page_profile_picture_urlThe Page's picture
page_like_countThe Page's likes
page_categoriesThe Page's categories
page_is_deletedWhether the Page was deleted
is_activeWhether the ad is running now
start_dateThe day it started (ISO date)
end_dateThe last day it was shown (today for a running ad)
total_active_timeSeconds it ran, when the Ad Library gives it (some political ads)
publisher_platformsWhere it runs: FACEBOOK, INSTAGRAM, MESSENGER, THREADS, WHATSAPP, AUDIENCE_NETWORK
display_formatIMAGE, VIDEO, CAROUSEL, DCO (several versions), DPA (a product catalogue), MULTI_IMAGES …
body_textThe ad's text
title, captionThe headline and the link's caption
link_url, link_descriptionWhere the ad links to, and the line under the headline
cta_text, cta_typeThe button ("Shop now") and its kind
imagesEach image: full size and resized
videosEach video: HD and SD links and the preview image
cardsA carousel or catalogue ad's cards, each with its text, title, link, price line, button, image or video
extra_texts, extra_links, extra_images, extra_videosThe other versions' texts, links, images and videos, when the ad has them
collation_id, collation_countThe group of versions the ad belongs to, and how many there are
categoriesThe Ad Library's categories for the ad (POLITICAL, UNKNOWN …)
contains_digital_created_mediaWhether Meta marks it as AI-made or digitally created
contains_sensitive_contentWhether Meta marks it as sensitive
is_reshared, root_reshared_post, branded_content, eventA reshared post, branded content or an event the ad promotes, when it does
byline, disclaimer_labelThe "Paid for by" line
paid_for_byWho paid for an issue, election or political ad
disclaimerThe disclaimer's details: the payer, the date it was submitted, its address, phone, email and website
spend, currencyAn issue, election or political ad's spend, as the range the Ad Library shows
impressions_text, impressions_indexIts impressions, as the range shown
reach_estimateIts estimated reach, as the range shown
targeted_or_reached_countriesThe countries it reached, when the Ad Library gives them
country_iso_code, brazil_tax_id, additional_info, ec_certificatesWhat the Ad Library shows for some countries' ads
gated_type, hide_data_status, state_media_run_label, report_count, has_user_reported, menu_itemsThe Ad Library's own marks on the ad
is_aaa_eligible, is_deemed_finserv, finserv_limited_delivery, tw_anti_scam_limited_deliveryMeta's rules that apply to the ad
ad_idThe ad's delivery id, when the Ad Library shows it
search_queryThe search it came from
search_page_idThe Page it came from
search_countryThe country searched
search_urlThe Ad Library link for that search
input_urlThe link you gave, when it came from one

Spend, impressions and reach are shown by the Ad Library only for ads about social issues, elections or politics; other ads leave them empty. Not included: the EU audience breakdown (age, gender and country reach of ads shown in the EU) and the Page's own "About" details, which the Ad Library shows only on an ad's own page.

How much does it cost?

You pay for what you get:

  • $0.25 per 1,000 ads ($0.00025 an ad). Each ad is charged once per run.
  • No start fee, and nothing per search.

So 1,000 ads cost $0.25. If you set a maximum cost for a run, the Actor stops when it reaches it and keeps every ad saved so far.

How long does a run take?

About 20 to 35 seconds for two searches of up to 50 ads each, and 11 to 13 minutes for five searches of up to 1,000 ads each (about 4,950 ads).

Good to know

  • About 10 ads a page. The Ad Library lists ads 10 at a time, so a large search takes a while: 11 to 13 minutes for five searches of 1,000 ads read together.
  • An ad found by two searches is saved and charged once, under the search that reached it first, so two searches can save fewer ads than their two maximums.
  • A pasted Ad Library link keeps its own filters. The fields below fill in only what the link leaves out.
  • Check your links first. A link that is not a Facebook Page or an Ad Library search stops the run before anything is read, and the message names it. A single ad's link (?id=) is not a search.
  • One search that cannot be read does not stop the run. The others carry on, and the run's status lists the ones that could not be read.
  • A search with no ads is not an error. It saves nothing.

FAQ

Do I need a Facebook account or cookies? No. The Actor reads what anyone can see in the Ad Library.

Can I get every ad a competitor runs? Yes. Paste the competitor's Facebook Page link (or its Ad Library Page id) under Links, set Active or not to all for their past ads too, and raise Max ads per search.

Can I run it from my own code, on a schedule, or with other apps? Yes. Like any Apify Actor, you can start it through the Apify API, run it on a schedule, and connect it to other apps with Apify's integrations and webhooks.

The Ad Library is a public transparency tool: anyone can see these ads without logging in. Check Meta's terms and the laws that apply to you before you use the data, and only collect personal data (such as a disclaimer's contact details) when you have a legitimate reason to. If you are unsure, ask a lawyer.

Support

Found a problem or missing a feature? Open an issue on the Issues tab and include the run's link.


This Actor is not affiliated with, endorsed by or sponsored by Meta or Facebook.