# Facebook Reviews Scraper (`parseforge/facebook-reviews-scraper`) Actor

Scrapes Facebook page reviews from public URLs and returns each review as a flat row with author, rating, text, and date. No login or API key required.

- **URL**: https://apify.com/parseforge/facebook-reviews-scraper.md
- **Developed by:** [ParseForge](https://apify.com/parseforge) (community)
- **Categories:** Social media, Lead generation, Other
- **Stats:** 2 total users, 0 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.69 / 1,000 result items

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — 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

[![ParseForge](https://raw.githubusercontent.com/ParseForge/apify-assets/main/banner.jpg)](https://apify.com/parseforge?fpr=vmoqkp)

### Facebook Reviews Scraper

**Scrape Facebook reviews from any public page, up to a million per run.** Each review comes with its author, rating, text, and date. No login, no API key. Export to CSV, JSON, Excel, or XML.

Facebook's official Graph API requires app review, page access tokens, and strict rate limits. This reads the public reviews feed directly from any Facebook page URL, filters by count, and returns each review in one fixed schema. A Facebook Reviews scraper that works without login or API key.

| Who uses it | What they scrape Facebook for |
|---|---|
| Local business owners | Monitor what customers say about their own Facebook page |
| Market researchers | Compare customer sentiment across competitor pages |
| Reputation managers | Track review volume and rating changes over time |
| Data analysts | Build datasets of Facebook reviews for modeling or reporting |

### What it does

This Actor collects Facebook reviews from page URLs you provide and returns each review as a flat row with author, rating, text, and date.

- 🔗 **Page URLs:** paste one or more Facebook page links, like https://www.facebook.com/McDonalds/
- 🔢 **Review limits:** set a global maxItems or a per-page maxReviewsPerPage to cap the run
- 📄 **Flat rows:** every review is returned as one record, ready for export to CSV, JSON, Excel, or XML

Results export to CSV, JSON, Excel, or XML, or straight from the API.

### What you can do with Facebook data

**📈 Track review trends.**

A local restaurant owner runs the scraper weekly on their own page to see how new reviews affect their average rating.

**🔍 Competitor analysis.**

A market researcher scrapes reviews from three competing gyms to compare what customers praise or complain about.

**🛡️ Reputation monitoring.**

A PR agency sets up a scheduled run on a client's page to catch negative reviews within a day of posting.

**📊 Dataset building.**

A data analyst collects 50,000 reviews from a retail chain to train a sentiment classifier.

### Why choose this scraper

|  | What you get |
|---|---|
| **No API key** | Scrape public Facebook reviews without registering an app or getting a token |
| **Bulk pages** | Pass multiple page URLs in one run and collect reviews from all of them |
| **Fixed schema** | Every review has the same fields, so you can merge runs without cleaning |
| **Export anywhere** | Download as CSV, JSON, Excel, or XML, or push to a dataset via API |

### How it compares

No other Store actor targets Facebook the same way, so the honest comparison is with the alternatives teams actually weigh.

| | Facebook Reviews Scraper | Build it in-house | By hand |
|---|---|---|---|
| Setup | Run it now, zero config | Days of engineering | None, but hours per pull |
| When Facebook changes | Maintained for you | You fix it | You re-learn the page |
| Proxies, retries, anti-bot | Built in | Your problem | Browser only |
| Output | Fixed JSON schema, CSV/Excel export | Whatever you build | Copy-paste |
| Cost | Pay per result | Engineering time | Analyst hours |

### Configure the run

Drive the Actor from Facebook page URLs and set a maximum number of reviews per run or per page. Only reviews that match your limits reach the dataset. The Input tab lists every parameter.

A first run with the defaults:

```json
{
  "startUrls": [
    {
      "url": "https://www.facebook.com/McDonalds/"
    }
  ],
  "maxItems": 10
}
```

A larger pull:

```json
{
  "startUrls": [
    {
      "url": "https://www.facebook.com/McDonalds/"
    }
  ],
  "maxItems": 200
}
```

### Pricing

Pay-per-result: **$0.005 per result** collected. You pay only for the results written to your dataset.

| Results collected | Approximate cost |
|---|---|
| 100 results | $0.50 |
| 1,000 results | $5.00 |
| 10,000 results | $50.00 |

New Apify accounts start with $5 in free credit.

### Free users

Free-plan runs return up to 10 results as a preview. [Upgrade your Apify plan](https://console.apify.com/sign-up?fpr=vmoqkp) to collect up to 1,000,000 results per run.

### Run it

1. [Create a free Apify account with $5 in credit](https://console.apify.com/sign-up?fpr=vmoqkp).
2. Open the [Facebook Reviews Scraper](https://apify.com/parseforge/facebook-reviews-scraper?fpr=vmoqkp).
3. Set your inputs and any filters, then click **Start**.
4. Export the results as CSV, Excel, JSON, or XML from the **Dataset** tab.

Run it programmatically through the [Apify API](https://docs.apify.com/api/v2) (`run-sync-get-dataset-items`) or the [ApifyClient](https://docs.apify.com/api/client/js) for JavaScript and Python.

### Use with AI agents (MCP)

Give an AI agent live access to Facebook through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:

```bash
claude mcp add --transport http apify "https://mcp.apify.com/?tools=parseforge/facebook-reviews-scraper"
```

Then prompt it in plain language to run the scraper and read back the results.

### Troubleshooting

**Why am I getting no results?**

Make sure the page URL is correct and the page is public. Open the URL in a private browser window. If you see no reviews tab, the page has no public reviews.

**Why did the run stop before reaching maxItems?**

Facebook may stop paginating after a certain number of reviews for large pages. Try increasing maxReviewsPerPage or splitting the run into smaller chunks.

**Why are some reviews missing?**

Facebook sometimes hides reviews from logged-out users, especially if they are old or flagged. The scraper can only return what is publicly visible.

**Why is the run slow?**

Facebook pagination can be slow for pages with thousands of reviews. Use maxReviewsPerPage to limit each page, or run multiple pages in parallel by increasing the actor's memory.

**Can I get the reviewer's profile link?**

The scraper returns the author name as shown on the review. Facebook does not expose profile links in the public reviews feed, so that field is not available.

### FAQ

| Question | Answer |
|---|---|
| Do I need a Facebook login or API key? | No. The scraper reads the public reviews feed that Facebook shows to logged-out visitors. You only need the page URL. |
| Can I scrape reviews from a private Facebook page? | No. Only public pages that show reviews to anyone are accessible. Private or age-restricted pages will return no results. |
| How many reviews can I get in one run? | You can set maxItems up to 1,000,000. Facebook may paginate slowly for very large pages, so plan run time accordingly. |
| What does each review row contain? | Each row includes the review author, star rating, review text, and date, plus the page URL it came from. The exact field list is shown in the sample output. |
| Can I scrape multiple Facebook pages at once? | Yes. Add multiple URLs to startUrls and the scraper will process them in one run. Use maxReviewsPerPage to cap each page separately. |
| Does this work for Facebook Marketplace or Groups? | No. This actor only scrapes page reviews, not Marketplace listings or Group posts. |
| Is this legal? | Scraping public data is generally allowed, but you must comply with Facebook's terms and any local laws. Review Meta's terms before large-scale scraping. |
| Can I schedule this scraper to run daily? | Yes. Use Apify's scheduler to run it on a cron, and enable notifications to get new reviews pushed to email or Slack. |
| What output formats are supported? | You can export the dataset as CSV, JSON, Excel, or XML from the Apify console, or use the API to fetch results programmatically. |
| Why did I get fewer reviews than maxItems? | The page may have fewer reviews than your limit, or Facebook may hide some reviews from logged-out visitors. Check the page in a private browser window to see what is public. |

### Related actors

Browse the full [ParseForge collection](https://apify.com/parseforge?fpr=vmoqkp) for more scrapers.

🆘 **Need help?** Email parseforge@protonmail.com with your run ID, your input, and what you expected.

⚠️ **Disclaimer.** This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by Meta Platforms, Inc. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.

# Actor input Schema

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

List of Facebook page URLs to scrape reviews from. Example: https://www.facebook.com/McDonalds/

## `maxItems` (type: `integer`):

How many reviews to collect per run.

## `maxReviewsPerPage` (type: `integer`):

Maximum number of reviews to scrape per Facebook page. Leave empty to use maxItems as the global limit.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.facebook.com/McDonalds/"
    }
  ],
  "maxItems": 10
}
```

# Actor output Schema

## `results` (type: `string`):

Dataset with scraped Facebook reviews

# 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": [
        {
            "url": "https://www.facebook.com/McDonalds/"
        }
    ],
    "maxItems": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("parseforge/facebook-reviews-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": [{ "url": "https://www.facebook.com/McDonalds/" }],
    "maxItems": 10,
}

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

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).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": [
    {
      "url": "https://www.facebook.com/McDonalds/"
    }
  ],
  "maxItems": 10
}' |
apify call parseforge/facebook-reviews-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,parseforge/facebook-reviews-scraper"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/yVjMe0T6M0iErEkjM/builds/rKQFUg5KKSFQD95Gv/openapi.json
