# Facebook Posts Scraper (`scraper-engine/facebook-posts-scraper`) Actor

Scrape publicly available Facebook posts at scale, including text, images, videos, timestamps, reactions, comments, and post URLs. Perfect for research, marketing analysis, sentiment tracking, and dataset creation. Fast, reliable, and ideal for automated Facebook insights.

- **URL**: https://apify.com/scraper-engine/facebook-posts-scraper.md
- **Developed by:** [Scraper Engine](https://apify.com/scraper-engine) (community)
- **Categories:** Lead generation, Social media, Automation
- **Stats:** 146 total users, 5 monthly users, 100.0% runs succeeded, 2 bookmarks
- **User rating**: 5.00 out of 5 stars

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

### 🧩 What does Facebook Posts Scraper do?

A Facebook Posts Scraper is a powerful facebook scraping tool designed to scrape facebook posts and extract facebook data such as comments, reactions, timestamps, media links, and engagement metrics from pages, groups, and profiles without manual effort. ✨

As a reliable facebook data extractor tool and facebook scraper, it supports both small tasks and facebook bulk data extraction through advanced facebook scraping automation workflows. Whether you use an Apify-based solution, a facebook posts scraper tool, or scripts like facebook scraper python, the goal is to turn raw data into structured insights.

With support for integrations via a facebook scraper API or facebook scraping API, this best facebook scraper helps marketers, analysts, and agencies scale data collection efficiently. From research to social listening, this facebook data scraping tool delivers actionable insights for smarter decisions. 🔍📊

### 🛠️ Support and Feedback

- 🐞 **Bug reports:** Open a ticket in the repository **Issues** section  
- ✨ **Custom solutions or feature requests:** Contact our team 📧 **Email:** dev.scraperengine@gmail.com


### 📥 What Facebook Posts Scraper Can I Extract?

A Facebook Posts Scraper is a powerful facebook scraping tool that helps you scrape facebook posts and extract facebook data from pages, groups, and profiles. As a facebook data extractor tool and facebook scraper, it supports both targeted insights and facebook bulk data extraction using facebook scraping automation.

You can use it as a facebook posts scraper tool or integrate via a facebook scraper API or facebook scraping API for scalable workflows. Whether you're using facebook scraper python, GitHub tools, or browser extensions, this facebook data scraping tool delivers structured datasets for analysis.

#### 📊 Extractable Data Table

| Data Type | Description | Example Use |
| --- | --- | --- |
| Post Text | Main content from posts via scrape facebook posts | Content research, sentiment analysis |
| Post ID | Unique identifier extracted using a facebook scraper | Tracking & referencing |
| Timestamps | Publishing time using facebook data extraction | Trend analysis |
| Author Details | Page or user info from a facebook scraping tool | Competitor insights |
| Reactions | Likes, love, etc. via facebook bulk data extraction | Engagement analytics |
| Comments | Extract comments using facebook scraping automation | Customer feedback research |
| Shares Count | Share metrics from a facebook posts scraper tool | Virality tracking |
| Media Links | Images/videos via facebook data scraping tool | Content curation |
| Hashtags | Keywords extracted using a best facebook scraper |  |


#### ⭐ Key Features of Facebook Posts Scraper

A high-performance Facebook Posts Scraper is a powerful facebook scraping tool built to scrape facebook posts and extract facebook data efficiently at scale. As a facebook data extractor tool and facebook scraper, it supports advanced workflows including facebook bulk data extraction and facebook scraping automation.

*   🔍 **Multi-source extraction** — Use a **facebook posts scraper tool** to collect data from pages, groups, and profiles.

*   ⚡ **Fast data processing** — Perform large-scale **facebook data extraction** within seconds.

*   📂 **Flexible export formats** — Export via JSON or integrate with a **facebook scraper API** or **facebook scraping API**.

*   🤖 **Automation-ready** — Enable **facebook scraping automation** for continuous monitoring.

*   🌎 **Developer-friendly tools** — Works with **facebook scraper python**, GitHub tools, and extensions.

*   🧠 **Smart parsing** — Extract reactions, comments, and media using a **facebook data scraping tool**.

*   🔐 **Privacy-aware** — Operates as a compliant **facebook scraper** using public data only.

*   💡 **SEO & marketing insights** — Helps optimize strategies using a **best facebook scraper**.

*   🔄 **Pagination handling** — Supports large datasets with **facebook bulk data extraction**.

*   🧩 **Easy configuration** — Input URLs or IDs for seamless **scrape facebook posts** workflows.   
    

### 🛠️ How to Use Facebook Posts Scraper?

Follow this simple step-by-step guide to extract Facebook posts effortlessly — perfect for Apify users, but also relevant for Python and GitHub versions.

#### 🔧 Step-by-Step Guide

1.  Log in to Apify — Create a free account or sign in.  
      
    
2.  Select the Actor — Search for “Facebook Posts Scraper” or Apify Facebook Posts Scraper.  
      
    
3.  Enter Input Data — Paste Facebook page/group URLs into the startUrls field.  
      
    
4.  Choose Options — Select the number of posts, filters, or media extraction preferences.  
      
    
5.  Run the Actor — Hit Start. The scraper will automatically fetch all Facebook posts.  
      
    
6.  Download Results — Export as JSON, CSV, or Excel for analysis.
    
### 🧩 Input Parameters

#### 📥 JSON Input Example
```json
{
  "includeVideoTranscript": true,
  "oldestPostDateUnified": "2025-08-01",
  "proxyConfiguration": {
    "useApifyProxy": false
  },
  "startUrls": [
    "Cristiano"
  ],
  "maxPosts": 10
}
````

### 📤 Output Format

#### 📤 JSON Output Example

```json
   {
    "facebookUrl": "https://www.facebook.com/Cristiano/",
    "postId": "1528738675279334",
    "pageName": "Cristiano",
    "url": "https://www.facebook.com/Cristiano/posts/pfbid0Dxr2Kpiv5RNSvmqUeTNuSA1Ds1ZoAEE5pxh5YbKzMGWuwWo94hwmmCVEey2ZkgXLl",
    "time": "2026-01-11T19:09:27.000Z",
    "timestamp": 1768158567,
    "user": {
      "id": "100044296486382",
      "name": "Cristiano Ronaldo",
      "profileUrl": "https://www.facebook.com/100044296486382",
      "profilePic": "https://scontent.fdkr5-1.fna.fbcdn.net/v/t39.30808-1/448474001_1102716254548247_2613997786866384047_n.jpg?stp=cp0_dst-jpg_s80x80_tt6&_nc_cat=107&ccb=1-7&_nc_sid=2d3e12&_nc_ohc=Ol4uNlSPTX0Q7kNvwFwLUu1&_nc_oc=Adk7oNuuZIbBTa-09ICiGRt8xCtD7qs43Ur1CzCTHAGv7HBs2zUv1g44liQUaNlE1wQ&_nc_zt=24&_nc_ht=scontent.fdkr5-1.fna&_nc_gid=NmVD0-GbBjxRpnyQgZAGtg&oh=00_Afqt2Olm3FP4m5j3CUE72pYN1q07inthriiwm130y9kL8Q&oe=696AEAA1"
    },
    "text": "Let’s go 🟡🔵",
    "textReferences": [],
    "likes": 246196,
    "comments": 7972,
    "shares": 1256,
    "topReactionsCount": 7,
    "media": [
      {
        "mediaset_token": "pcb.1528738675279334",
        "url": "https://www.facebook.com/Cristiano/posts/pfbid0Dxr2Kpiv5RNSvmqUeTNuSA1Ds1ZoAEE5pxh5YbKzMGWuwWo94hwmmCVEey2ZkgXLl",
        "comet_product_tag_feed_overlay_renderer": null
      }
    ],
    "feedbackId": "ZmVlZGJhY2s6MTUyODczODY3NTI3OTMzNA==",
    "topLevelUrl": "https://www.facebook.com/100044296486382/posts/1528738675279334",
    "facebookId": "100044296486382",
    "pageAdLibrary": {
      "is_business_page_active": false,
      "id": "100044296486382"
    },
    "inputUrl": "https://www.facebook.com/Cristiano/"
  },
```

### 🎯 Use Cases

A Facebook Posts Scraper works as a powerful facebook scraping tool to scrape facebook posts and extract facebook data for multiple industries. As a facebook data extractor tool and facebook scraper, it supports both insights and facebook bulk data extraction using facebook scraping automation.

- 📈 **Marketing & Social Media Analysis** — Use a **facebook posts scraper tool** to track content, engagement, and trends.

- 📰 **Journalism & Research** — Perform large-scale **facebook data extraction** from public discussions and communities.

- 🧩 **Product Feedback Mining** — **Scrape facebook posts** and comments to identify user needs and issues.

- 📊 **Brand Monitoring** — Monitor mentions using a scalable **facebook data scraping tool**.

- 🤝 **Lead Generation** — Analyze group activity with a **facebook scraper** for audience insights.

- 🧠 **AI/ML Dataset Creation** — Build datasets via **facebook bulk data extraction** and API workflows like **facebook scraper API**.

- 🛒 **E-commerce Trend Tracking** — Discover trends using **facebook scraping automation** and structured data collection.

### 💙 Why Choose Us?

Choosing our Facebook Posts Scraper means using a high-performance facebook scraping tool built to scrape facebook posts and extract facebook data reliably at scale. As a modern facebook data extractor tool and facebook scraper, it supports both simple tasks and facebook bulk data extraction with facebook scraping automation.

- 🚀 **Industry-leading speed** — Extract large datasets quickly using a **facebook posts scraper tool**.

- ✔️ **No coding required** — Works for beginners and professionals needing **facebook data extraction**.

- 🔧 **Flexible setup** — Suitable for marketers, analysts, and developers using a **facebook scraper API** or **facebook scraping API**.

- 🔒 **Secure & compliant** — Operates as a safe **facebook data scraping tool** using public data only.

- 🌐 **Cloud-powered automation** — Enables 24/7 **facebook scraping automation**.

- 📊 **Clean output** — Structured data ready for analytics and dashboards.

- 🤖 **Developer-friendly** — Compatible with **facebook scraper python** and GitHub tools.

### 📈 How many results can you scrape with Facebook Posts Scraper?

A scalable **Facebook Posts Scraper** is designed for both small and large workloads using a reliable **facebook scraping tool**. Whether you **scrape facebook posts** for quick insights or run **facebook bulk data extraction**, performance remains stable.

🚀 **Scalability Breakdown**

**Small Scale (1–100 posts)**\
Ideal for quick research using a lightweight **facebook scraper**.

**Medium Scale (100–10,000 posts)**\
Supports deeper **facebook data extraction** for trend analysis.

**Large Scale (10,000+ posts)**\
Built for enterprise-level **facebook scraping automation** and datasets.

With batching and pagination, this **facebook data scraping tool** can extract data from pages, groups, and profiles efficiently using APIs like **facebook scraper API**.

### ⚖️ Is it legal to scrape Facebook Posts?

Using a **Facebook Posts Scraper** or **facebook scraping tool** to **scrape facebook posts** and **extract facebook data** is generally allowed when done responsibly. A compliant **facebook data extractor tool** or **facebook scraper** only collects publicly available information and supports ethical **facebook data extraction** practices.

Scraping is acceptable when:

✔ You use a **facebook data scraping tool** to collect only public data

✔ You follow platform policies while using **facebook scraping automation**

✔ You avoid bypassing login or security restrictions

✔ You comply with local data privacy laws

A **facebook posts scraper tool** does not access private or restricted content. It simply automates visible data collection, similar to manual browsing.

For ethical compliance:

- Do not collect sensitive or personal data
- Use extracted data responsibly
- Follow all applicable platform rule

## 🔗 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.\
Just enter Facebook URLs, page names, group links, keywords, or profile IDs and start scraping instantly

| [🎥 Facebook Videos Scraper](https://apify.com/scraper-engine/facebook-videos-scraper) | [📝 Facebook Video Transcript Extractor](https://apify.com/scraper-engine/facebook-video-transcript) |
|---|---|
| [🎞️ Facebook Reels Scraper](https://apify.com/scraper-engine/facebook-reels-scraper) | [📰 Facebook Page Posts Scraper](https://apify.com/scraper-engine/facebook-page-posts-scraper) |
| [📄 Facebook Pages Scraper](https://apify.com/scraper-engine/facebook-pages-scraper) | [📅 Facebook Event Search Scraper](https://apify.com/scraper-engine/facebook-event-search-scraper) |
| [👥 Facebook Followers Scraper](https://apify.com/scraper-engine/facebook-followers-scraper) | [💬 Facebook Group Post Scraper](https://apify.com/scraper-engine/facebook-group-post-scraper) |
| [🛒 Facebook Marketplace Scraper](https://apify.com/scraper-engine/facebook-marketplace-scraper) | [🔍 Facebook Video Search Scraper](https://apify.com/scraper-engine/facebook-video-search-scraper) |
| [📢 Facebook Ads Library Scraper](https://apify.com/scraper-engine/facebook-ads-library-scraper) | [🎟️ Facebook Events Scraper](https://apify.com/scraper-engine/facebook-events-scraper) |
| [📱 Facebook Profile Phone Number Scraper](https://apify.com/scraper-engine/facebook-profile-phone-number-scraper) | [🔁 Facebook Followers and Following Scraper](https://apify.com/scraper-engine/facebook-followers-following-scraper) |
| [⭐ Facebook Reviews Scraper](https://apify.com/scraper-engine/facebook-reviews-scraper) | [🔗 Facebook URL to ID Scraper](https://apify.com/scraper-engine/facebook-url-to-id) |
| [👪 Facebook Groups Scraper](https://apify.com/scraper-engine/facebook-groups-scraper) | [👤 Facebook Group Profile Scraper](https://apify.com/scraper-engine/facebook-group-profile-scraper) |
| [📊 Facebook Group Posts and Details Scraper](https://apify.com/scraper-engine/facebook-group-posts-and-details-scraper) | [🖼️ Facebook Photos Scraper](https://apify.com/scraper-engine/facebook-photos-scraper) |
| [📧 Facebook Email Scraper](https://apify.com/scraper-engine/facebook-email-scraper) | [📨 Facebook Profile Email Scraper](https://apify.com/scraper-engine/facebook-profile-email-scraper) |
| [📩 Facebook Page Email Scraper](https://apify.com/scraper-engine/facebook-page-email-scraper) | [📞 Facebook Page Phone Number Scraper](https://apify.com/scraper-engine/facebook-page-phone-number-scraper) |
| [☎️ Facebook Phone Number Scraper](https://apify.com/scraper-engine/facebook-phone-number-scraper) |

### ❓ FAQ

#### 1️⃣ Is there a free Facebook Posts Scraper?

Yes. You can use a facebook posts scraper tool or facebook scraping tool free options including GitHub and Python-based facebook scraper solutions.

#### 2️⃣ Can I scrape Facebook group posts?

Yes. A facebook scraper can scrape facebook posts from public groups using facebook data extraction methods.

#### 3️⃣ Does this work with Python?

 Yes. Many developers use facebook scraper python to extract facebook data programmatically.

#### 4️⃣ Is there a Chrome extension?

Yes. Some tools act as lightweight facebook scraping tools for quick data collection.

#### 5️⃣ Does Apify offer a scraper?

Yes. It provides a scalable facebook posts scraper tool with facebook scraping automation.

#### 6️⃣ Can I scrape without coding?

Yes. Online tools and facebook data extractor tools allow no-code scraping.

#### 7️⃣ How many posts can I scrape?

 Thousands, using facebook bulk data extraction and APIs like facebook scraper API.

### 🏁 Conclusion

A Facebook Posts Scraper is a powerful facebook scraping tool that helps you scrape facebook posts and extract facebook data efficiently. Whether using APIs, Python, or no-code tools, this best facebook scraper enables scalable facebook data extraction and smarter insights for marketing, research, and analytics. 🚀

# Actor input Schema

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

📌 **Required.** Enter one or more Facebook *page* targets.

• **Full URL:** `https://www.facebook.com/nytimes/` or `https://www.facebook.com/Cristiano/`
• **Username only:** `nytimes`, `Cristiano`, `iamsrk` — the actor will turn these into full URLs.

You can mix URLs and usernames. Each target is scraped in sequence (one page after another) to reduce rate limits. 🔄

## `maxPosts` (type: `integer`):

🎯 **Limit how many posts to collect *per target page*.**

• Minimum: **1** — Maximum: **10,000**.
• Default: **10** — Good for quick tests.
• Increase for deeper timelines (e.g. 50–500). The actor stops once this count is reached for each page. 🛑

## `includeVideoTranscript` (type: `boolean`):

📝 **Capture video captions & transcripts!**

• **ON** ✨ — Extracts closed captions/transcripts from video & reel posts into the output.
• **OFF** — Video posts still appear with metadata, but no transcript text.

Default: **OFF** for faster scraping. Turn **ON** when you need subtitle/caption data. 🎬

## `timeoutMode` (type: `string`):

Choose how per-target timeout is determined. **Auto** scales timeout from requested post count. **Manual** uses your custom timeout value.

## `targetTimeoutSecs` (type: `integer`):

Used only when Timeout Mode is set to **Manual**. The actor will stop a target when this time limit is reached.

## `oldestPostDateUnified` (type: `string`):

⏳ **Only include posts *after* this date.**

• **Absolute:** Pick a calendar date (e.g. `2024-01-01`).
• **Relative:** e.g. `7` days, `2` months, `1` year — counted backward from today.

Leave empty to allow posts from any past date. Combines with "Posts Older Than" for a window. 🗓️

## `newestPostDate` (type: `string`):

🛑 **Only include posts *before* this date.**

• **Absolute:** e.g. `2024-12-31`.
• **Relative:** e.g. `0` for “today” or a number of days/months/years ago.

Use together with "Posts Newer Than" to scrape a precise date range. Leave empty for no end limit. 📆

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

🛡️ **Anti-block & reliability.**

• The actor **prefers Apify Residential proxy** when available for higher success rates.
• If residential isn’t set, it falls back to **Apify Datacenter** proxy.
• You can optionally provide **custom proxy URLs** here as a fallback.

No proxy configuration is required for basic runs; the actor will use Apify proxy when possible. 🔒

## Actor input object example

```json
{
  "startUrls": [
    "iamsrk",
    "https://www.facebook.com/nytimes/"
  ],
  "maxPosts": 10,
  "includeVideoTranscript": false,
  "timeoutMode": "auto",
  "targetTimeoutSecs": 1200,
  "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/nytimes"
    ],
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("scraper-engine/facebook-posts-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/nytimes"],
    "proxyConfiguration": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("scraper-engine/facebook-posts-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/nytimes"
  ],
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}' |
apify call scraper-engine/facebook-posts-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Facebook Posts Scraper",
        "description": "Scrape publicly available Facebook posts at scale, including text, images, videos, timestamps, reactions, comments, and post URLs. Perfect for research, marketing analysis, sentiment tracking, and dataset creation. Fast, reliable, and ideal for automated Facebook insights.",
        "version": "0.1",
        "x-build-id": "GCKZLxmlSxcYpqE6i"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/scraper-engine~facebook-posts-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-scraper-engine-facebook-posts-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/scraper-engine~facebook-posts-scraper/runs": {
            "post": {
                "operationId": "runs-sync-scraper-engine-facebook-posts-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/scraper-engine~facebook-posts-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-scraper-engine-facebook-posts-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": [
                    "startUrls"
                ],
                "properties": {
                    "startUrls": {
                        "title": "🔗 Facebook Page URLs or Usernames",
                        "type": "array",
                        "description": "📌 **Required.** Enter one or more Facebook *page* targets.\n\n• **Full URL:** `https://www.facebook.com/nytimes/` or `https://www.facebook.com/Cristiano/`\n• **Username only:** `nytimes`, `Cristiano`, `iamsrk` — the actor will turn these into full URLs.\n\nYou can mix URLs and usernames. Each target is scraped in sequence (one page after another) to reduce rate limits. 🔄",
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxPosts": {
                        "title": "📊 Maximum Posts per Page",
                        "minimum": 1,
                        "maximum": 1000000,
                        "type": "integer",
                        "description": "🎯 **Limit how many posts to collect *per target page*.**\n\n• Minimum: **1** — Maximum: **10,000**.\n• Default: **10** — Good for quick tests.\n• Increase for deeper timelines (e.g. 50–500). The actor stops once this count is reached for each page. 🛑",
                        "default": 10
                    },
                    "includeVideoTranscript": {
                        "title": "🎥 Include Video Transcripts",
                        "type": "boolean",
                        "description": "📝 **Capture video captions & transcripts!**\n\n• **ON** ✨ — Extracts closed captions/transcripts from video & reel posts into the output.\n• **OFF** — Video posts still appear with metadata, but no transcript text.\n\nDefault: **OFF** for faster scraping. Turn **ON** when you need subtitle/caption data. 🎬",
                        "default": false
                    },
                    "timeoutMode": {
                        "title": "⏱️ Timeout Mode",
                        "enum": [
                            "auto",
                            "manual"
                        ],
                        "type": "string",
                        "description": "Choose how per-target timeout is determined. **Auto** scales timeout from requested post count. **Manual** uses your custom timeout value.",
                        "default": "auto"
                    },
                    "targetTimeoutSecs": {
                        "title": "⏳ Per-Target Timeout (seconds)",
                        "minimum": 60,
                        "maximum": 72000,
                        "type": "integer",
                        "description": "Used only when Timeout Mode is set to **Manual**. The actor will stop a target when this time limit is reached.",
                        "default": 1200
                    },
                    "oldestPostDateUnified": {
                        "title": "📅 Posts Newer Than (Start Date)",
                        "type": "string",
                        "description": "⏳ **Only include posts *after* this date.**\n\n• **Absolute:** Pick a calendar date (e.g. `2024-01-01`).\n• **Relative:** e.g. `7` days, `2` months, `1` year — counted backward from today.\n\nLeave empty to allow posts from any past date. Combines with \"Posts Older Than\" for a window. 🗓️"
                    },
                    "newestPostDate": {
                        "title": "⌛ Posts Older Than (End Date)",
                        "type": "string",
                        "description": "🛑 **Only include posts *before* this date.**\n\n• **Absolute:** e.g. `2024-12-31`.\n• **Relative:** e.g. `0` for “today” or a number of days/months/years ago.\n\nUse together with \"Posts Newer Than\" to scrape a precise date range. Leave empty for no end limit. 📆"
                    },
                    "proxyConfiguration": {
                        "title": "🌐 Proxy Settings",
                        "type": "object",
                        "description": "🛡️ **Anti-block & reliability.**\n\n• The actor **prefers Apify Residential proxy** when available for higher success rates.\n• If residential isn’t set, it falls back to **Apify Datacenter** proxy.\n• You can optionally provide **custom proxy URLs** here as a fallback.\n\nNo proxy configuration is required for basic runs; the actor will use Apify proxy when possible. 🔒"
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
