The Meta Ads Library, explained: what it shows, what the API leaves out, and how to export it
Last updated
Maintained by Datapika · We publish this product under the openclawai account on Apify. Product reference
The Meta Ads Library at facebook.com/ads/library is Meta's free public database of every active ad on Facebook, Instagram, Messenger and Audience Network, searchable by keyword or advertiser page across every country. Spend, reach and demographics appear only for ads about social issues, elections or politics, and the official Ad Library API returns only those ads plus ads delivered to the EU (transparency.meta.com, checked September 7, 2026). To export commercial ads at scale, Datapika's Meta Ad Library scraper on Apify returns every matching ad as JSON at $0.005 per ad, about 2,000 ads a minute, with no Meta token.
What does the Meta Ads Library show?
Every ad currently running on Facebook, Instagram, Messenger or Audience Network appears in the library while it is active, whatever the advertiser sells. Each entry shows the advertiser page, the start date, the platforms it runs on, every creative variation with its text, headline, call to action, image or video, and a link to the landing page. Ads about social issues, elections or politics stay in the library for seven years and carry extra disclosure: the funding entity, a spend range, an impression range and the age, gender and region split of the audience (transparency.meta.com, checked September 7, 2026).
Ads delivered in the EU carry a second layer of disclosure under the Digital Services Act: the reach per country and the targeting parameters the advertiser chose, kept for one year after the ad stops. Ordinary commercial ads shown outside the EU carry none of that. You can still see what a brand is running, how many variations it tests and how long each creative has survived, which is why the library became the default competitor research tool for performance marketers.
- All active ads on Facebook, Instagram, Messenger and Audience Network, in every country
- Every creative variation: text, headline, call to action, link, image or video
- Political and issue ads: funding entity, spend range, impression range, age, gender and region split, kept for 7 years
- EU-delivered ads: reach per country and targeting parameters under the Digital Services Act, kept for 1 year
- Commercial ads outside the EU: creative and dates only, no spend or reach
Why does the official Ad Library API not cover commercial ads?
Meta's Ad Library API is scoped to transparency obligations, not to competitor research. It returns ads about social issues, elections or politics, and ads that deliver to the EU and associated territories; it does not return an ordinary US or UK e-commerce ad (transparency.meta.com, checked September 7, 2026). Access needs a Facebook account whose identity and location Meta has confirmed, a developer app and an access token, and fields such as bylines, delivery by region and estimated audience size are documented as available only for political and issue ads (developers.facebook.com ads_archive reference, checked September 7, 2026).
So a marketer who wants every ad a competitor runs, or every ad matching a keyword, has two options: read the library page by page in a browser, or use a scraper that reads the same public search results the browser loads. Datapika's actor does the latter. It sends the library's own search queries through residential proxies, walks the result pages in parallel by media type and status, and de-duplicates by ad ID.
- Official API scope: social issue, election and political ads, plus ads delivered to the EU
- Access: confirmed identity and location, a Facebook developer app and an access token
- No commercial ads outside the EU through the API, whatever the token
- Scraper scope: everything the public library search returns, in any country or all countries at once
- No Facebook account, cookie or token is used by the scraper at any step
What does each scraped ad row include?
Every ad becomes one flat row. Identity fields are ad_id, ad_library_url, page_id, page_name, page_url, page_likes and page_verified. Timing fields are is_active, start_date, end_date and days_active, computed to today for running ads, which is the fastest way to spot the creatives an advertiser has kept alive longest. Creative fields cover the primary variation as body, title, caption, description, link_url, cta_text, cta_type, image_url and video_url, plus a creatives array with every variation and creative_count.
Distribution fields are publisher_platforms and languages. When Meta discloses them, the row also carries ad_type, impressions_low and impressions_high, spend_low, spend_high and currency, reach_low and reach_high, estimated_audience_low and estimated_audience_high, and the age_gender_distribution and region_distribution arrays. Those stay null on commercial ads, exactly as they are blank on the library page.
- Identity: ad_id, ad_library_url, page_id, page_name, page_url, page_likes, page_verified
- Timing: is_active, start_date, end_date, days_active
- Creative: body, title, caption, description, link_url, cta_text, cta_type, image_url, video_url, creatives[], creative_count
- Distribution: publisher_platforms, languages, ad_type, categories
- Disclosure, political and EU ads only: spend, impressions, reach, estimated audience, age_gender_distribution, region_distribution
How much does a Meta Ads Library scraper cost on Apify?
Prices on the Apify Store vary by more than thirty times, and the table records what each listing showed on September 7, 2026. The two largest actors, curious_coder with 39,881 users and Apify's own with 34,953, list $0.75 and $3.40 per 1,000 ads. igolaizola lists $0.30 per 1,000 results with a 4.96 rating from 9 reviews. whoareyouanas lists $10 per 1,000 ads. Datapika charges $0.005 per ad, $5 per 1,000, with no start fee, and includes the residential proxy Meta requires, every creative variation, days_active, and the political and EU disclosure fields on the same row.
Pick by what you need: the cheapest per-row listing for bulk creative dumps, or a flat single event with full fields and no token when a run has to work the first time from an agent or a schedule.
- curious_coder: $0.75 per 1,000 ads, 39,881 users, 4.76 rating from 108 reviews
- apify/facebook-ads-scraper: $3.40 per 1,000 ads, 34,953 users, 4.19 rating from 57 reviews
- igolaizola: $0.30 per 1,000 results, 2,512 users, 4.96 rating from 9 reviews
- whoareyouanas: $10 per 1,000 ads, 3,366 users, 4.71 rating from 9 reviews
- Datapika: $5 per 1,000 ads, one event, proxy included, no start fee, published September 2026
| Actor | Listed price | Users | Rating (reviews) | Notes |
|---|---|---|---|---|
| Datapika Meta Ad Library Scraper | $5 / 1,000 ads | 2 | new (Sept 2026) | Single event, residential proxy included, all countries in one run, no token |
| curious_coder/facebook-ads-library-scraper | $0.75 / 1,000 ads | 39,881 | 4.76 (108) | Largest listing in the category |
| apify/facebook-ads-scraper | $3.40 / 1,000 ads | 34,953 | 4.19 (57) | Apify's own actor; e-commerce enrichment event |
| igolaizola/facebook-ad-library-scraper | $0.30 / 1,000 results | 2,512 | 4.96 (9) | Lowest listed price |
| whoareyouanas/meta-ad-scraper | $10 / 1,000 ads | 3,366 | 4.71 (9) | Highest listed price |
| automation-lab/facebook-ads-library | $0.005 start + $0.575 / 1,000 ads | 1,618 | 4.29 (2) | Start fee per run |
Sources you can inspect
Product documentation and implementation references. These references describe supported options and billing, not independent proof of performance. Confirm current details before running; examples and estimates are not guarantees.
How to do it
- 1.To browse manually, open facebook.com/ads/library, pick a country or All, choose All ads or Issues, elections or politics, and search a keyword or advertiser name; open an ad to see its variations and, for political or EU ads, its reach and spend.
- 2.To export instead, open https://apify.com/openclawai/meta-ad-library-scraper and add your targets to queries: keywords, Facebook page URLs or page IDs, one per line.
- 3.Set country (default ALL), activeStatus (ACTIVE, INACTIVE or ALL), adType (ALL or political and issue), maxAdsPerQuery and optional formats and platforms filters; leave the residential proxy on.
- 4.Run it and read the dataset: one row per ad with creative, dates, days_active, platforms and any disclosed spend or reach. Export JSON or CSV, schedule daily runs and diff ad_id sets, or call it by API or MCP.
Questions, answered
Is the Meta Ads Library free to use?
Yes. The library at facebook.com/ads/library is public and needs no Facebook login to search or open ads. What it lacks is any export: no CSV button, no bulk download, and an API limited to political, issue and EU-delivered ads. The scraper reads the same public pages and charges $0.005 per ad row it returns.
Can I see how much a competitor spends on Facebook ads?
Only for ads Meta classifies as about social issues, elections or politics, which carry a spend range and an impression range, and only as ranges. Commercial ads show no spend anywhere, in the library or in the API. The scraper returns spend_low and spend_high when Meta discloses them and null otherwise; for commercial advertisers, days_active and creative_count are the usable proxies for what a brand is investing in.
Does the scraper need my Facebook account or a Meta developer token?
No. It reads the public Ad Library search through residential proxies that are included in the price, and it never asks for cookies, a login or an access token. The official Ad Library API, by contrast, requires a Facebook account with confirmed identity and location, a developer app and an access token, and still returns no commercial ads outside the EU.
Why does a datacenter proxy return zero ads?
Meta's Ad Library serves an empty result set to datacenter IP ranges. The actor defaults to Apify's residential proxy group and adds a free hint row rather than an error when a run is started without it. Keep the default proxy setting and the same query returns ads.
How fast is it, and how many ads can one run return?
Result pages are fetched in parallel by media type and status, so a keyword with 2,000 matching ads completes in about a minute on a 1 GB run. maxAdsPerQuery caps each query; several queries run in one job. Each ad is billed once, so duplicates across queries are removed before charging.
Which countries can I search?
Any ISO country code, or ALL for the entire library at once. Country changes which ads Meta returns, not which fields: spend and reach only ever appear on political, issue and EU-delivered ads. For EU reach data, set country to an EU code such as DE or FR so the run targets ads that carry it.