# Facebook Ads Library Scraper (`simpleapi/facebook-ads-library-scraper`) Actor

Facebook Ads Library Scraper extracts ads from the Facebook Ads Library, capturing ad creatives, texts, impressions, spend ranges, regions, advertiser info, start/end dates, and transparency data. Ideal for competitor research, ad monitoring, political ad tracking, and automated marketing insights.

- **URL**: https://apify.com/simpleapi/facebook-ads-library-scraper.md
- **Developed by:** [SimpleAPI](https://apify.com/simpleapi) (community)
- **Categories:** Lead generation, Social media, Videos
- **Stats:** 22 total users, 0 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$19.99/month + usage

To use this Actor, you pay a monthly rental fee to the developer. The rent is subtracted from your prepaid usage every month after the free trial period.You also pay for the Apify platform usage, which gets cheaper the higher Apify subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#rental-actors

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

### 🚀 Facebook Ads Library Scraper – Extract Meta Ad Data Like a Pro!

Looking for an easy way to scrape Facebook Ads Library and access powerful marketing insights? 😎  
The Facebook Ads Library Scraper lets you extract detailed ad data from the official Meta Ad Library, including ad creatives, targeting info, spend data, and page details — all in a structured format.

Whether you’re a marketer, competitor analyst, or data researcher, this Apify Facebook Ads Scraper automates the entire process and delivers data-ready results in seconds.

* * *

### 🤔 What Does Facebook Ads Library Scraper Do?

The Facebook Ads Library Scraper is a robust data extraction tool that collects all public ad information from Meta’s Ad Library 📊.  
It helps you analyze ad performance, creative trends, targeting regions, and even monitor political or social issue ads.

By using this scraper, you can:

*   🔍 Analyze competitor ad strategies  
      
    
*   🧠 Study ad creatives, spend ranges, and impressions  
      
    
*   💡 Identify trends in ad campaigns across regions and timeframes  
      
    

It’s the go-to tool for digital marketers, agencies, and researchers looking to turn public ad data into valuable insights.

✨ SEO Tip: The scraper helps you find how to search Facebook Ads Library efficiently by automating it — saving hours of manual work!

* * *

### 📦 What Facebook Ads Library Scraper Can Extract

The scraper provides comprehensive ad data from Facebook and Instagram ads through the Meta Ad Library.

| 🧩 Field | 📘 Description |
| --- | --- |
| Ad ID | Unique identifier for each ad in Meta’s database |
| Page Name | Name of the advertiser’s Facebook Page |
| Ad Text | Main copy or caption of the ad |
| Call-to-Action (CTA) | Button type (e.g., “Shop Now”, “Learn More”) |
| Impressions | Number of times the ad was displayed |
| Spend Range | Estimated ad spend range |
| Ad Start / End Date | Campaign duration |
| Ad Media | Images, videos, or carousel creatives |
| Country / Language | Targeted region and audience language |
| Publisher Platforms | Facebook, Instagram, Messenger, or Audience Network |

🧠 Bonus: You can export all scraped ads in JSON, CSV, or Excel, making it perfect for analysis or dashboards.

* * *

#### ⚡ Key Features of Facebook Ads Library Scraper

Here’s what makes this scraper unbeatable 🏆

*   🌍 Global Reach: Extract ads from all countries supported by Meta Ad Library API  
      
    
*   🔄 Automated Extraction: Automatically scrolls, loads, and parses data dynamically  
      
    
*   💻 Multi-format Export: Download results in JSON, CSV, or Excel formats  
      
    
*   🧩 Flexible Input Options: Input by keywords, page URLs, or countries  
      
    
*   🔒 Captcha & Rate Limit Handling: Runs smoothly without blocks using smart proxy rotation  
      
    
*   🧠 Detailed Insights: Get metrics like impressions, ad types, reach estimates, and CTA details  
      
    
*   🔧 Integration-Ready: Compatible with Apify API, Python scripts, and Zapier automations  
      
    
*   🧰 Open Source Options: Explore on Facebook Ads Library Scraper GitHub or use the Facebook Ads Library Scraper Extension  
      
    

💬 Whether you’re using the Curious\_Coder Facebook Ads Library Scraper or building a Facebook Ads Library Scraper Python version, you’ll love the speed, accuracy, and structure of this data extractor.

* * *

### 🧭 How to Use Facebook Ads Library Scraper?

Follow these simple steps to get started quickly 👇

1.  Log in to Apify – Create a free account or sign in.  
      
    
2.  Open the Actor – Search for “Facebook Ads Library Scraper” or “Curious Coder Facebook Ads Library Scraper” on Apify.  
      
    
3.  Enter Your Input – Provide a Facebook Ad Library URL or keyword-based search query.  
      
    
4.  Choose Options – Select filters like country 🌎, media type 🎥, or date range 📅.  
      
    
5.  Run the Scraper – Start scraping. The scraper will extract all ad data automatically.  
      
    
6.  Download Results – Export your results in CSV, JSON, or Excel format.  
      
    

💡 Tip: Use the Facebook Ads Library Scraper API for automation or integrate it into your data pipelines via Python or Zapier.

* * *

### 🎯 Use Cases

The Facebook Ads Library Scraper can transform how you understand social advertising. Here are top ways to use it:

*   📊 Competitor Ad Analysis – See what creatives and copy your competitors are running.  
      
    
*   🧠 Market Research – Understand how different industries advertise across countries.  
      
    
*   📢 Campaign Benchmarking – Compare performance by tracking ad duration and impressions.  
      
    
*   🧩 Ad Trend Discovery – Spot trending ad formats and CTAs in your niche.  
      
    
*   📈 Ad Performance Tracking – Use historical ad data for ROI or sentiment analysis.  
      
    
*   🏛️ Transparency Research – Analyze social issue or political ads for compliance and accountability.  
      
    

* * *

### 💎 Why Choose Our Facebook Ads Library Scraper?

Here’s why our scraper stands out from the rest 💥

*   🚀 Lightning Fast: Extract thousands of ads within minutes.  
      
    
*   🧰 Built on Apify Cloud: Reliable, scalable, and easy to automate.  
      
    
*   🧠 Developer-Friendly: Supports Python, API access, and browser extensions.  
      
    
*   🔍 Accurate & Clean Data: Get structured and deduplicated ad records every time.  
      
    
*   🛡️ Ethical & Compliant: Collects only publicly available data from the Meta Ad Library.  
      
    
*   🧩 Easy to Extend: Fork on GitHub or use your own custom Apify workflow.  
      
    

✨ Whether you’re a data scientist, marketing analyst, or agency, this Facebook Ads Library Data Scraper gives you full visibility into ad ecosystems across Facebook and Instagram.

* * *

### 📈 How Many Ads Can You Scrape?

The Facebook Ads Library Scraper can extract thousands of ads depending on your filters and proxies.

Performance depends on:

*   Type of input (keyword vs. page)  
      
    
*   Country and ad type  
      
    
*   Proxy configuration and concurrency  
      
    

🧠 Typical users scrape between 10K–50K ads per run, with optimized delay and proxy rotation.

You can scale further using the Apify Facebook Ads Library API or connect the scraper to your data warehouse.

* * *

### ⚖️ Is It Legal to Scrape Facebook Ads Library?

Yes ✅ The Facebook Ads Library was built by Meta for transparency — meaning this data is publicly available.

Our scraper:

*   Does not extract private user data.  
      
    
*   Fully complies with Facebook’s public data access rules.  
      
    
*   Follows ethical scraping best practices.  
      
    

Still, always review Meta’s Terms of Service and local data privacy laws (e.g., GDPR) before using scraped data commercially.

* * *

### ⚙️ Input Parameters

Example JSON Input 👇

```json
{
  "startUrls": [
    {
      "url": "linkedin"
    },
    {
      "url": "marketing tools"
    }
  ],
  "country": "US",
  "maxItems": 100,
  "activeStatus": "all",
  "adType": "all",
  "mediaType": "all",
  "searchType": "keyword_unordered",
  "sortOrder": "relevancy_monthly_grouped",
  "maxComments": 0,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
````

### 🧾 Output Format

Example JSON Output 👇

```json
{
  "ad_archive_id": "1573731810659177",
  "page_id": "863706960159979",
  "snapshot": {
    "page_name": "Imelyy us.a",
    "page_profile_uri": "https://facebook.com/61582982529381",
    "page_profile_picture_url": "https://scontent.fdac142-1.fna.fbcdn.net/...",
    "page_categories": ["Men's Clothing"],
    "page_like_count": 0,
    "body": {
      "text": "🌟 Unveil the 2025 $50 Gold Eagle - Early Releases! 🌟..."
    },
    "caption": "2025-american-eagle-56.seri365co.com",
    "cta_text": "Shop now",
    "cta_type": "SHOP_NOW",
    "display_format": "VIDEO",
    "link_url": "https://2025-american-eagle-56.seri365co.com/",
    "images": [],
    "videos": [
      {
        "video_sd_url": "https://video.fdac142-1.fna.fbcdn.net/...",
        "video_preview_image_url": "https://scontent.fdac142-1.fna.fbcdn.net/..."
      }
    ]
  },
  "is_active": true,
  "currency": "",
  "spend": null,
  "reach_estimate": null,
  "start_date": 1762329600,
  "end_date": 1762416000,
  "start_date_formatted": "2025-11-05 00:00:00",
  "end_date_formatted": "2025-11-06 00:00:00",
  "publisher_platform": ["FACEBOOK"],
  "ad_library_url": "https://www.facebook.com/ads/library/?id=1573731810659177",
  "url": "https://www.facebook.com/ads/library/?active_status=all&ad_type=all&country=US&media_type=all&q=linkedin&search_type=keyword_unordered",
  "total": 1234,
  "ads_count": 100
}
```

### 💬 FAQ

#### 1. Is the Facebook Ads Library Scraper free?

Yes! 🎁 You can try the Facebook Ads Library Scraper free with limited runs on Apify.

#### 2. Can I scrape ads without coding?

Absolutely — use the Facebook Ads Library Scraper Extension or run it via Apify dashboard.

#### 3. Is there a GitHub version available?

Yes — you can find open-source scripts like Facebook Ads Library Scraper GitHub projects.

#### 4. Can I use it with Python?

Definitely — it’s compatible with Facebook Ads Library Scraper Python scripts via the Apify API.

#### 5. How to get to Facebook Ads Library manually?

Visit facebook.com/ads/library and search by keyword or page name.

#### 6. What is the Meta Ad Library Scraper?

It’s the same transparency database by Meta, where all public Facebook & Instagram ads are listed.

#### 7. Who made the Curious\_Coder Facebook Ads Library Scraper?

It’s an Apify actor developed by Curious Coder to simplify ad data extraction.

***

### 🌟 Start Scraping Smarter Today!

Unlock the power of data-driven ad intelligence with the Facebook Ads Library Scraper 🔍\
Monitor competitors, analyze ad trends, and export thousands of insights with a single click.

👉 Try the Apify Facebook Ads Library Scraper now — automate your research and stay ahead in the digital race! ⚡

### What are other Facebook scraping tools?

If you want to scrape specific Facebook data, you can use any of the dedicated scrapers below for faster and more targeted results.

| Scraper Name | Scraper Name |
|---|---|
| [Facebook B2b Email Scraper](https://apify.com/simpleapi/facebook-b2b-email-scraper) | [Facebook Page Lead Scraper](https://apify.com/simpleapi/facebook-page-lead-scraper) |
| [Facebook B2b Lead Scraper](https://apify.com/simpleapi/facebook-b2b-lead-scraper) | [Facebook Page Phone Number Scraper](https://apify.com/simpleapi/facebook-page-phone-number-scraper) |
| [Facebook B2b Phone Number Scraper](https://apify.com/simpleapi/facebook-b2b-phone-number-scraper) | [Facebook Page Posts Scraper](https://apify.com/simpleapi/facebook-page-posts-scraper) |
| [Facebook Comments Scraper](https://apify.com/simpleapi/facebook-comments-scraper) | [Facebook Page Scraper](https://apify.com/simpleapi/facebook-page-scraper) |
| [Facebook Email Scraper](https://apify.com/simpleapi/facebook-email-scraper) | [Facebook Pages Scraper](https://apify.com/simpleapi/facebook-pages-scraper) |
| [Facebook Event Search Scraper](https://apify.com/simpleapi/facebook-event-search-scraper) | [Facebook Phone Number Scraper](https://apify.com/simpleapi/facebook-phone-number-scraper) |
| [Facebook Events Scraper](https://apify.com/simpleapi/facebook-events-scraper) | [Facebook Photos Scraper](https://apify.com/simpleapi/facebook-photos-scraper) |
| [Facebook Followers & Following Scraper](https://apify.com/simpleapi/facebook-followers-following-scraper) | [Facebook Posts Scraper](https://apify.com/simpleapi/facebook-posts-scraper) |
| [Facebook Followers Scraper](https://apify.com/simpleapi/facebook-followers-scraper) | [Facebook Posts Search Scraper](https://apify.com/simpleapi/facebook-posts-search-scraper) |
| [Facebook Group Member Scraper](https://apify.com/simpleapi/facebook-group-member-scraper) | [Facebook Profile Email Scraper](https://apify.com/simpleapi/facebook-profile-email-scraper) |
| [Facebook Group Post Scraper](https://apify.com/simpleapi/facebook-group-post-scraper) | [Facebook Profile Lead Scraper](https://apify.com/simpleapi/facebook-profile-lead-scraper) |
| [Facebook Group Posts And Details Scraper](https://apify.com/simpleapi/facebook-group-posts-and-details-scraper) | [Facebook Profile Phone Number Scraper](https://apify.com/simpleapi/facebook-profile-phone-number-scraper) |
| [Facebook Group Profile Scraper](https://apify.com/simpleapi/facebook-group-profile-scraper) | [Facebook Reels Scraper](https://apify.com/simpleapi/facebook-reels-scraper) |
| [Facebook Groups Posts Scraper](https://apify.com/simpleapi/facebook-groups-posts-scraper) | [Facebook Reviews Scraper](https://apify.com/simpleapi/facebook-reviews-scraper) |
| [Facebook Groups Scraper](https://apify.com/simpleapi/Facebook-Groups-Scraper) | [Facebook Search Scraper](https://apify.com/simpleapi/facebook-search-scraper) |
| [Facebook Groups Search Scraper](https://apify.com/simpleapi/facebook-groups-search-scraper) | [Facebook Url To Id Scraper](https://apify.com/simpleapi/facebook-url-to-id-scraper) |
| [Facebook Lead Scraper](https://apify.com/simpleapi/facebook-lead-scraper) | [Facebook User Search Scraper](https://apify.com/simpleapi/Facebook-User-Search-Scraper) |
| [Facebook Likes and Reactions Scraper](https://apify.com/simpleapi/facebook-likes-reactions-scraper) | [Facebook Video Search Scraper](https://apify.com/simpleapi/facebook-video-search-scraper) |
| [Facebook Marketplace Scraper](https://apify.com/simpleapi/facebook-marketplace-scraper) | [Facebook Video Transcript Extractor](https://apify.com/simpleapi/facebook-video-transcript-extractor) |
| [Facebook Page Email Scraper](https://apify.com/simpleapi/facebook-page-email-scraper) | [Facebook Videos Scraper](https://apify.com/simpleapi/facebook-videos-scraper) |

# Actor input Schema

## `startUrls` (type: `array`):

📋 One entry per line. You can paste plain URLs, or use objects with a `url` field (optional `label`, `limit`, or `period` per item).

## `resultsLimit` (type: `integer`):

📈 Upper bound on ads returned **across all sources** in this run. ⏱️ Lower = faster and lighter; 📚 higher = broader coverage.

## `onlyTotal` (type: `boolean`):

📉 Instead of one row per ad, output **one summary row per source** with a total count—handy for quick audits.

## `includeAboutPage` (type: `boolean`):

📄 For **Facebook page** sources, attach lightweight public title/description text when available.

## `isDetailsPerAd` (type: `boolean`):

🔍 Runs an additional lookup per ad for richer metadata (more complete rows; ⏳ slower runs). Turn off for a lighter listing-only export.

## `countryCode` (type: `string`):

📍 Region used for **Facebook page** sources. Library URLs usually carry their own country in the link.

## `period` (type: `string`):

⏳ Optional window when your URL does not already specify one. **Leave empty** to follow the library’s own default. Pick a calendar date or a relative span (e.g. 7 days)—values are passed through as you provide them.

## `activeStatus` (type: `string`):

🎛️ Filter for **page** sources, or when your Ad Library link leaves this unspecified.

## `proxyConfiguration` (type: `object`):

🏠 Leave off for a standard run. If you enable Apify Proxy here, **only residential** proxy traffic is used for the whole run. Requires proxy access on your Apify plan.

## Actor input object example

```json
{
  "startUrls": [
    "https://www.facebook.com/SHEINOFFICIAL",
    "https://www.facebook.com/ads/library/?active_status=active&ad_type=all&country=ALL&media_type=all&search_type=keyword_unordered"
  ],
  "resultsLimit": 10,
  "onlyTotal": false,
  "includeAboutPage": false,
  "isDetailsPerAd": true,
  "countryCode": "ALL",
  "period": "",
  "activeStatus": "all",
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "startUrls": [
        "https://www.facebook.com/SHEINOFFICIAL",
        "https://www.facebook.com/ads/library/?active_status=active&ad_type=all&country=ALL&media_type=all&search_type=keyword_unordered"
    ],
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("simpleapi/facebook-ads-library-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "startUrls": [
        "https://www.facebook.com/SHEINOFFICIAL",
        "https://www.facebook.com/ads/library/?active_status=active&ad_type=all&country=ALL&media_type=all&search_type=keyword_unordered",
    ],
    "proxyConfiguration": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("simpleapi/facebook-ads-library-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "startUrls": [
    "https://www.facebook.com/SHEINOFFICIAL",
    "https://www.facebook.com/ads/library/?active_status=active&ad_type=all&country=ALL&media_type=all&search_type=keyword_unordered"
  ],
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}' |
apify call simpleapi/facebook-ads-library-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=simpleapi/facebook-ads-library-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Facebook Ads Library Scraper",
        "description": "Facebook Ads Library Scraper extracts ads from the Facebook Ads Library, capturing ad creatives, texts, impressions, spend ranges, regions, advertiser info, start/end dates, and transparency data. Ideal for competitor research, ad monitoring, political ad tracking, and automated marketing insights.",
        "version": "0.1",
        "x-build-id": "E2gtpXQxIha7lHppe"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/simpleapi~facebook-ads-library-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-simpleapi-facebook-ads-library-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/simpleapi~facebook-ads-library-scraper/runs": {
            "post": {
                "operationId": "runs-sync-simpleapi-facebook-ads-library-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/simpleapi~facebook-ads-library-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-simpleapi-facebook-ads-library-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "startUrls": {
                        "title": "📌 Pages or Ad Library links",
                        "type": "array",
                        "description": "📋 One entry per line. You can paste plain URLs, or use objects with a `url` field (optional `label`, `limit`, or `period` per item).",
                        "items": {
                            "type": "string"
                        }
                    },
                    "resultsLimit": {
                        "title": "🔢 Maximum ads",
                        "minimum": 1,
                        "maximum": 50000,
                        "type": "integer",
                        "description": "📈 Upper bound on ads returned **across all sources** in this run. ⏱️ Lower = faster and lighter; 📚 higher = broader coverage.",
                        "default": 10
                    },
                    "onlyTotal": {
                        "title": "🔢 Only return total counts",
                        "type": "boolean",
                        "description": "📉 Instead of one row per ad, output **one summary row per source** with a total count—handy for quick audits.",
                        "default": false
                    },
                    "includeAboutPage": {
                        "title": "ℹ️ Include page “about” snippets",
                        "type": "boolean",
                        "description": "📄 For **Facebook page** sources, attach lightweight public title/description text when available.",
                        "default": false
                    },
                    "isDetailsPerAd": {
                        "title": "✨ Enrich each ad with extra fields",
                        "type": "boolean",
                        "description": "🔍 Runs an additional lookup per ad for richer metadata (more complete rows; ⏳ slower runs). Turn off for a lighter listing-only export.",
                        "default": true
                    },
                    "countryCode": {
                        "title": "🌍 Default country",
                        "enum": [
                            "ALL",
                            "AR",
                            "AU",
                            "AT",
                            "BD",
                            "BE",
                            "BR",
                            "CA",
                            "CL",
                            "CN",
                            "CO",
                            "CR",
                            "CZ",
                            "DK",
                            "EC",
                            "EG",
                            "FI",
                            "FR",
                            "DE",
                            "GR",
                            "GT",
                            "HK",
                            "HU",
                            "IN",
                            "ID",
                            "IE",
                            "IL",
                            "IT",
                            "JP",
                            "KE",
                            "MY",
                            "MX",
                            "NL",
                            "NZ",
                            "NG",
                            "NO",
                            "PK",
                            "PA",
                            "PE",
                            "PH",
                            "PL",
                            "PT",
                            "PR",
                            "RO",
                            "RU",
                            "SA",
                            "SG",
                            "ZA",
                            "KR",
                            "ES",
                            "SE",
                            "CH",
                            "TW",
                            "TH",
                            "TR",
                            "AE",
                            "GB",
                            "US",
                            "UY",
                            "VE",
                            "VN",
                            "UA"
                        ],
                        "type": "string",
                        "description": "📍 Region used for **Facebook page** sources. Library URLs usually carry their own country in the link.",
                        "default": "ALL"
                    },
                    "period": {
                        "title": "📅 Default time range",
                        "pattern": "^$|^(\\d{4})-(0[1-9]|1[0-2])-(0[1-9]|[12]\\d|3[01])$|^(\\d+)\\s*(day|week|month|year)s?$",
                        "type": "string",
                        "description": "⏳ Optional window when your URL does not already specify one. **Leave empty** to follow the library’s own default. Pick a calendar date or a relative span (e.g. 7 days)—values are passed through as you provide them.",
                        "default": ""
                    },
                    "activeStatus": {
                        "title": "⚡ Ad activity",
                        "enum": [
                            "all",
                            "active",
                            "inactive"
                        ],
                        "type": "string",
                        "description": "🎛️ Filter for **page** sources, or when your Ad Library link leaves this unspecified.",
                        "default": "all"
                    },
                    "proxyConfiguration": {
                        "title": "🛡️ Proxy (optional)",
                        "type": "object",
                        "description": "🏠 Leave off for a standard run. If you enable Apify Proxy here, **only residential** proxy traffic is used for the whole run. Requires proxy access on your Apify plan."
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
