Facebook Ad Details API
One Meta ad by ID — same creative as search, plus delivery breakdowns when Meta publishes them.
Paste a Meta Ad Library ad URL or archive ID and get that creative as clean JSON. Creative fields (text, headline, cta, landingUrl, images[], videos[], advertiser) match a search hit for the same id — use this for ID lookup without paging search. media[] is the canonical URL list (one primary asset per creative, including DCO cards) — resizedUrl and video posters live on images[] / videos[], which fill from cards when Meta leaves the typed arrays empty. DCO {{product.*}} tokens fall back to cards[0] and set textIsFromCard. mediaUrlsExpireAt is the earliest Meta CDN oe= stamp (~5 days). caption is Meta's display domain line under the creative (e.g. blogs.groovewriters.com), not ad copy — text / headline / linkDescription hold the copy. advertiser.id is the Ad Library page id; advertiser.profileId is the facebook.com/{digits} namespace when it differs (url is built from profileId); advertiser.location is keyed null when Meta withholds it. Delivery extras when Meta publishes them (mostly political/issue and EU AAA ads): publisherPlatforms, demographicDistribution[], regionDistribution[], ageCountryGenderReachBreakdown / euTransparency, variantCount (collation), isAaaEligible, spendRange {raw, currency, min, max} (max null on open-ended bands like >$1M). Meta publishes spend and impression ranges only for political and issue ads in regions that require disclosure; commercial advertisers omit both. There is no platforms twin. On commercial ads Meta often withholds those breakdowns — keys stay present as null so the schema is stable. Always 2 credits — native and fallback share one price. fetchPath is native | fallback.
Docs: https://captapi.com/apis/facebook-ad-library-ad-details
Request
- Base URL: https://api.captapi.com
- URL: https://api.captapi.com/v1/ad-library/facebook/ad-details
- Auth: one of:
- HTTP bearer
- API key in header X-API-Key
Query parameters
Meta Ad Library ad URL or ad ID. The URL platform must match this endpoint's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
Set true to serve from the 24h response cache (0 credits on hit). Default false — always fetch fresh.
Response
Success. The data object for this endpoint.
Changes
No recorded changes to this operation across all 3 revisions of this API.