Meta Ad Library API Limits: The Fields It Won't Return

10 min read

Reviewed by

Daily Intel Research Team

Evidence base

VSLs, ads, funnels, UTMs, transcripts, and market pattern review

Coverage

14+ languages · blackhat, greyhat, and whitehat patterns

8,226+

Videos & Ads

+50-100

Fresh Daily

$29.90

Per Month

Full Access

12.5 TB database · 72+ niches · cancel anytime

What does the Ad Library API actually return?

The API hands you creative text, delivery dates, and page identity for almost any active ad running on Facebook, Instagram, Messenger, or Audience Network. It does not hand you spend, impressions, or audience breakdowns unless Meta has classified the ad as political or a social issue. For a standard e-commerce or affiliate campaign, that means copy and timing only, nothing about budget or reach.

Creative fields include ad_creative_bodies for the primary text, plus link captions, titles, and descriptions when the ad uses a link-style format. Video and carousel ads frequently return several of these fields empty, because Meta only parses text it can extract cleanly from the creative structure. The ad_snapshot_url field gives you a rendered preview page hosted by Meta, not a raw image or video file you can download directly.

Two fields function reliably across almost every ad type regardless of category: page_id and ad_delivery_start_time. Everything tied to money or audience composition narrows sharply the moment an ad drops out of the political and issue-ads bucket.

FieldReturned by API?Coverage caveat
ad_creative_bodies (primary text)YesCan return null on video-only or image-only creative
Link captions, titles, descriptionsYesOnly populated for link-style creative; carousel and video ads often blank
ad_snapshot_urlYesLinks to a Meta-hosted preview page, not a downloadable asset
Landing page / destination URLNoNot exposed as a field under any query
spendPolitical/social-issue ads onlyCommercial and affiliate ads return no spend field at all
impressionsPolitical/social-issue ads onlySame restriction as spend
demographic_distributionPolitical/social-issue ads onlyAge and gender breakdown withheld for standard commercial ads
delivery_by_regionPolitical/social-issue ads onlyRegional spend split unavailable outside this category
ad_delivery_start_time / stop_timeYesPresent for essentially all ad types while active or shortly after
page_id / page_name / bylinesYesOne of the few fields with full, reliable coverage
publisher_platformsYesFacebook, Instagram, Messenger, Audience Network only

Why is the destination URL missing from the response?

Meta never exposes the destination URL as a field, in the API or in the underlying data model the Ad Library draws from. The ad_snapshot_url only points to a static, Meta-hosted preview of the ad, and that preview frequently strips or obscures the outbound link a viewer would actually click. If you need the URL an ad sends traffic to, the API alone will not get you there.

Part of the reasoning is competitive protection. Publishing every advertiser's click-through destination would turn the Library into a real-time funnel map for anyone researching a competitor's offer, and Meta has consistently framed the Library as a transparency tool for ad content and spend disclosure, not a lead-generation shortcut for other advertisers. Many campaigns also route through redirect domains or rotating URLs that change per click, so a single static field would misrepresent an ad pointing to five different pages depending on geography or time of day.

Treat the absence as permanent policy rather than an oversight Meta is likely to correct. Nothing in how the API has evolved since 2019 suggests a destination-URL field is coming, and building a research workflow around waiting for one wastes time better spent on other reconstruction methods.

Which ads never enter the archive in the first place?

Ads that Meta rejects during review, that run only to a narrow custom or lookalike audience, or that stop delivering before the indexing pipeline catches them can disappear without ever surfacing in the archive. Political and social-issue ads are the exception, since disclosure rules force retention regardless of reach. For everything else, absence from the archive tells you nothing about whether the ad ran; it may simply have run too briefly, too narrowly, or too recently for Meta to have logged it yet.

