Ad API Guide

Platform guide

Meta Ad Library: official API versus third-party routes

What Meta's own Ad Library API returns for commercial advertisers, who can get access, and what the three third-party routes returned for the same ten advertisers on the same day, field by field, with prices and latency.

By Shirley Lou, Research, TregPublished 2026-09-15Facts re-checked 2026-09-15Last material change 2026-09-15

Written for people asking: What are the best Meta Ad Library API alternatives for commercial competitor research?Can I use the Meta Ad Library API to see competitors' Facebook ads?Does the Meta ad library API show spend and impressions?

Meta's official Ad Library API is the wrong tool for commercial competitor research outside Europe: its own documentation says ads that did not reach the EU are returned only if they are political or issue ads, and access requires the political-advertiser identity confirmation at Facebook.com/ID plus a developer app. For ordinary commercial ads the usable routes are third-party. On 15 September 2026 ScrapeCreators returned 30 active ads per page for each of ten advertisers at $0.0019 a call in about 4 seconds, by page name or by keyword; Apify's Meta scraper returned the same ads with more fields at $0.10 per 20 ads and 28 seconds a call. Every route returned creative, dates, placements, status, landing page and copy; none returned spend or reach, because Meta publishes those only for political ads and for EU-delivered ads.

The official API, as Meta describes it

Everything in this section is quoted from Meta’s own pages on 15 September 2026; the URLs are inline.

Who can access it. Step one is identity confirmation: “Go to Facebook.com/ID and follow the confirmation process required to run ads about social issues, elections or politics”, which “can take several days”. Then a Meta for Developers account, an app, and a role on that app. Every request carries an OAuth token. Source: facebook.com/ads/library/api and the ads_archive reference.

Which ads it returns. Two buckets: political and issue ads delivered anywhere in the world in the past seven years, and “ads of any type that were delivered to the United Kingdom or European Union during the past year”, plus the special categories of employment, housing and financial products. The reference is explicit about the rest: “Ads that did not reach any location in the EU will only return if they are about social issues, elections or politics.” A US-only commercial campaign is not in the API at all.

Which fields. For every returned ad: library ID, creative, page, delivery dates and placement (Facebook, Instagram, Audience Network, Messenger, WhatsApp, Oculus, Threads, streaming services). Spend range, impressions range, demographic distribution, delivery by region and estimated audience size are restricted to political and issue ads. EU and UK ads add total EU reach, age, gender and country reach breakdowns, target ages, gender and locations, and beneficiary and payer names. Source: ads_archive reference and release notes.

Cost and limits. No fee is stated. A rate limit exists (error 613) but its number is not published for this endpoint.

So for a growth team in the US researching US competitors, the official API returns nothing. For EU-targeted competitors it returns more than any third-party route can, including targeting and reach, once you have cleared identity confirmation.

The third-party routes, measured

Ten advertisers, one call each, first page, 15 September 2026. Raw responses on the evidence page.

Meta routes, cohort v1. Apify bills per result; its cost is per 20-ad page. 3 rows. Download CSV ↓
RouteReturnedAds per callAds returnedp50p95Cost per call
Apify · Meta Ads Scraper102020028,177 ms60,562 ms$0.100
ScrapeCreators · Meta, by page name10302984,303 ms5,915 ms$0.0019
ScrapeCreators · Meta, keyword search10302963,831 ms4,173 ms$0.0019
Share of returned ads carrying each field, Meta routes. 3 rows. Download CSV ↓
RouteAdsCreativeStartEndPlacementStatusSpendReachLandingCopy
Apify · Meta Ads Scraper200100%100%100%100%100%0%0%98%99%
ScrapeCreators · Meta, by page name298100%100%100%100%100%0%0%100%99%
ScrapeCreators · Meta, keyword search296100%100%100%100%100%0%0%99%99%

Reading the tables:

  • ScrapeCreators, by page name or by keyword, is the same dataset. Thirty active ads a page with a cursor for the rest, library ID, creative, dates, placements, active flag, landing URL and body copy on every ad. The library totals are in the response too: HubSpot had 191 active ads, monday.com 667, Shopify 4,986 on the run date.
  • Apify’s Meta Ads Scraper returns the same ads with more fields, most of them empty for these advertisers. It adds page like counts, categories, EU reach, spend and currency. On 200 ads across ten US-targeted advertisers, spend was null on all 200 and EU impressions on all 200, which is exactly what Meta’s field rules predict. Its price is 50 times ScrapeCreators per page and each call took 28 seconds at the median, over a minute at p95. It earns that when you want a whole library paginated in one run or when your competitors deliver in the EU.
  • Nothing returned spend or reach. Not because the routes are weak but because Meta does not publish them for commercial ads outside the EU. A vendor that shows you competitor spend from the Meta library is estimating it.

Who each route fits

  • Weekly check on competitors’ creatives, any market: ScrapeCreators by page name, paginate with the cursor. One credential, cents a week.
  • EU competitors, need targeting and reach: the official API if you can clear identity confirmation; otherwise Apify with details per ad, which reads the same EU fields.
  • Political or issue ads: the official API, which is what it was built for and where spend and impressions exist.
  • One credential for Meta, Google, TikTok and LinkedIn together: Treg routes the ScrapeCreators and Apify endpoints above with a receipt per call; see the choose an API page for the cross-platform comparison.

What this page cannot tell you

Ten advertisers, first page each, US-targeted. An EU cohort would show Apify’s reach and targeting fields populated. Meta’s rate limit for the official endpoint is unpublished, and the official route was not called here because this account has not completed identity confirmation. Creative URLs expire.

Next step


Spotted an error or a changed price? Email corrections@adapiguide.com with the page URL and a source. Corrections are logged on the corrections page.