{"service":"x402-ad-library","description":"Paid x402 API for Facebook Ad Library + ad intelligence (search ads by keyword/advertiser, or monitor a page) on Base + Solana. Scraped live via Apify; commercial + political ads.","network":"eip155:8453","solanaNetwork":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","paidEndpoints":[{"method":"GET","path":"/v1/ads/facebook/search","price":"$0.03","summary":"Search live + recent Facebook/Instagram ads by keyword across all advertisers","params":{"q":"Keyword/phrase to search ads for (e.g. \"running shoes\", \"crypto wallet\"). Defaults to a demo query if omitted.","country":"Two-letter ISO country (US, GB, DE, BR…) the ads target, or ALL for a bounded multi-region sweep (slower). Default US.","media_type":"Creative format filter.","ad_type":"Ad category filter. political_and_issue_ads MAY add spend + impressions ranges when Meta discloses them (often absent).","platforms":"Comma-separated publisher filter: FACEBOOK,INSTAGRAM,MESSENGER,AUDIENCE_NETWORK,THREADS,WHATSAPP. Blank = all.","period":"Limit to ads active in this window. Blank = all time.","active_status":"Filter by whether the ad is still running.","sort_by":"most_recent (newest/currently-running first — default) or impressions_desc (all-time highest-impression ads, often older/ended).","limit":"Max ads to return (1-60).","resolve_advertiser":"Also resolve each advertiser’s page identity (verified status, categories, profile pic). Slower. Default false."}},{"method":"GET","path":"/v1/ads/facebook/advertiser","price":"$0.03","summary":"A specific brand’s live + recent Facebook/Instagram ads by advertiser name","params":{"advertiser":"Brand / advertiser NAME (e.g. Nike, Spotify, Samsung). Resolves to the dominant matching Facebook page. Defaults to a demo brand if omitted.","country":"Two-letter ISO country (US, GB, DE, BR…) the ads target, or ALL for a bounded multi-region sweep (slower). Default US.","media_type":"Creative format filter.","ad_type":"Ad category filter. political_and_issue_ads MAY add spend + impressions ranges when Meta discloses them (often absent).","platforms":"Comma-separated publisher filter: FACEBOOK,INSTAGRAM,MESSENGER,AUDIENCE_NETWORK,THREADS,WHATSAPP. Blank = all.","period":"Limit to ads active in this window. Blank = all time.","active_status":"Filter by whether the ad is still running.","sort_by":"most_recent (newest/currently-running first — default) or impressions_desc (all-time highest-impression ads, often older/ended).","limit":"Max ads to return (1-60).","resolve_advertiser":"Also resolve the advertiser’s page identity (verified status, categories, profile pic). Slower. Default false."}},{"method":"GET","path":"/v1/ads/facebook/page","price":"$0.03","summary":"All live + recent ads from a specific advertiser’s Facebook page","params":{"page":"Facebook page URL (facebook.com/nike), vanity handle, profile.php?id=, or numeric page id. Defaults to a demo page if omitted.","country":"Two-letter ISO country (US, GB, DE…) the ads target, or ALL for a bounded multi-region sweep (slower). Default US.","media_type":"Creative format filter.","ad_type":"Ad category filter. political_and_issue_ads MAY add spend + impressions ranges when Meta discloses them (often absent).","platforms":"Comma-separated publisher filter: FACEBOOK,INSTAGRAM,MESSENGER,AUDIENCE_NETWORK,THREADS,WHATSAPP. Blank = all.","period":"Limit to ads active in this window. Blank = all time.","active_status":"Filter by whether the ad is still running.","sort_by":"most_recent (newest/currently-running first — default) or impressions_desc (all-time highest-impression ads, often older/ended).","limit":"Max ads to return (1-60).","resolve_advertiser":"Also resolve the page identity (verified status, categories, profile pic). Slower. Default false."}},{"method":"GET","path":"/v1/ads/tiktok/top","price":"$0.03","summary":"TikTok’s best-performing ads in a country by CTR/likes (global, incl. US + MENA)","params":{"country":"Two-letter ISO country for the Top Ads leaderboard (US, GB, SA, AE, EG, DE, BR…; 81 supported incl. full MENA). Default US.","period":"Look-back window in days.","order_by":"Which TikTok leaderboard to pull (results are returned best-first by this metric).","limit":"Max ads to return (1-40).","detail":"Enrich each ad with landing page URL + share/comment counts. Default true."}}],"notes":"A call runs a live scrape (20-90s). 0 ads → 404 (not charged). spend + impressions ranges are political-ads only (Meta policy).","freeRoutes":["/openapi.json","/.well-known/x402","/health"]}