Retention windows compound the problem. Meta has not published an exact figure for how long non-political ads stay archived after they stop running, and the number appears to vary by circumstance, so treat anything you read as a rough range of a few weeks to a few months rather than a fixed rule, and verify it against a live test before relying on it. Political and social-issue ads carry a multi-year retention commitment, commonly cited in the range of 7 years since the Library's 2018 launch, but that commitment does not extend to a typical affiliate offer or e-commerce promotion.

This matters most for affiliate research specifically. Low-budget, narrowly targeted, or quickly rotated affiliate creative fits exactly the profile most likely to churn out of the archive before an analyst thinks to look for it, and a takedown for a policy violation removes the historical record along with the ad. Ask the API what an affiliate network ran six months ago and it will often show nothing, not because the campaign didn't exist but because the window already closed.

How do rate limits and regional scoping cap your coverage?

Rate limits and mandatory country scoping together mean you rarely pull a complete global picture in one pass. Every query requires an ad_reached_countries parameter, and Meta's handling of a broad or all-countries scope differs from a single-country query in ways that affect which fields populate, so confirm current behavior against your own test call rather than trusting documentation from a prior API version. Query country by country and your call volume multiplies fast.

  • Standard Graph API throttling applies, with your allowed call volume tied to your app's overall usage tier rather than one published number, so treat any specific per-hour figure you see as unverified until you test it on your own app.
  • Access requires an approved developer account, and identity verification is required for querying political and social-issue ad categories in several regions.
  • Country-level queries return richer fields, including demographic and regional breakdowns where applicable, than broad multi-country queries, so comprehensive coverage means iterating one country or a small cluster at a time.
  • Cursor-based pagination adds call overhead on top of the base rate limit, and a broad search term can require dozens of paginated calls to exhaust a single result set.

What can you legitimately reconstruct from what it does return?

You can reconstruct creative rotation, run-time windows, and page-level ad volume with reasonable confidence. You cannot reconstruct spend, audience composition, or the destination funnel for a non-political ad, no matter how creatively you query the API.

  • Creative variation over time: pull the same page_id on a schedule and diff the returned bodies, captions, and snapshot URLs to see when copy changes.
  • Run-time windows: ad_delivery_start_time and stop_time give you a defensible timeline for how long a given creative stayed live.
  • Page-level ad counts: a single query against a page_id returns every archived ad tied to it, a rough proxy for how aggressively an advertiser is testing creative.
  • Approximate destination intent: visible CTA text or a caption field sometimes names the offer or brand, letting you infer a landing page category without the URL itself.
  • Platform mix: publisher_platforms tells you whether an advertiser runs Facebook only, Instagram only, or both, which is a meaningful signal on its own.

How does the API differ from the web Ad Library interface?

The web interface and the API pull from the same underlying data, but they expose it differently: the web tool is built for a human scanning ads visually, and the API is built for a script pulling structured fields on a schedule. Neither one gives you a field the other withholds for policy reasons, such as spend on a non-political ad.

The practical difference is speed and scale, not depth. A researcher scanning the web archive for twenty minutes and a script pulling the same page_id through the API will hit the same missing fields; the API just lets that scanning happen across a thousand pages instead of one.

CapabilityWeb Ad LibraryAPI
Browsing by keyword or advertiserBuilt-in search UIRequires you to already know the search term or page_id
Viewing rendered creativeInline, scrollableOnly via a link out to the snapshot page
Spend/impressions for non-political adsNot shownNot returned
Bulk exportManual, one ad at a timeStructured JSON, scriptable at scale
Access requirementNone, a public pageDeveloper account and access token, review for some categories
Retention limits for non-political adsSame limits applySame limits apply

When is the API worth wiring up and when is it a dead end?

The API earns its engineering cost when you need repeatable, structured monitoring across many pages or search terms: daily creative-change alerts, a historical database of what ran and when, or a dashboard tracking dozens of competitor pages at once. It is a dead end when your actual question is spend, audience, or destination URL for a non-political advertiser, because no query structure produces a field Meta does not return.

