# Facebook Ad Library Search via Orthogonal

> Facebook Ad Library Search via Orthogonal is a paid API for AI agents from x402.orthogonal.com, paid per call via x402, $0.02/call, status unknown (last checked 2026-10-18).

Search and paginate through Facebook's Ad Library to discover active and historical ads matching query, filters, and date ranges

## Facts

- Endpoint: GET https://x402.orthogonal.com/scrapecreators/v1/facebook/adLibrary/search/ads?utm_source=zero.xyz
- Price: $0.02/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-18
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/facebook-ad-library-search-via-orthogonal-e1f013bd
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_2tUKXJkWA2eFdtEbdIf7B

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 facebook-ad-library-search-via-orthogonal-e1f013bd
```

Example prompt: Search the Facebook Ad Library for active image ads from Nike in the US, sorted by relevance, and show me what they're currently running.

## When to prefer this

Use this endpoint when you need to programmatically search the Facebook Ad Library for ads by keyword, brand, country, or date range — especially when paginating large result sets cheaply using the parentRequestId continuation billing feature. Prefer this over manual Ad Library browsing when building competitive intelligence pipelines, ad monitoring workflows, or market research tools.

## Known failure modes

- Invalid or missing query parameter returns empty results
- Unsupported country code returns an error or empty set
- Invalid cursor causes pagination failure
- Changing filter parameters while passing parentRequestId starts a new billable request
- Rate limiting or upstream Meta Ad Library unavailability returns 5xx errors
- Invalid date format (not YYYY-MM-DD) may cause query rejection

## How this service works

Search Pagination billing: call the first page normally and save billing.requestId from the Orthogonal /v1/run response. For later page, offset, or cursor calls on the same logical search, pass parentRequestId with unchanged non-pagination parameters. Valid continuation calls still get their own request IDs and quoted price, but are charged 0. Changing filters starts a new billable request.

## Output

Returns a list of Facebook Ad Library entries matching the query and filters, including ad creatives, advertiser metadata, active status, date ranges, and a pagination cursor for fetching subsequent pages. The Orthogonal response also includes a requestId for use as parentRequestId in free continuation calls.

## 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",
     "properties": {
      "trim": {
       "type": "string",
       "description": "Set to true for a trimmed response"
      },
      "query": {
       "type": "string",
       "description": "Search query"
      },
      "cursor": {
       "type": "string",
       "description": "Cursor for pagination For later cursor pages of the same logical search, keep non-pagination parameters unchanged and pass top-level parentRequestId from the first Orthogonal /v1/run response."
      },
      "status": {
       "type": "string",
       "description": "Status filter"
      },
      "ad_type": {
       "type": "string",
       "description": "Ad type filter"
      },
      "country": {
       "type": "string",
       "description": "Country filter"
      },
      "sort_by": {
       "type": "string",
       "description": "Sort by"
      },
      "end_date": {
       "type": "string",
       "description": "End date (YYYY-MM-DD)"
      },
      "media_type": {
       "type": "string",
       "description": "Media type filter"
      },
      "start_date": {
       "type": "string",
       "description": "Start date (YYYY-MM-DD)"
      },
      "search_type": {
       "type": "string",
       "description": "Search type"
      }
     }
    }
   },
   "additionalProperties": false
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/facebook-ad-library-search-via-orthogonal-e1f013bd/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from x402.orthogonal.com](https://www.zero.xyz/host/x402.orthogonal.com/llms.txt)
