imported from the x402 Bazaar, not submitted by the operator · own this service? claim it
Searches the public Facebook Ad Library by keyword, advertiser or page and returns the full ad creative: headline, body copy, CTA and destination link, media URLs, run dates and platform mix across Facebook, Instagram, Messenger and Threads. Also serves TikTok Top Ads by country.
Pay from $0.03 per request in USDC on Base / Solana, settled onchain via the x402 protocol, no signup, no API key needed.
ASSESSMENT
updated 35m agoEvidence-backed signals, not a single score. Click any chip for the proof. Measured values stay read-only; unknown is honest.
reliability 100%
- uptime 24h
- 100%
- uptime 7d
- 100%
- uptime 30d
- 100%
- uptime 90d
- 100%
- response p95
- 293ms
- avg response
- 165ms
- total checks
- 24
compliance A (11/11)
11 of 11 x402 conformance checks pass. Full checklist below.
price $0.03 (p81 in Data)
- price (min)
- $0.03
- category percentile (min)
- p81 in Data
- endpoints / prices
- 4 / 1
- model
- flat
- stability
- 100%
risk clean
No deterministic risk flag. Risk fires only on an exact blocklist match, or a reserved-brand name with a mismatched verified payTo. Never from low uptime, a high price, or a model guess.
traction $1.05 30d · 8 buyers
- volume 30d
- $1.05
- buyers 30d
- 8
- settlements 30d
- 35
- last settlement
- 2026-07-21
- top buyer share
- 49% of 30d volume
- trend 7d vs 30d
- 0.86x the 30d daily rate
- networks
- eip155:8453, solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdpKuc147dw2N9d
Conservative undercount: only USDC settlements via facilitators we measure are counted. A measured floor, not an estimate.
Top buyer share is a concentration signal, not part of the ranking score.
WHAT IT DOES
ai-derivedProvides access to Facebook and TikTok ad data through various search and retrieval endpoints
- category
- ad-data
- in
- query params
AI-generated summary. The measured data is never altered by it.
ENDPOINTS
| METHOD | PATH | DESCRIPTION | PRICE | NETWORK | ASSET |
|---|---|---|---|---|---|
| GET | /v1/ads/facebook/advertiser | $0.03 | Base/Solana | USDC | |
| GET | /v1/ads/facebook/page | $0.03 | Base/Solana | USDC | |
| GET | /v1/ads/facebook/search | $0.03 | Base/Solana | USDC | |
| GET | /v1/ads/tiktok/top | $0.03 | Base/Solana | USDC |
REQUEST / RESPONSE EXAMPLE
An unpaid request to GET /v1/ads/facebook/advertiser returns HTTP 402 with the payment terms. Settle onchain via your facilitator, then retry with the X-Payment header.
curl -i 'https://ads.apitoll.cloud/v1/ads/facebook/advertiser'
// 402 response (captured by monitor) · 4 payloads · click to expand
[
{
"error": "Payment required",
"accepts": [
{
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"extra": {
"name": "USD Coin",
"version": "2"
},
"payTo": "0x4ce88238F669d04351937420C931988e464a975a",
"amount": "30000",
"scheme": "exact",
"network": "eip155:8453",
"maxTimeoutSeconds": 150
},
{
"asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"extra": {
"feePayer": "GVJJ7rdGiXr5xaYbRwRbjfaJL7fmwRygFi1H6aGqDveb"
},
"payTo": "HZ5rN5HmZpu2H16auY5Zt5SuJjCMBG77odVhAVSuhK1x",
"amount": "30000",
"scheme": "exact",
"network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
"maxTimeoutSeconds": 150
}
],
"resource": {
"url": "https://ads.apitoll.cloud/v1/ads/facebook/search",
"tags": [
"facebook-ads",
"ad-library",
"ads",
"keyword-search",
"ad-creative",
"marketing",
"instagram-ads",
"apitoll"
],
"mimeType": "application/json",
"description": "Facebook Ad Library search by keyword — every live and recent ad matching a search term across all advertisers on Facebook, Instagram, Messenger and Threads. Returns the full ad creative (headline, body copy, CTA button + destination link, image and video URLs), the advertiser, run dates and days-running, and platform mix. Commercial and political ads, no Meta API or login. Competitor ad intelligence, ad spy, and creative research for AI agents.",
"serviceName": "ApiToll Facebook Ad Library Keyword Search"
},
"extensions": {
"bazaar": {
"info": {
"input": {
"type": "http",
"method": "GET",
"queryParams": {
"q": "running shoes",
"country": "US"
}
},
"output": {
"type": "json",
"example": {
"ads": [
{
"title": "Run Further in the new AeroGlide",
"pageId": "100066543210987",
"country": "US",
"ctaText": "Shop Now",
"ctaType": "SHOP_NOW",
"linkUrl": "https://acmefootwear.com/aeroglide?utm_source=fb",
"bodyText": "Lightweight cushioning for your longest runs. Free shipping this week.",
"isActive": true,
"pageName": "Acme Footwear",
"videoUrl": "https://video.xx.fbcdn.net/v/ad_hd.mp4",
"imageUrls": [
"https://scontent.xx.fbcdn.net/v/img1.jpg"
],
"scrapedAt": "2026-06-25T14:32:09Z",
"sourceUrl": "https://www.facebook.com/ads/library/?q=running%20shoes&country=US",
"startDate": 1717200000,
"adArchiveId": "1234567890123456",
"daysRunning": 28,
"linkUrlType": "destination",
"pageVerified": true,
"displayFormat": "VIDEO",
"templatedText": false,
"mediaExpiresAt": "2026-06-29T22:19:28Z",
"publisherPlatform": [
"FACEBOOK",
"INSTAGRAM"
]
}
],
"asOf": "2026-06-25T14:32:10Z",
"count": 25,
"query": {
"keyword": "running shoes"
},
"source": {
"via": "Apify",
"name": "Facebook Ad Library"
},
"country": "US"
}
}
},
"schema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"input"
],
"properties": {
"input": {
"type": "object",
"required": [
"type",
"method"
],
"properties": {
"type": {
"type": "string",
"const": "http"
},
"method": {
"enum": [
"GET"
],
"type": "string"
},
"queryParams": {
"type": "object",
"required": [
"q"
],
"properties": {
"q": {
"type": "string",
"description": "Keyword/phrase to search ads for (e.g. \"running shoes\", \"crypto wallet\"). Defaults to a demo query if omitted."
},
"limit": {
"type": "integer",
"maximum": 60,
"minimum": 1,
"description": "Max ads to return (1-60)."
},
"period": {
"enum": [
"",
"last24h",
"last7d",
"last14d",
"last30d"
],
"type": "string",
"description": "Limit to ads active in this window. Blank = all time."
},
"ad_type": {
"enum": [
"all",
"political_and_issue_ads",
"housing_ads",
"employment_ads",
"credit_ads",
"financial_products_and_services_ads"
],
"type": "string",
"description": "Ad category filter. political_and_issue_ads MAY add spend + impressions ranges when Meta discloses them (often absent)."
},
"country": {
"type": "string",
"description": "Two-letter ISO country (US, GB, DE, BR…) the ads target, or ALL for a bounded multi-region sweep (slower). Default US."
},
"sort_by": {
"enum": [
"impressions_desc",
"most_recent"
],
"type": "string",
"description": "most_recent (newest/currently-running first — default) or impressions_desc (all-time highest-impression ads, often older/ended)."
},
"platforms": {
"type": "string",
"description": "Comma-separated publisher filter: FACEBOOK,INSTAGRAM,MESSENGER,AUDIENCE_NETWORK,THREADS,WHATSAPP. Blank = all."
},
"media_type": {
"enum": [
"all",
"image",
"video",
"meme",
"image_and_meme",
"none"
],
"type": "string",
"description": "Creative format filter."
},
"active_status": {
"enum": [
"all",
"active",
"inactive"
],
"type": "string",
"description": "Filter by whether the ad is still running."
},
"resolve_advertiser": {
"type": "boolean",
"description": "Also resolve each advertiser’s page identity (verified status, categories, profile pic). Slower. Default false."
}
}
}
},
"additionalProperties": false
},
"output": {
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"type": "string"
},
"example": {
"type": "object",
"properties": {
"ads": {
"type": "array",
"items": {
"type": "object",
"properties": {
"title": {
"type": "string"
},
"pageId": {
"type": "string"
},
"country": {
"type": "string"
},
"ctaText": {
"type": "string"
},
"ctaType": {
"type": "string"
},
"linkUrl": {
"type": "string"
},
"bodyText": {
"type": "string"
},
"isActive": {
"type": "boolean"
},
"pageName": {
"type": "string"
},
"videoUrl": {
"type": "string"
},
"imageUrls": {
"type": "array",
"items": {
"type": "string"
}
},
"scrapedAt": {
"type": "string"
},
"sourceUrl": {
"type": "string"
},
"startDate": {
"type": "number"
},
"adArchiveId": {
"type": "string"
},
"daysRunning": {
"type": "number"
},
"linkUrlType": {
"type": "string"
},
"pageVerified": {
"type": "boolean"
},
"displayFormat": {
"type": "string"
},
"templatedText": {
"type": "boolean"
},
"mediaExpiresAt": {
"type": "string"
},
"publisherPlatform": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
},
"asOf": {
"type": "string"
},
"count": {
"type": "number"
},
"query": {
"type": "object",
"properties": {
"keyword": {
"type": "string"
}
}
},
"source": {
"type": "object",
"properties": {
"via": {
"type": "string"
},
"name": {
"type": "string"
}
}
},
"country": {
"type": "string"
}
}
}
}
}
}
}
}
},
"x402Version": 2
},
{
"error": "Payment required",
"accepts": [
{
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"extra": {
"name": "USD Coin",
"version": "2"
},
"payTo": "0x4ce88238F669d04351937420C931988e464a975a",
"amount": "30000",
"scheme": "exact",
"network": "eip155:8453",
"maxTimeoutSeconds": 150
},
{
"asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"extra": {
"feePayer": "GVJJ7rdGiXr5xaYbRwRbjfaJL7fmwRygFi1H6aGqDveb"
},
"payTo": "HZ5rN5HmZpu2H16auY5Zt5SuJjCMBG77odVhAVSuhK1x",
"amount": "30000",
"scheme": "exact",
"network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
"maxTimeoutSeconds": 150
}
],
"resource": {
"url": "https://ads.apitoll.cloud/v1/ads/facebook/advertiser",
"tags": [
"facebook-ads",
"ad-library",
"competitor-intelligence",
"brand-ads",
"ad-creative",
"advertiser",
"instagram-ads",
"apitoll"
],
"mimeType": "application/json",
"description": "Facebook ads from a specific advertiser by brand name — every live and recent ad a brand runs across Facebook, Instagram, Messenger and Threads, isolated to that ONE advertiser (filters out the stray pages a name search pulls in; echoes resolvedPage to verify). Returns the full ad creative (headline, body copy, CTA + destination link, image and video URLs), run dates, and platform mix. No Meta login. Competitor ad intelligence for AI agents.",
"serviceName": "ApiToll Facebook Advertiser Ads"
},
"extensions": {
"bazaar": {
"info": {
"input": {
"type": "http",
"method": "GET",
"queryParams": {
"country": "US",
"advertiser": "Nike"
}
},
"output": {
"type": "json",
"example": {
"ads": [
{
"title": "Just Do It",
"pageId": "15087023444",
"country": "US",
"ctaText": "Shop Now",
"ctaType": "SHOP_NOW",
"linkUrl": "https://www.nike.com/launch",
"bodyText": "Gear up for your next run. New arrivals now live.",
"isActive": true,
"pageName": "Nike",
"imageUrls": [
"https://scontent.xx.fbcdn.net/v/nike1.jpg"
],
"scrapedAt": "2026-06-25T14:32:09Z",
"sourceUrl": "https://www.facebook.com/ads/library/?q=Nike&search_type=keyword_unordered&country=US",
"startDate": 1718000000,
"adArchiveId": "9876543210987654",
"daysRunning": 14,
"linkUrlType": "destination",
"displayFormat": "VIDEO",
"templatedText": false,
"mediaExpiresAt": "2026-06-29T22:19:28Z",
"publisherPlatform": [
"FACEBOOK",
"INSTAGRAM"
]
}
],
"asOf": "2026-06-25T14:32:10Z",
"count": 12,
"query": {
"advertiser": "Nike"
},
"source": {
"via": "Apify",
"name": "Facebook Ad Library"
},
"country": "US",
"resolvedPage": {
"pageId": "15087023444",
"pageName": "Nike"
}
}
}
},
"schema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"input"
],
"properties": {
"input": {
"type": "object",
"required": [
"type",
"method"
],
"properties": {
"type": {
"type": "string",
"const": "http"
},
"method": {
"enum": [
"GET"
],
"type": "string"
},
"queryParams": {
"type": "object",
"required": [
"advertiser"
],
"properties": {
"limit": {
"type": "integer",
"maximum": 60,
"minimum": 1,
"description": "Max ads to return (1-60)."
},
"period": {
"enum": [
"",
"last24h",
"last7d",
"last14d",
"last30d"
],
"type": "string",
"description": "Limit to ads active in this window. Blank = all time."
},
"ad_type": {
"enum": [
"all",
"political_and_issue_ads",
"housing_ads",
"employment_ads",
"credit_ads",
"financial_products_and_services_ads"
],
"type": "string",
"description": "Ad category filter. political_and_issue_ads MAY add spend + impressions ranges when Meta discloses them (often absent)."
},
"country": {
"type": "string",
"description": "Two-letter ISO country (US, GB, DE, BR…) the ads target, or ALL for a bounded multi-region sweep (slower). Default US."
},
"sort_by": {
"enum": [
"impressions_desc",
"most_recent"
],
"type": "string",
"description": "most_recent (newest/currently-running first — default) or impressions_desc (all-time highest-impression ads, often older/ended)."
},
"platforms": {
"type": "string",
"description": "Comma-separated publisher filter: FACEBOOK,INSTAGRAM,MESSENGER,AUDIENCE_NETWORK,THREADS,WHATSAPP. Blank = all."
},
"advertiser": {
"type": "string",
"description": "Brand / advertiser NAME (e.g. Nike, Spotify, Samsung). Resolves to the dominant matching Facebook page. Defaults to a demo brand if omitted."
},
"media_type": {
"enum": [
"all",
"image",
"video",
"meme",
"image_and_meme",
"none"
],
"type": "string",
"description": "Creative format filter."
},
"active_status": {
"enum": [
"all",
"active",
"inactive"
],
"type": "string",
"description": "Filter by whether the ad is still running."
},
"resolve_advertiser": {
"type": "boolean",
"description": "Also resolve the advertiser’s page identity (verified status, categories, profile pic). Slower. Default false."
}
}
}
},
"additionalProperties": false
},
"output": {
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"type": "string"
},
"example": {
"type": "object",
"properties": {
"ads": {
"type": "array",
"items": {
"type": "object",
"properties": {
"title": {
"type": "string"
},
"pageId": {
"type": "string"
},
"country": {
"type": "string"
},
"ctaText": {
"type": "string"
},
"ctaType": {
"type": "string"
},
"linkUrl": {
"type": "string"
},
"bodyText": {
"type": "string"
},
"isActive": {
"type": "boolean"
},
"pageName": {
"type": "string"
},
"imageUrls": {
"type": "array",
"items": {
"type": "string"
}
},
"scrapedAt": {
"type": "string"
},
"sourceUrl": {
"type": "string"
},
"startDate": {
"type": "number"
},
"adArchiveId": {
"type": "string"
},
"daysRunning": {
"type": "number"
},
"linkUrlType": {
"type": "string"
},
"displayFormat": {
"type": "string"
},
"templatedText": {
"type": "boolean"
},
"mediaExpiresAt": {
"type": "string"
},
"publisherPlatform": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
},
"asOf": {
"type": "string"
},
"count": {
"type": "number"
},
"query": {
"type": "object",
"properties": {
"advertiser": {
"type": "string"
}
}
},
"source": {
"type": "object",
"properties": {
"via": {
"type": "string"
},
"name": {
"type": "string"
}
}
},
"country": {
"type": "string"
},
"resolvedPage": {
"type": "object",
"properties": {
"pageId": {
"type": "string"
},
"pageName": {
"type": "string"
}
}
}
}
}
}
}
}
}
}
},
"x402Version": 2
},
{
"error": "Payment required",
"accepts": [
{
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"extra": {
"name": "USD Coin",
"version": "2"
},
"payTo": "0x4ce88238F669d04351937420C931988e464a975a",
"amount": "30000",
"scheme": "exact",
"network": "eip155:8453",
"maxTimeoutSeconds": 150
},
{
"asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"extra": {
"feePayer": "GVJJ7rdGiXr5xaYbRwRbjfaJL7fmwRygFi1H6aGqDveb"
},
"payTo": "HZ5rN5HmZpu2H16auY5Zt5SuJjCMBG77odVhAVSuhK1x",
"amount": "30000",
"scheme": "exact",
"network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
"maxTimeoutSeconds": 150
}
],
"resource": {
"url": "https://ads.apitoll.cloud/v1/ads/tiktok/top",
"tags": [
"tiktok-ads",
"ad-library",
"tiktok-ad-library",
"creative-center",
"ad-creative",
"top-ads",
"marketing",
"apitoll"
],
"mimeType": "application/json",
"description": "TikTok ad library — TikTok Creative Center’s global Top Ads leaderboard: the best-performing TikTok ads in any of 81 countries (incl. US and full MENA), ranked by TikTok’s CTR / likes / 2-second-view boards. Returns each ad’s video + cover image, advertiser brand (when disclosed), engagement (likes/comments/shares), landing page, a relative performance + cost index, and campaign objective. Creative trend research, winning-ad discovery, and TikTok ad spy for AI agents.",
"serviceName": "ApiToll TikTok Top Ads"
},
"extensions": {
"bazaar": {
"info": {
"input": {
"type": "http",
"method": "GET",
"queryParams": {
"period": "30",
"country": "US"
}
},
"output": {
"type": "json",
"example": {
"ads": [
{
"adId": "7644097429029437458",
"likes": 200,
"title": "Art you carry with you from the very first moment of the day. Shop now at casetify.com",
"shares": 1,
"country": "US",
"orderBy": "ctr",
"comments": 2,
"ctrIndex": 0.04,
"videoUrl": "https://v16m-default.tiktokcdn.com/abc/video.mp4",
"brandName": "CASETiFY",
"costIndex": 1,
"objective": "Conversion",
"scrapedAt": "2026-06-25T11:27:57Z",
"coverImage": "https://p16-sign.tiktokcdn.com/abc/cover.jpg?x-expires=1782406180",
"periodDays": 30,
"landingPage": "https://www.casetify.com/?utm_source=tiktok",
"industryCode": "label_21104000000",
"coverExpiresAt": "2026-06-25T16:49:40Z"
}
],
"asOf": "2026-06-25T11:27:57Z",
"count": 20,
"period": "30d",
"source": {
"via": "Apify",
"name": "TikTok Creative Center (Top Ads)"
},
"country": "US",
"orderBy": "ctr"
}
}
},
"schema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"input"
],
"properties": {
"input": {
"type": "object",
"required": [
"type",
"method"
],
"properties": {
"type": {
"type": "string",
"const": "http"
},
"method": {
"enum": [
"GET"
],
"type": "string"
},
"queryParams": {
"type": "object",
"required": [
"country"
],
"properties": {
"limit": {
"type": "integer",
"maximum": 40,
"minimum": 1,
"description": "Max ads to return (1-40)."
},
"detail": {
"type": "boolean",
"description": "Enrich each ad with landing page URL + share/comment counts. Default true."
},
"period": {
"enum": [
"7",
"30",
"180"
],
"type": "string",
"description": "Look-back window in days."
},
"country": {
"type": "string",
"description": "Two-letter ISO country for the Top Ads leaderboard (US, GB, SA, AE, EG, DE, BR…; 81 supported incl. full MENA). Default US."
},
"order_by": {
"enum": [
"ctr",
"like",
"play_2s_rate",
"for_you",
"impression"
],
"type": "string",
"description": "Which TikTok leaderboard to pull (results are returned best-first by this metric)."
}
}
}
},
"additionalProperties": false
},
"output": {
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"type": "string"
},
"example": {
"type": "object",
"properties": {
"ads": {
"type": "array",
"items": {
"type": "object",
"properties": {
"adId": {
"type": "string"
},
"likes": {
"type": "number"
},
"title": {
"type": "string"
},
"shares": {
"type": "number"
},
"country": {
"type": "string"
},
"orderBy": {
"type": "string"
},
"comments": {
"type": "number"
},
"ctrIndex": {
"type": "number"
},
"videoUrl": {
"type": "string"
},
"brandName": {
"type": "string"
},
"costIndex": {
"type": "number"
},
"objective": {
"type": "string"
},
"scrapedAt": {
"type": "string"
},
"coverImage": {
"type": "string"
},
"periodDays": {
"type": "number"
},
"landingPage": {
"type": "string"
},
"industryCode": {
"type": "string"
},
"coverExpiresAt": {
"type": "string"
}
}
}
},
"asOf": {
"type": "string"
},
"count": {
"type": "number"
},
"period": {
"type": "string"
},
"source": {
"type": "object",
"properties": {
"via": {
"type": "string"
},
"name": {
"type": "string"
}
}
},
"country": {
"type": "string"
},
"orderBy": {
"type": "string"
}
}
}
}
}
}
}
}
},
"x402Version": 2
},
{
"error": "Payment required",
"accepts": [
{
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"extra": {
"name": "USD Coin",
"version": "2"
},
"payTo": "0x4ce88238F669d04351937420C931988e464a975a",
"amount": "30000",
"scheme": "exact",
"network": "eip155:8453",
"maxTimeoutSeconds": 150
},
{
"asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"extra": {
"feePayer": "GVJJ7rdGiXr5xaYbRwRbjfaJL7fmwRygFi1H6aGqDveb"
},
"payTo": "HZ5rN5HmZpu2H16auY5Zt5SuJjCMBG77odVhAVSuhK1x",
"amount": "30000",
"scheme": "exact",
"network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
"maxTimeoutSeconds": 150
}
],
"resource": {
"url": "https://ads.apitoll.cloud/v1/ads/facebook/page",
"tags": [
"facebook-ads",
"ad-library",
"competitor-monitoring",
"ad-creative",
"ads",
"brand-tracking",
"instagram-ads",
"apitoll"
],
"mimeType": "application/json",
"description": "Facebook ads from a specific advertiser page — monitor every live and recent ad a competitor runs by passing their Facebook page URL, vanity handle, or page id. Returns the full ad creative (headline, body copy, CTA + destination link, image and video URLs), run dates, and platform mix across Facebook, Instagram, Messenger and Threads. Track a competitor’s ad strategy and winning creatives over time. No Meta login.",
"serviceName": "ApiToll Facebook Page Ad Monitor"
},
"extensions": {
"bazaar": {
"info": {
"input": {
"type": "http",
"method": "GET",
"queryParams": {
"page": "https://www.facebook.com/nike"
}
},
"output": {
"type": "json",
"example": {
"ads": [
{
"title": "{{product.name}}",
"pageId": "15087023444",
"country": "US",
"ctaText": "Shop Now",
"ctaType": "SHOP_NOW",
"linkUrl": "https://fb.com/canvas_doc/1357532171781925",
"bodyText": "{{product.brand}} — {{product.description}}",
"isActive": true,
"pageName": "Nike",
"imageUrls": [
"https://scontent.xx.fbcdn.net/v/nike1.jpg"
],
"scrapedAt": "2026-06-19T14:32:09Z",
"sourceUrl": "https://www.facebook.com/ads/library/?view_all_page_id=15087023444",
"startDate": 1718000000,
"adArchiveId": "9876543210987654",
"daysRunning": 14,
"linkUrlType": "canvas",
"pageVerified": true,
"displayFormat": "DCO",
"templatedText": true,
"mediaExpiresAt": "2026-06-29T22:19:28Z",
"publisherPlatform": [
"FACEBOOK",
"INSTAGRAM",
"AUDIENCE_NETWORK"
]
}
],
"asOf": "2026-06-19T14:32:10Z",
"page": "https://www.facebook.com/nike",
"count": 25,
"source": {
"via": "Apify",
"name": "Facebook Ad Library"
},
"country": "US",
"resolvedPage": {
"pageId": "15087023444",
"pageName": "Nike"
}
}
}
},
"schema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"input"
],
"properties": {
"input": {
"type": "object",
"required": [
"type",
"method"
],
"properties": {
"type": {
"type": "string",
"const": "http"
},
"method": {
"enum": [
"GET"
],
"type": "string"
},
"queryParams": {
"type": "object",
"required": [
"page"
],
"properties": {
"page": {
"type": "string",
"description": "Facebook page URL (facebook.com/nike), vanity handle, profile.php?id=, or numeric page id. Defaults to a demo page if omitted."
},
"limit": {
"type": "integer",
"maximum": 60,
"minimum": 1,
"description": "Max ads to return (1-60)."
},
"period": {
"enum": [
"",
"last24h",
"last7d",
"last14d",
"last30d"
],
"type": "string",
"description": "Limit to ads active in this window. Blank = all time."
},
"ad_type": {
"enum": [
"all",
"political_and_issue_ads",
"housing_ads",
"employment_ads",
"credit_ads",
"financial_products_and_services_ads"
],
"type": "string",
"description": "Ad category filter. political_and_issue_ads MAY add spend + impressions ranges when Meta discloses them (often absent)."
},
"country": {
"type": "string",
"description": "Two-letter ISO country (US, GB, DE…) the ads target, or ALL for a bounded multi-region sweep (slower). Default US."
},
"sort_by": {
"enum": [
"impressions_desc",
"most_recent"
],
"type": "string",
"description": "most_recent (newest/currently-running first — default) or impressions_desc (all-time highest-impression ads, often older/ended)."
},
"platforms": {
"type": "string",
"description": "Comma-separated publisher filter: FACEBOOK,INSTAGRAM,MESSENGER,AUDIENCE_NETWORK,THREADS,WHATSAPP. Blank = all."
},
"media_type": {
"enum": [
"all",
"image",
"video",
"meme",
"image_and_meme",
"none"
],
"type": "string",
"description": "Creative format filter."
},
"active_status": {
"enum": [
"all",
"active",
"inactive"
],
"type": "string",
"description": "Filter by whether the ad is still running."
},
"resolve_advertiser": {
"type": "boolean",
"description": "Also resolve the page identity (verified status, categories, profile pic). Slower. Default false."
}
}
}
},
"additionalProperties": false
},
"output": {
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"type": "string"
},
"example": {
"type": "object",
"properties": {
"ads": {
"type": "array",
"items": {
"type": "object",
"properties": {
"title": {
"type": "string"
},
"pageId": {
"type": "string"
},
"country": {
"type": "string"
},
"ctaText": {
"type": "string"
},
"ctaType": {
"type": "string"
},
"linkUrl": {
"type": "string"
},
"bodyText": {
"type": "string"
},
"isActive": {
"type": "boolean"
},
"pageName": {
"type": "string"
},
"imageUrls": {
"type": "array",
"items": {
"type": "string"
}
},
"scrapedAt": {
"type": "string"
},
"sourceUrl": {
"type": "string"
},
"startDate": {
"type": "number"
},
"adArchiveId": {
"type": "string"
},
"daysRunning": {
"type": "number"
},
"linkUrlType": {
"type": "string"
},
"pageVerified": {
"type": "boolean"
},
"displayFormat": {
"type": "string"
},
"templatedText": {
"type": "boolean"
},
"mediaExpiresAt": {
"type": "string"
},
"publisherPlatform": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
},
"asOf": {
"type": "string"
},
"page": {
"type": "string"
},
"count": {
"type": "number"
},
"source": {
"type": "object",
"properties": {
"via": {
"type": "string"
},
"name": {
"type": "string"
}
}
},
"country": {
"type": "string"
},
"resolvedPage": {
"type": "object",
"properties": {
"pageId": {
"type": "string"
},
"pageName": {
"type": "string"
}
}
}
}
}
}
}
}
}
}
},
"x402Version": 2
}
] UPTIME
RECENT CHECKS
OVER TIME
All charts share the 24h window selected here. Every series is also served as JSON at /api/v1/services/apitoll-facebook-ad-library/price, /scores, /volume and /buyers. On-chain volume and distinct buyers are measured over the service's settlement address and are a conservative undercount (only settlements that reach a measured facilitator are counted). The on-chain series roll up hourly, so the latest day can be up to about an hour behind; distinct buyers are counted per payout address, so a service that settles to more than one address is an upper bound.
Median across 4 endpoints. Use the selector to isolate one.
COMPLIANCE
11/11 checks pass · grade A- 402 payload captured
- accepts[] array present
- payTo address recoverable
- payTo at accepts[0].payTo (conformant shape)
- payTo is a valid on-chain address
- atomic price declared
- atomic price in a sane range
- asset (token) address declared
- network resolves to CAIP-2
- payment scheme declared
- served over HTTPS
EMBED THIS BADGE
<a href="https://x402-list.com/services/apitoll-facebook-ad-library?utm_source=badge&utm_medium=referral&utm_campaign=embed"> <img src="https://x402-list.com/badge/apitoll-facebook-ad-library.svg" alt="ApiToll Facebook Ad Library listed on x402-list" height="28"> </a>
[](https://x402-list.com/services/apitoll-facebook-ad-library?utm_source=badge&utm_medium=referral&utm_campaign=embed)
<a href="https://x402-list.com/services/apitoll-facebook-ad-library?utm_source=badge&utm_medium=referral&utm_campaign=embed"> <img src="https://x402-list.com/badge/apitoll-facebook-ad-library.svg?data=uptime" alt="ApiToll Facebook Ad Library uptime on x402-list" height="28"> </a>