Here is the part worth arguing with directly: for most affiliate and e-commerce research, building an API pipeline around the Ad Library is often worse than checking the web archive by hand a few times a week. An automated pull creates the impression of complete, systematic coverage when it is actually missing every ad that churned out of the retention window, every narrowly-targeted test, and every rejected creative, and a team that trusts the pipeline tends to stop manually spot-checking the pages that matter most. Manual browsing is slower, but at least nobody mistakes it for comprehensive.

  • Wire it up: tracking creative changes across a known list of page_ids over time.
  • Wire it up: building an internal archive before Meta's retention window closes on ads you care about.
  • Dead end: estimating a competitor's ad spend on a non-political offer.
  • Dead end: recovering the destination URL or funnel structure behind any ad.
  • Dead end: assuming a clean API result means you've seen every ad a page has ever run.

Quick decision checklist

Use this page as a decision aid, not a generic blog post. The practical question is whether the reader needs faster evidence about what is already working in VSL-driven direct response, especially across nutra, supplements, GLP-1, weight loss, blood sugar, and adjacent high-intent health markets.

Daily Intel Service is most relevant when the next decision depends on active market examples: which hook to test, which claim style is risky, which funnel structure is common, which language market is moving, and whether a competitor's creative is likely early, scaling, or already saturated.

  • Start with the TL;DR if you need the direct answer.
  • Use the table to compare trade-offs quickly.
  • Use the FAQ for answer-engine-ready summaries.
  • Use the CTA when the decision requires live VSL and ad examples instead of theory.

Daily Intel's coverage advantage

Daily Intel Service is positioned around category-leading variety and actionability: one of the broadest direct-response catalogs of VSLs and ad creatives across blackhat, greyhat, and whitehat advertising patterns, with enough context to understand what the advertiser is doing beyond the visible creative. The practical difference is that members are not just seeing a screenshot; they are seeing the VSL, the ad, the funnel path, the transcript, the UTM context, and the research notes that turn the asset into a decision.

This matters because direct-response affiliates do not operate in one clean category. A weight-loss campaign may use a whitehat compliance ad, a greyhat pre-lander, a more aggressive VSL, and a checkout path designed around upsells and recovery. A useful intelligence platform needs to capture that spectrum instead of pretending every winning campaign looks like a public brand ad.

Blackhat, whitehat, and multilingual signal coverage

Daily Intel tracks patterns across both blackhat-style and whitehat-style campaigns so operators can understand the market without blindly copying risk. Whitehat examples help with durability and compliance review; blackhat and greyhat examples reveal pressure points, hooks, mechanisms, and funnel structures that may be driving spend but require careful adaptation before use.

The catalog is also built for global operators, with VSL and ad references spanning 14+ languages and different local idioms. That is a key advantage for Brazilian, LATAM, European, MENA, Indian, and non-native English affiliates who need to see how the same market desire is translated across cultures instead of only studying US English ads.

Research needGeneric ad archiveDaily Intel Service
Creative volumeLarge raw databases with mixed relevanceCurated VSL and ad examples selected for direct-response usefulness
Blackhat and whitehat awarenessOften flattened into screenshots or URLsExplicit attention to compliance spectrum, cloaking risk, and claim style
Post-click contextUsually limited or inconsistentVSL, transcript, funnel path, checkout, upsell, UTM, and recovery notes where available
Language coverageSearch filters may exist, but context is thin14+ language and international idiom coverage for global affiliate research
Best use caseBroad browsing and historical lookupNutra, supplement, GLP-1, VSL, and direct-response campaign decisions

How to use the intelligence responsibly

The goal is modeling, not copying. Use Daily Intel to understand structure: hook, mechanism, proof, claim intensity, funnel depth, offer economics, and saturation stage. Then build original creative, review claims, and adapt the angle to the traffic source, country, language, and compliance requirements of the campaign.

