Meta Ad Library API: What It Covers and What It Leaves Out
Most people who search for the Meta Ad Library API want to see competitors' ads in bulk. The official API is narrower than the website, and the difference surprises people. Here is exactly what each covers, from Meta's own documentation.
The website versus the API
On the website, Meta says "People can search for all active ads running across products from Meta" Ad Library tools. The API is different. Meta describes it as a tool for "deeper analysis of ads about social issues, elections or politics", plus ads that deliver to the EU and associated territories source. The ads_archive reference spells it out: ads that reached no EU location are returned only if they are about social issues, elections or politics ads_archive reference.
| Ad | Website | Official API |
|---|---|---|
| Commercial ad, running, shown in the EU | Yes | Yes |
| Commercial ad, running, shown only outside the EU (for example only in the US) | Yes, while active | No |
| Commercial ad, stopped, shown in the EU | Kept one year after its last impression | Yes, within that year |
| Political or social issue ad, anywhere | Kept 7 years, active or not | Yes |
Retention periods are from Meta's Ad Library tools page source.
Which fields you get
From the ArchivedAd reference ArchivedAd reference:
impressions,spend,demographic_distributionanddelivery_by_region: political and issue ads only.eu_total_reach: ads delivered to the EU.target_ages: ads delivered to the UK and EU, and political ads in Brazil.
So for a US competitor's commercial ads, the API gives you nothing, and for an EU one it gives you reach but not spend.
Search rules worth knowing
search_termsis limited to 100 characters, and spaces act as AND source.search_page_idstakes up to 10 Page ids per request.- Keywords are not translated. Search in the language of the ads.
ad_active_statusdefaults to ACTIVE. Set ALL to include stopped ads.- Exceeding the rate limit returns error 613.
curl -G "https://graph.facebook.com/v27.0/ads_archive" \
--data-urlencode "search_terms=running shoes" \
--data-urlencode "ad_reached_countries=['DE']" \
-d "ad_active_status=ALL" \
-d "fields=id,page_name,ad_delivery_start_time,eu_total_reach" \
-d "access_token=YOUR_TOKEN"
A change for EU political ads
Since 6 October 2025, Meta no longer delivers political, electoral and social issue ads in the EU, citing the EU's TTPA regulation Meta newsroom. The archive of earlier EU political ads remains, but it is no longer growing.
Other official options
- Ad Library Report: a downloadable, aggregated view of political and issue ads by country source.
- Branded content: authorized API users can also analyze active, public branded content on Facebook and Instagram source.
Common mistakes with the API
- Expecting US commercial ads. If you search with
ad_reached_countriesset to US and get only political ads, the API is working as documented. - Forgetting stopped ads. The default status is ACTIVE, so history needs
ad_active_status=ALL. - Searching in English for German ads. Keywords are not translated.
- Reading spend as zero. Missing spend on a commercial ad means not disclosed, not free.
Researching competitors' ads in practice
- Find the competitor's Page in the Ad Library and filter by country.
- List active ads. Note format, offer, headline and landing page.
- Sort by start date. Ads running for 60 days or more are likely working.
- Group ads by message theme. Count how many variants each theme has; more variants usually means more budget.
- Check again monthly and log new and stopped ads.
How to do it with ScrapeIO
The Facebook Ad Library search API searches ads by keyword with country, status, media type and date filters, and can sort by impressions or by most recent. The Facebook Ad Library company ads API lists one advertiser's ads, the company search API finds the advertiser, the ad details API opens one ad, and the ad transcript API returns what a video ad says. Each call is 1 credit.
Sources
Checked on 8 November 2026 from each vendor's own pages. Prices and limits change; follow the links before you decide.
- https://transparency.meta.com/researchtools/ad-library-tools/
- https://developers.facebook.com/docs/graph-api/reference/ads_archive/
- https://developers.facebook.com/docs/graph-api/reference/archived-ad/
- https://about.fb.com/news/2025/07/ending-political-electoral-and-social-issue-advertising-in-the-eu/
100 free credits, no card. Credits never expire.
Get API key