# ApiToll Facebook Ad Library — Page Ad Intelligence

> ApiToll Facebook Ad Library — Page Ad Intelligence is a paid API for AI agents from ads.apitoll.cloud, paid per call via x402, $0.03/call, status unknown (last checked 2026-10-12).

Scrapes all live and recent ads for a specific Facebook page from the public Facebook Ad Library, returning full creative details, run dates, platform mix, and optionally advertiser identity.

## Facts

- Endpoint: GET https://ads.apitoll.cloud/v1/ads/facebook/page?utm_source=zero.xyz
- Price: $0.03/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-12
- Success rate: 0% of calls made through Zero
- Activations on Zero: 3
- Tags: x402
- Canonical page: https://www.zero.xyz/c/apitoll-facebook-ad-library-page-ad-intelligence-9341d533
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_gWYyJMawXM4yJJ0mbAwJt

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability apitoll-facebook-ad-library-page-ad-intelligence-9341d533
```

Example prompt: Pull the last 30 days of active ads from Nike's Facebook page (facebook.com/nike) — show me the headline, body copy, CTA, image URLs, and which platforms each ad ran on, sorted by most impressions first, targeting the US market.

## When to prefer this

Choose this endpoint when you need to retrieve all ads for a specific, known Facebook advertiser page without requiring a Meta API key or Facebook login. Ideal for competitive ad intelligence, creative research, political ad monitoring, and brand tracking. Prefer over generic web scraping when you need structured ad creative data (copy, CTA, images, platforms, dates) for a specific page. Not suited for broad keyword-based ad searches across all advertisers (use a keyword-search endpoint instead).

## Known failure modes

- Page not found or invalid page URL — returns empty ads array or error
- Meta Ad Library temporarily unavailable or rate-limited — upstream Apify scraper fails
- No ads found for the given filters (period, ad_type, country, platform) — returns empty array
- Invalid country code or unsupported enum value — returns validation error
- Page has no ads in the Library (new page or no paid promotion) — returns count 0
- Payment failure via x402 — call not executed, no data returned

## How this service works

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.

## Output

A JSON array of ads for the requested page, each containing: ad archive ID, page name and ID, headline/title, body text, CTA text and type, destination link URL, image/video URLs, display format, publisher platforms, start date, days running, active status, scrape timestamp, and source URL. Also includes metadata: total count, country, timestamp, and optionally resolved advertiser identity (verified status, categories, profile picture).

## Request schema (JSON Schema)

```json
{
 "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",
       "des
… (truncated)
```

## Response schema (JSON Schema)

```json
{
 "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"
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/apitoll-facebook-ad-library-page-ad-intelligence-9341d533/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from ads.apitoll.cloud](https://www.zero.xyz/host/ads.apitoll.cloud/llms.txt)