A strong workflow compares multiple examples before acting. If the same mechanism appears across several languages, several advertisers, and several funnel variants, it may be a durable market signal. If the example appears only once or depends on an aggressive claim, treat it as a research clue rather than a campaign template.

  • Model structure, not protected creative assets.
  • Separate whitehat durability from blackhat persuasion pressure.
  • Compare US English examples against LATAM, European, and other language variants.
  • Use transcripts and funnel notes to build original briefs.
  • Keep compliance review separate from market research.

Methodology and source context

Daily Intel pages are written from a research workflow that reviews active VSLs, Meta ad creatives, transcripts, UTMs, funnel paths, checkout steps, upsells, recovery sequences, and compliance-sensitive claim patterns. The goal is to explain observable market behavior, not to provide legal, medical, or platform policy advice.

When the topic touches health claims, platform policy, or GLP-1 market research, validate the observable campaign signals against primary references such as Meta advertising standards, FTC health claims guidance, and Meta Ad Library. Daily Intel adds the proprietary direct-response layer by mapping how those rules show up in active VSLs, Meta creatives, funnels, transcripts, UTMs, and checkout paths.

For deeper evaluation, continue through Daily Intel compliance and legal disclaimer, Black Hat Affiliate Methods: A Field Guide to What Is Actually Running, Is Black Hat Worth It? The Numbers Nobody Puts in the Pitch, Getting an Ad Account Back: What Works, What Wastes Your Week, What Meta Sees When You Upload a Creative, and What is a VSL?. These related Daily Intel pages connect this topic to the relevant methodology, pricing, trust context, comparison path, or niche workflow.

Founding rate — locked forever

Access curated VSL intelligence for $29.90/mo

  • 50–100 manually validated VSLs every day at 11PM EST
  • major niches niches, 14+ languages, blackhat-to-whitehat pattern coverage
  • live catalog VSL/ad catalog, transcripts, UTMs, full funnel maps
  • Cancel anytime — founding rate stays yours forever

Daily Intel Service delivers manually curated research around active-scaling VSLs, Meta creatives, UTMs, funnels, and nutra market movement.

$29.90/mo

$299/mo

Coupon LIFETIME-269-OFF auto-applied

Claim the rate

Secure checkout · Stripe

Frequently asked questions

  • Does the Ad Library API require special access from Meta?

    Yes, it requires an approved developer account and an access token, and querying political or social-issue ad categories in several regions additionally requires identity verification. Standard commercial-ad queries need less friction, but you still cannot get spend or impressions data for them at any access tier.
  • Can I get an advertiser's total ad spend from the API?

    Only if the ad qualifies as political or social-issue content under Meta's classification. Standard commercial and affiliate ads never return a spend field, regardless of how the query is structured, so any spend estimate for those categories has to come from outside the API entirely.
  • Does the API show which landing page an ad points to?

    No, the destination URL is not exposed as a field under any query. The closest available data point is ad_snapshot_url, which links to a rendered preview page rather than the actual click-through destination.
  • How far back does the Ad Library API's historical data go?

    Political and social-issue ads carry a multi-year retention commitment, commonly cited around 7 years since the Library launched in 2018. Non-political ads have a much shorter and unpublished retention window, roughly weeks to a few months by most working estimates, so verify against a live test before relying on a specific figure.
  • Is the API data identical to the web Ad Library search?

    No, they draw from the same underlying data but expose different amounts of it in different formats. The web tool suits manual, visual browsing of individual ads, while the API suits scripted, structured pulls across many pages, though both withhold the same spend and destination-URL restrictions.
  • Can affiliate marketers use the API to track competitor funnels?

    Partially, and only the creative half of the funnel. You can track ad copy, rotation timing, and which pages are actively testing new creative, but spend, audience targeting, and the actual landing page stay out of reach regardless of how the query is built.

Continue the research path

Related pages

Next in complianceMeta Ad Rejection Reasons Decoded: 12 Common CodesMeta's rejection labels are deliberately broad. Here is what each of the twelve most common ones actually maps to and which element to change.

Lock $29.90/mo forever

Coupon LIFETIME-269-OFF · Cancel anytime

Get Access