# Meta Ads Library Scraper (`scraperhive/meta-ads-library-scraper`) Actor

Scrape ads from the Facebook Ads Library by keyword or Facebook Page URL. Extract ad copy, creatives, targeting,CTA, start/end dates & compliance data. Export to JSON, CSV or Excel. $0.005 per ad — pay only for results.

- **URL**: https://apify.com/scraperhive/meta-ads-library-scraper.md
- **Developed by:** [Mubeen Ali](https://apify.com/scraperhive) (community)
- **Categories:** Social media, Lead generation, E-commerce
- **Stats:** 3 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $5.00 / 1,000 ad scrapeds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## 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

## Meta Ads Library Scraper — Scrape Facebook Ads Library at Scale

Extract structured ad data from the **Facebook Ads Library** (Meta Ads Library) by keyword search or directly from any Facebook Page — no API key required, no manual browsing. Built on [Apify](https://apify.com), ready to run in seconds.

> **Pricing:** $0.005 per ad · $5.00 per 1,000 ads · Actor start fee: $0.0005 USD (pay-per-event model)

---

### What Is the Meta Ads Library Scraper?

The **Meta Ads Library Scraper** is an Apify actor that automates data extraction from the [Facebook Ads Library](https://www.facebook.com/ads/library/) — Meta's public transparency database of all ads running across Facebook, Instagram, Messenger, and the Audience Network.

Whether you are doing **competitive ad intelligence**, **market research**, **brand monitoring**, or **compliance auditing**, this scraper delivers clean, structured JSON data for every ad it finds — at scale, on demand, via the Apify platform or API.

---

### What Data Does It Extract?

Every scraped ad is returned as a structured JSON object. Below is a full breakdown of every field the actor outputs:

#### 🗂️ Ad Identity
| Field | Description |
|---|---|
| `ad_archive_id` | Unique identifier for the ad in Meta's archive |
| `collation_id` | Groups related ad variants together |
| `collation_count` | Number of variants in the same collation group |

#### 📄 Page / Advertiser Info
| Field | Description |
|---|---|
| `page.id` | Facebook Page ID of the advertiser |
| `page.name` | Display name of the advertising page |
| `page.profile_url` | Direct URL to the Facebook Page |
| `page.picture_url` | Profile picture URL of the page |
| `page.like_count` | Total likes/followers of the page |
| `page.categories` | Business category (e.g., Shopping, Finance) |
| `page.is_deleted` | Whether the page has been deleted |

#### 📝 Ad Content
| Field | Description |
|---|---|
| `content.ad_text` | Primary body text / copy of the ad |
| `content.title` | Ad headline or product title |
| `content.caption` | Domain caption shown on the ad |
| `content.display_format` | Format type (e.g., DPA, image, video, carousel) |
| `content.cta_text` | Call-to-action button label (e.g., "Shop Now", "Install now") |
| `content.cta_type` | CTA type identifier |
| `content.link_url` | Destination URL the ad links to |
| `content.link_description` | Link description text |
| `content.extra_links` | Additional links associated with the ad |

#### 🖼️ Media
| Field | Description |
|---|---|
| `media.media_urls` | URLs of image creatives used in the ad |
| `media.video_urls` | URLs of video creatives |
| `media.video_details` | Detailed metadata about video content |

#### 🎯 Targeting & Schedule
| Field | Description |
|---|---|
| `targeting.country` | Country targeting setting |
| `targeting.platform` | Platforms the ad runs on (facebook, instagram, etc.) |
| `targeting.targeted_or_reached_countries` | Countries targeted or reached |
| `targeting.start_date` | Date the ad started running |
| `targeting.end_date` | Date the ad stopped (or expected end) |
| `targeting.is_active` | Whether the ad is currently active |

#### 📊 Compliance & Safety
| Field | Description |
|---|---|
| `compliance.gated_type` | Eligibility status (e.g., ELIGIBLE) |
| `compliance.categories` | Compliance category (e.g., UNKNOWN, political) |
| `compliance.contains_sensitive_content` | Sensitive content flag |
| `compliance.contains_digital_created_media` | AI/digitally created media flag |
| `compliance.is_aaa_eligible` | AAA (About Ads) eligibility |
| `compliance.hide_data_status` | Whether data is hidden |
| `compliance.has_user_reported` | User-reported flag |
| `compliance.finserv_is_deemed` | Financial services compliance flag |
| `compliance.finserv_is_limited_delivery` | Limited delivery for financial ads |
| `scrapedAt` | ISO timestamp of when the actor scraped this ad |

---

### Sample Output

```json
{
  "ad_archive_id": "1555263375851429",
  "collation_id": null,
  "collation_count": 1,
  "page": {
    "id": "112727500143177",
    "name": "Whatnot",
    "profile_url": "https://www.facebook.com/RealWhatnot/",
    "picture_url": "https://scontent.fcpq7-1.fna.fbcdn.net/...",
    "like_count": 228076,
    "categories": ["Shopping"],
    "is_deleted": false
  },
  "content": {
    "ad_text": "Vintage and new Pokémon cards starting at $1 ⚡️Live on Whatnot!",
    "title": "{{product.name}}",
    "caption": "itunes.apple.com",
    "display_format": "DPA",
    "cta_text": "Install now",
    "cta_type": "INSTALL_MOBILE_APP",
    "link_url": "http://itunes.apple.com/app/id1488269261"
  },
  "media": {
    "media_urls": [],
    "video_urls": [],
    "video_details": []
  },
  "targeting": {
    "country": "ALL",
    "platform": ["facebook", "instagram"],
    "start_date": "2025-09-11T07:00:00.000Z",
    "end_date": "2026-05-26T07:00:00.000Z",
    "is_active": true
  },
  "compliance": {
    "gated_type": "ELIGIBLE",
    "categories": ["UNKNOWN"],
    "contains_sensitive_content": false,
    "contains_digital_created_media": false,
    "is_aaa_eligible": false
  },
  "scrapedAt": "2026-05-26T08:42:05.226Z"
}
````

***

### Key Features

#### ✅ Keyword Search & Page Scraping

Accepts two types of input URLs:

- **Ads Library search URLs** — any URL from `facebook.com/ads/library/` with your keyword, country, and filter parameters already applied
- **Facebook Page URLs** — any URL in the format `facebook.com/pageName` to scrape all ads run by a specific advertiser

#### ✅ Ad Status Filtering

Filter results by ad status using the `status` parameter:

- `all` — active and inactive ads
- `active` — only currently running ads
- `inactive` — only stopped ads

#### ✅ Configurable Ad Limit

Use `maxAds` to cap how many ads are scraped per run. Set to `0` for unlimited scraping — the actor will collect every matching ad it can find.

#### ✅ Structured JSON Output

Every ad is returned as a flat, consistent JSON object — ready to export to CSV, Excel, or pipe directly into your database or data warehouse via the Apify API.

#### ✅ Scalable on Apify Infrastructure

Runs on Apify's managed cloud infrastructure. No local setup, no browser management, no proxy headaches. Start a run from the UI or trigger it programmatically via the API.

#### ✅ Pay-Per-Event Pricing

You are only charged for ads that are successfully scraped and pushed to the dataset. No wasted credits on failed runs or empty results.

***

### How to Use — Step by Step

#### Method 1: Scrape by Keyword Search

1. Go to <https://www.facebook.com/ads/library/>
2. Select your country, ad category, and type your keyword (e.g., `perfume`, `insurance`, `sneakers`)
3. Apply any filters you want (active only, by platform, etc.)
4. **Copy the full URL from your browser's address bar**
5. Open this actor on Apify and paste the URL into the **Ads Library URLs** field
6. Set your `status` filter and `maxAds` limit (optional)
7. Click **Start** and wait for results
8. Export your data as JSON, CSV, or Excel from the **Dataset** tab

**Example input URL:**

```
https://www.facebook.com/ads/library/?active_status=all&ad_type=all&country=PK&q=perfume&search_type=keyword_unordered&media_type=all
```

#### Method 2: Scrape Ads from a Facebook Page

1. Find the Facebook Page of the brand or advertiser you want to research
2. Copy the page URL (e.g., `https://www.facebook.com/nike/`)
3. Paste it into the **Ads Library URLs** field
4. Run the actor — it will find and scrape all ads associated with that page

***

### Input Configuration Reference

```json
{
  "urls": [
    "https://www.facebook.com/ads/library/?active_status=active&ad_type=all&country=US&q=insurance&search_type=keyword_unordered&media_type=all"
  ],
  "status": "active",
  "maxAds": 500
}
```

| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| `urls` | array of strings | ✅ Yes | — | One or more Facebook Ads Library URLs or Facebook Page URLs |
| `status` | string | No | `all` | Filter by ad status: `all`, `active`, or `inactive` |
| `maxAds` | integer | No | `0` | Maximum number of ads to collect. `0` = unlimited |

***

### How to Use via API

You can trigger this actor programmatically and retrieve results without ever opening the Apify console. This is ideal for scheduled competitive research pipelines, automated alerts, or integration with your own application.

#### Start a Run via API

```bash
curl -X POST "https://api.apify.com/v2/acts/YOUR_ACTOR_ID/runs?token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "urls": [
      "https://www.facebook.com/ads/library/?active_status=active&ad_type=all&country=US&q=nike&search_type=keyword_unordered&media_type=all"
    ],
    "status": "active",
    "maxAds": 1000
  }'
```

#### Fetch Results from the Dataset

```bash
curl "https://api.apify.com/v2/actor-runs/RUN_ID/dataset/items?token=YOUR_API_TOKEN&format=json"
```

#### JavaScript / Node.js Example

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

const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });

const run = await client.actor('YOUR_ACTOR_ID').call({
  urls: [
    'https://www.facebook.com/ads/library/?active_status=all&ad_type=all&country=US&q=fitness&search_type=keyword_unordered&media_type=all'
  ],
  status: 'all',
  maxAds: 500,
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
```

#### Python Example

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_API_TOKEN")

run = client.actor("YOUR_ACTOR_ID").call(run_input={
    "urls": [
        "https://www.facebook.com/ads/library/?active_status=active&ad_type=all&country=GB&q=skincare&search_type=keyword_unordered&media_type=all"
    ],
    "status": "active",
    "maxAds": 1000
})

for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)
```

For full API documentation, visit the [Apify API Reference](https://docs.apify.com/api/v2).

***

### Pricing

This actor uses a **pay-per-event** billing model — you are charged only for ads that are successfully scraped and written to your dataset.

| What | Cost |
|---|---|
| Per successfully scraped ad | **$0.005 USD** |
| Per 1,000 ads | **$5.00 USD** |
| Actor start fee (per run) | **$0.0005 USD** |

There are no monthly minimums or seat fees. You only pay for results. This model makes the actor ideal for both one-off research tasks and high-volume automated pipelines.

**Cost examples:**

- Scraping 200 competitor ads for a quick brand audit → ~$1.00
- Collecting 10,000 ads for a market research report → ~$50.00
- Running a daily monitor of 500 ads per day → ~$75/month

You can cap costs precisely using the `maxAds` parameter.

***

### Use Cases

#### 🔍 Competitive Intelligence

Monitor what ads your competitors are running — their copy, creatives, CTAs, and how long campaigns have been active. Track when they launch new products or promotions.

#### 📊 Market Research

Search any keyword across any country to understand how brands in your industry advertise. Identify messaging patterns, seasonal trends, and underserved niches.

#### 🎯 Ad Creative Inspiration

Build a swipe file of high-performing ad copy and creative formats from top advertisers in your vertical — filtered by platform (Facebook, Instagram) and ad status.

#### 🏷️ Brand Monitoring

Track ads being run by any specific Facebook Page to monitor a brand's advertising activity over time. Useful for agencies managing client accounts and needing to watch competitor brands.

#### ⚖️ Compliance & Transparency Auditing

The Facebook Ads Library is the official source for ad transparency. Researchers, journalists, and compliance teams use this data to audit political advertising, financial services ads, and sensitive content categories.

#### 📈 Agency & Freelancer Reporting

Build client-ready reports on competitor ad activity. Show clients exactly what the competition is doing and use real data to inform creative strategy.

#### 🔗 Data Pipeline Integration

Feed scraped ad data into your data warehouse (BigQuery, Snowflake, Redshift), BI tool (Looker, Tableau, Power BI), or CRM via Apify's native integrations and webhooks.

***

### Integrations

Once your data is in Apify's dataset, you can push it anywhere:

- **Webhooks** — trigger downstream actions when a run finishes
- **Apify API** — fetch results in JSON, CSV, XML, or Excel
- **Make (formerly Integromat)** — connect to thousands of SaaS tools without code
- **Zapier** — automate workflows between Apify and your stack
- **Google Sheets** — export directly for collaborative analysis
- **Amazon S3 / Google Cloud Storage** — archive large datasets

***

### Is It Legal to Scrape the Facebook Ads Library?

The Facebook Ads Library is a **public transparency tool** created by Meta specifically to allow public inspection of all active and past ads. Unlike profile scraping, the Ads Library contains no private user data — it is intentionally public by design.

This actor only collects data that Meta has made publicly available through the Ads Library. It does not collect private user information, personal profiles, messages, or any data behind a login wall.

That said, you should always ensure your use of scraped data complies with applicable laws in your jurisdiction, including data protection regulations like GDPR in the EU. If you are unsure whether your intended use is compliant, consult a legal professional.

For broader context on web scraping legality, see [Apify's guide on the legality of web scraping](https://blog.apify.com/is-web-scraping-legal/).

***

### Frequently Asked Questions

**Do I need a Facebook account or API key to use this?**
No. The Facebook Ads Library is publicly accessible and this actor does not require any Facebook credentials or Meta API keys.

**What countries does the Ads Library cover?**
Meta's Ads Library covers ads running in all countries. You can filter by country directly in the search URL using the `country=` parameter (e.g., `country=US`, `country=GB`, `country=PK`).

**Can I scrape ads from a specific advertiser?**
Yes. Paste the Facebook Page URL of any advertiser (e.g., `https://www.facebook.com/nike/`) into the `urls` field and the actor will scrape all ads associated with that page.

**How many ads can I scrape per run?**
As many as you need. Set `maxAds` to `0` for unlimited. For large-scale collections, Apify handles scaling automatically.

**Can I filter for only active ads?**
Yes. Set the `status` parameter to `active` to return only currently running ads.

**Can I schedule the actor to run automatically?**
Yes. Use Apify's built-in scheduler to run this actor on a daily, weekly, or custom cron schedule — ideal for ongoing competitor monitoring.

**What format is the output in?**
Data is stored in Apify's dataset and can be exported as JSON, CSV, Excel (XLSX), XML, or RSS.

***

### Feedback & Support

Found a bug or have a feature request? Please open an issue on the **Issues** tab in the Apify Console. We monitor all issues and aim to respond promptly.

We are continuously improving this actor's reliability, speed, and output schema based on user feedback.

***

### Keywords

facebook ads library scraper, meta ads library scraper, scrape facebook ads, facebook ad library data extraction, facebook ads scraper apify, meta ads scraper, scrape meta ads library, facebook advertising data, competitor ad research tool, facebook ads intelligence, ad library api alternative, facebook page ads scraper, scrape facebook page ads, facebook ads monitor, meta transparency library scraper, social media ad scraper, facebook ads data export, apify facebook scraper, facebook ads competitive analysis, extract facebook ads data, facebook ads library api

# Actor input Schema

## `urls` (type: `array`):

Array of Facebook Ads Library URLs. Must contain facebook.com/ads/library/

## `status` (type: `string`):

Filter ads by active status. Injected into URL as active\_status=.

## `maxAds` (type: `integer`):

Stop after this many ads per run. 0 = scrape everything.

## Actor input object example

```json
{
  "urls": [
    "https://www.facebook.com/ads/library/?active_status=all&ad_type=all&country=US&q=perfume&search_type=keyword_unordered&media_type=all"
  ],
  "status": "all",
  "maxAds": 10
}
```

# 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 = {
    "urls": [
        "https://www.facebook.com/ads/library/?active_status=all&ad_type=all&country=US&q=perfume&search_type=keyword_unordered&media_type=all"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("scraperhive/meta-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 = { "urls": ["https://www.facebook.com/ads/library/?active_status=all&ad_type=all&country=US&q=perfume&search_type=keyword_unordered&media_type=all"] }

# Run the Actor and wait for it to finish
run = client.actor("scraperhive/meta-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 '{
  "urls": [
    "https://www.facebook.com/ads/library/?active_status=all&ad_type=all&country=US&q=perfume&search_type=keyword_unordered&media_type=all"
  ]
}' |
apify call scraperhive/meta-ads-library-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Meta Ads Library Scraper",
        "description": "Scrape ads from the Facebook Ads Library by keyword or Facebook Page URL. Extract ad copy, creatives, targeting,CTA, start/end dates & compliance data. Export to JSON, CSV or Excel. $0.005 per ad — pay only for results.",
        "version": "1.0",
        "x-build-id": "mp4t7SJlC8alDhtcn"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/scraperhive~meta-ads-library-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-scraperhive-meta-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/scraperhive~meta-ads-library-scraper/runs": {
            "post": {
                "operationId": "runs-sync-scraperhive-meta-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/scraperhive~meta-ads-library-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-scraperhive-meta-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",
                "required": [
                    "urls"
                ],
                "properties": {
                    "urls": {
                        "title": "Ads Library URLs",
                        "type": "array",
                        "description": "Array of Facebook Ads Library URLs. Must contain facebook.com/ads/library/",
                        "items": {
                            "type": "string"
                        }
                    },
                    "status": {
                        "title": "Ad Status Filter",
                        "enum": [
                            "all",
                            "active",
                            "inactive"
                        ],
                        "type": "string",
                        "description": "Filter ads by active status. Injected into URL as active_status=.",
                        "default": "all"
                    },
                    "maxAds": {
                        "title": "Max Ads (0 = unlimited)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Stop after this many ads per run. 0 = scrape everything.",
                        "default": 10
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
