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.
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.
| Route | Returned | Ads per call | Ads returned | p50 | p95 | Cost per call |
|---|---|---|---|---|---|---|
| Apify · Meta Ads Scraper | 10 | 20 | 200 | 28,177 ms | 60,562 ms | $0.100 |
| ScrapeCreators · Meta, by page name | 10 | 30 | 298 | 4,303 ms | 5,915 ms | $0.0019 |
| ScrapeCreators · Meta, keyword search | 10 | 30 | 296 | 3,831 ms | 4,173 ms | $0.0019 |
| Route | Ads | Creative | Start | End | Placement | Status | Spend | Reach | Landing | Copy |
|---|---|---|---|---|---|---|---|---|---|---|
| Apify · Meta Ads Scraper | 200 | 100% | 100% | 100% | 100% | 100% | 0% | 0% | 98% | 99% |
| ScrapeCreators · Meta, by page name | 298 | 100% | 100% | 100% | 100% | 100% | 0% | 0% | 100% | 99% |
| ScrapeCreators · Meta, keyword search | 296 | 100% | 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
- The official route: Meta Ad Library API and the ads_archive reference.
- Third-party routes through Treg: the docs list the ScrapeCreators Facebook ad-library endpoints and Apify’s Meta scraper with current per-call prices.
- Direct: ScrapeCreators, Apify Facebook Ads Scraper.
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.