Facebook Reviews Scraper - Recommendations, Comments & Photos avatar

Facebook Reviews Scraper - Recommendations, Comments & Photos

Pricing

from $2.00 / 1,000 review scrapeds

Go to Apify Store
Facebook Reviews Scraper - Recommendations, Comments & Photos

Facebook Reviews Scraper - Recommendations, Comments & Photos

Scrape public reviews (recommendations) from any Facebook Page: reviewer, date, recommends or not, text, tags, photos, reactions and comment counts, plus the Page's recommend % and review count. Page search, filters and monitor mode for new reviews. Optional review comments. No login or cookies.

Pricing

from $2.00 / 1,000 review scrapeds

Rating

0.0

(0)

Developer

Top Api

Top Api

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

0

Monthly active users

15 hours ago

Last modified

Categories

Share

What does Facebook Reviews Scraper do?

Facebook Reviews Scraper extracts the public reviews (recommendations) of any Facebook Page and turns each one into a structured row: the reviewer, the date, whether they recommend the Page or not, the review text, the tags they picked, photos, reactions and comment counts, plus the Page's own "% recommend" score. Built for local marketers, reputation-management agencies and brand teams who need Facebook reviews in a spreadsheet, a CRM or a dashboard without copying them by hand.

Facebook reviews scraper · Facebook recommendations scraper · Facebook page reviews extractor

Facebook Page reviews tab with its recommend score that Facebook Reviews Scraper turns into rows

  • Every public review of a Page: reviewer, date, recommends / doesn't recommend, text, tags, photos, reactions by type, comment and share counts
  • The Page's score on every row: the "98% recommend (52,497 reviews)" line, split into pageRecommendPercent and pageReviewsCount, plus followers, verified badge and the Page's Ad Library id
  • Many Pages per run: paste Page URLs, usernames or numeric Page ids, or look Pages up by business name with Facebook's own Page search
  • Filters: positive or negative only, a date window, keywords, text-only or photo-only reviews
  • Review comments (optional): the replies under each review, often the business owner's answer
  • No login required: no Facebook account, cookies or API key
  • Monitor mode: run it on a schedule and get only the reviews posted since the last run
  • Export anywhere: JSON, CSV, Excel, XML, RSS; schedules, webhooks, Make, Zapier, n8n, Google Sheets, Slack, the Apify API and MCP

What data can you get from Facebook reviews?

👍 Recommends or not (`isRecommended`)📝 Review text (`text`)📅 Date posted (`date`)
🏷️ Review tags (`tags`)👤 Reviewer name and avatar (`user`)🔗 Review link (`url`)
❤️ Reactions by type (`reactions`)💬 Comment count (`commentsCount`)🔁 Share count (`sharesCount`)
📷 Review photos (`photos`)🗨️ Review comments (`comments`, add-on)⭐ Page "% recommend" (`pageRecommendPercent`)
🔢 Page review count (`pageReviewsCount`)🏢 Page name, username and id👥 Page followers (`pageFollowers`)
✅ Page verified badge📣 Page Ad Library id (`pageAdLibrary`)🔎 The search name that found the Page

On a 1,031-review test run across three Pages, 96% of reviews had text, 45% had tags and 15% had photos; the verdict, date, reviewer, reactions and the Page's score were filled on every row (the verdict on 99.5%, see the fields table).

How to scrape Facebook reviews with Facebook Reviews Scraper

  1. Create a free Apify account — $5 of monthly credit, no card needed.
  2. Open Facebook Reviews Scraper and click Try for free.
  3. Paste one or more Facebook Page URLs into Facebook Page URLs (or business names into Search Pages by name) and set Max reviews per Page.
  4. Click Start. Reviews stream into the dataset as they are found, newest first.
  5. Open the Storage tab and Export as JSON, CSV or Excel — or let a schedule run it for you.

⬇️ Input

ParameterTypeDescription
🔍 What to scrape
startUrlsListFacebook Pages: a Page URL (https://www.facebook.com/katzsdeli), its /reviews URL, a profile.php?id= URL, a username (katzsdeli) or a numeric Page id.
searchQueriesListBusiness names looked up with Facebook's own Page search, e.g. Katz's Delicatessen.
maxPagesPerQueryIntegerHow many of the top search results to scrape per name. Default 1.
✂️ Refine results
recommendationTypeSelectall, positive (recommends) or negative (doesn't recommend). Default all.
onlyReviewsNewerThanDateKeep reviews posted on or after a date: 2026-01-01 or relative (30 days, 6 months).
onlyReviewsOlderThanDateKeep reviews posted before a date. Combine both for a window.
keywordsListKeep reviews whose text or tags contain one of these words.
onlyWithTextBooleanSkip recommendations without written text. Default false.
onlyWithPhotosBooleanKeep only reviews with photos. Default false.
➕ Extra data
includeCommentsBooleanAdd the public comments under each review — charged as review-comments at $0.001 per review that comes back with at least one comment. Default false.
maxCommentsPerReviewIntegerMost comments per review. Default 10.
maxRepliesPerCommentIntegerMost replies nested under each comment. Default 0.
🔁 Monitoring
monitorModeBooleanReturn only reviews not delivered by previous runs. Pair with a schedule.
monitorStoreNameStringName of the memory store. Default facebook-reviews-monitor.
📦 Output
maxReviewsPerPageIntegerDefault 100; 0 = every public review (up to 5,000 per Page per run). resultsLimit is accepted too.
maxReviewsIntegerLimit for the whole run across all Pages. Default 0 (none).
compactBooleanCore fields only, sized for AI agents and MCP.
⚙️ Advanced
proxyConfigurationProxyDefault: no proxy, with an automatic move to Apify datacenter and residential IPs if Facebook refuses a Page.
maxConcurrencyIntegerPages scraped at the same time. Default 3.

Input JSON

{
"startUrls": [{ "url": "https://www.facebook.com/katzsdeli" }],
"searchQueries": ["Joe's Stone Crab Miami"],
"maxReviewsPerPage": 100,
"recommendationType": "all",
"onlyReviewsNewerThan": "6 months",
"includeComments": false
}

Paste the Page, not a post

Facebook Reviews Scraper reads a Page's Reviews tab. Do: https://www.facebook.com/katzsdeli or katzsdeli · Don't: a post or photo URL, or a group (groups have no reviews and are reported as invalid input).

Search with the exact business name

The search uses Facebook's own Page search, which ranks exact names well. Do: Katz's Delicatessen, Joe's Stone Crab Miami · Don't: best deli nyc (that finds unrelated Pages). The matched Pages are listed in the run summary, and every row carries the searchQuery that found it.

Use a date floor to stop early

Facebook serves reviews newest first, so onlyReviewsNewerThan stops reading as soon as reviews get older than your date. That makes "last 30 days" runs short even on Pages with thousands of reviews.

⬆️ Output

Every review becomes one dataset item. Here is the table view of a real run for Katz's Delicatessen and The Ritz (reviewer names blurred in the picture, delivered in full in the data):

Facebook Reviews Scraper output table with verdicts, tags and the Page's recommend score

And one row as JSON (reviewer masked here):

{
"facebookUrl": "https://www.facebook.com/katzsdeli",
"legacyId": "1673711770985538",
"url": "https://www.facebook.com/******/posts/pfbid0…",
"date": "2026-07-27T16:44:35.000Z",
"isRecommended": true,
"recommendationStatus": "RECOMMENDS",
"text": "👌👌👌 The most tasty reubens in the whole city.. I really dream flying to new york to taste their beautiful sandwiches keep it up Katz's Delicatessen.",
"tags": ["Cheap eats", "Free Wi-Fi", "Convenient location", "Delicious sandwiches", "Best coffee", "Great bagels", "Popular with locals"],
"user": { "id": "pfbid02x…", "name": "******", "profileUrl": null, "profilePic": "https://scontent.xx.fbcdn.net/v/…" },
"likesCount": 3,
"reactions": { "like": 2, "love": 1, "care": 0, "haha": 0, "wow": 0, "sad": 0, "angry": 0 },
"commentsCount": 0,
"photos": [],
"facebookId": "100064806517961",
"pageName": "katzsdeli",
"pageTitle": "Katz's Delicatessen",
"pageFollowers": 952715,
"pageRecommendPercent": 98,
"pageReviewsCount": 52497,
"pageRatingSummary": "98% recommend (52,497 reviews)",
"pageAdLibrary": { "id": "89033874836", "isBusinessPageActive": false },
"inputUrl": "https://www.facebook.com/katzsdeli"
}

Facebook review fields

Fill = share of rows with the field set, on a 1,031-review run (Katz's Delicatessen, Joe's Stone Crab, The Ritz).

FieldTypeWhat it isFill
id / legacyIdstringFacebook's story id and numeric post id of the review100%
urlstringLink to the review100%
date / timestampstring / numberWhen it was posted (ISO 8601 / Unix seconds)100%
isRecommendedbooleanRecommends the Page (true) or not (false)99.5%
recommendationStatus / sentimentstringRECOMMENDS / DOES_NOT_RECOMMEND; positive / negative from the same verdict99.5%
titlestringThe review's headline as Facebook prints it100%
textstringThe review text96%
tagsarrayTags the reviewer picked ("Fast delivery", "Cosy atmosphere")45%
userobjectid, name, shortName, profileUrl, profilePic, isVerified100% (profileUrl 44%)
likesCount / reactionsnumber / objectTotal reactions and the count per type100%
commentsCount / sharesCountnumberComments and shares on the review100%
photosarrayid, url (full size), thumbnailUrl, width, height, alt15%
commentsarrayWith includeComments: id, text, date, authorName, authorUrl, likesCount, repliesCount, repliesadd-on
facebookUrl / facebookIdstringThe Page's URL and numeric id100%
pageName / pageTitlestringThe Page's username and display name100%
pageRecommendPercent / pageReviewsCount / pageRatingSummarynumber / number / stringThe Page's score line, split100%
pageFollowers / pageIsVerified / pageProfilePicturenumber / boolean / stringThe Page's header100%
pageAdLibraryobjectThe Page's Ad Library id and isBusinessPageActive100%
feedbackIdstringFacebook's feedback id of the review100%
inputUrl / searchQuery / scrapedAtstringWhat you passed, the search name that found the Page, scrape time100% / with search / 100%

profileUrl is empty when Facebook shows the reviewer without a public profile link. isRecommended is empty on the few reviews whose author tagged friends: Facebook then replaces the headline with "X is with Y" and shows visitors no verdict. Facebook has had no star ratings since 2018 (a review is a recommendation, yes or no), so there is no star rating field.

How can I use Facebook reviews data?

  • 📣 Reputation-management agencies — collect every client's Facebook reviews in one sheet and flag new negative ones each morning with monitor mode
  • 🏪 Multi-location brands — compare the "% recommend" score and review volume of every branch Page side by side
  • 🔎 Competitor research — read what customers praise or complain about at competing restaurants, venues or shops, by tag and keyword
  • 🧑‍💼 Local marketing agencies — find businesses with negative reviews and no owner reply as outreach leads
  • 🤖 AI and research teams — feed review text, tags and verdicts to an LLM for topic and sentiment analysis
  • 📈 Customer-experience teams — track the verdict mix week over week on a schedule

How much does it cost to scrape Facebook reviews?

Facebook Reviews Scraper is pay-per-result: $2.00 per 1,000 reviews ($0.002 per review), no start fee. The optional comments add-on is $0.001 per review that comes back with at least one comment.

ReviewsCostWith comments on every review
10$0.02$0.03
100$0.20$0.30
1,000$2.00$3.00
10,000$20.00$30.00

Apify platform usage is included in the price. A 931-review run from two Pages took 5.5 minutes on the default 256 MB.

Integrations, API, scheduling & MCP

  • Schedules: run Facebook Reviews Scraper daily or weekly from the Schedules tab; turn on monitorMode to get only new reviews.
  • Webhooks: fire a URL when a run finishes — push new reviews to your CRM, Slack or a sheet.
  • No-code: Make, Zapier, n8n, Google Sheets, Airtable, Slack via Apify integrations.
  • API: call it from Node.js or Python with apify-client — code on the API tab and the Apify API reference.
  • MCP / AI agents: connect Claude, Cursor or any MCP client through the MCP tab and ask for a Page's Facebook reviews in plain language.

More Facebook and review scrapers by TopApi

💬 Facebook Comments Scraper📰 Facebook Page Posts Scraper📊 Facebook Post Details Scraper
🔎 Facebook Search Posts Scraper🛒 Facebook Marketplace Scraper⭐ Google Maps Reviews Scraper
🍽️ Yelp Reviews Scraper✅ Trustpilot Reviews Scraper📍 Apple Maps Scraper
📸 Instagram Profile Scraper🧭 All TopApi scrapers

Limits & empty runs

  • Facebook's public feed is shorter than its review count. The header counts every review, but Facebook shows visitors only part of them: The Ritz reads "1,956 reviews" and serves 116; Joe's Stone Crab reads "14,543" and served 431, back to October 2016. The run summary marks such a Page feed_end.
  • Speed: Facebook serves 3 reviews per request; about 170 reviews a minute with two Pages in parallel on 256 MB.
  • Up to 5,000 reviews per Page per run; split very large jobs across runs with a date window.
  • Comments: some reviews show a comment count but Facebook shows the comments only to signed-in users; those reviews come back with an empty comments list and no add-on charge.
  • Empty dataset: the run summary names the cause per input — no_reviews_tab (the Page turned reviews off, e.g. most global brand Pages), not_found (no Page at that address), invalid_input (a group or post URL), or all_filtered (your filters removed everything).

FAQ

How many reviews can Facebook Reviews Scraper collect from one Page?

Every review Facebook shows publicly, up to 5,000 per Page per run. On busy Pages that is often fewer than the "(N reviews)" count in the header, because Facebook does not show every review to visitors.

How much does Facebook Reviews Scraper cost?

$0.002 per review ($2.00 per 1,000), no start fee. Review comments are an optional $0.001 per review that comes back with comments.

Can I run Facebook Reviews Scraper on a schedule to get only new reviews?

Yes. Save your input as a task, add a schedule, and turn on monitorMode. The first run returns the latest reviews; every later run returns only reviews posted since, per Page.

Can I get only negative Facebook reviews?

Yes. Set recommendationType to negative to keep only "doesn't recommend" reviews, or positive for the rest. Add onlyReviewsNewerThan for a recent window.

Does Facebook Reviews Scraper get the business owner's replies?

Yes, with includeComments. The comments under a review, which often include the owner's reply, come back in the review's comments list, with nested replies if you set maxRepliesPerComment.

Can I find Facebook Pages by business name instead of URL?

Yes. Put names in searchQueries; Facebook Reviews Scraper uses Facebook's own Page search and scrapes the top maxPagesPerQuery matches. Exact business names work best.

Do I need a Facebook account, cookies or an API key for Facebook Reviews Scraper?

No. Facebook Reviews Scraper reads only what Facebook shows to any visitor of a public Page; you pass Page URLs or names and nothing else.

Can I use Facebook Reviews Scraper with the Apify API?

Yes. The API lets you start runs, fetch datasets and manage schedules. Use apify-client for Node.js or Python; the API tab has ready-to-paste code.

Can I use Facebook Reviews Scraper through an MCP server?

Yes. Open the MCP tab, connect your MCP client (Claude Desktop, Cursor, LibreChat…) and ask for a Page's Facebook reviews in plain language. Turn on compact for shorter rows.

Why did my Facebook Reviews Scraper run return no reviews?

Most often the Page has no reviews tab (the owner turned reviews off — common on big brand Pages), the address is not a Page, or your filters removed every review. The run's status message and the RUN_SUMMARY record name the cause for each input.

Facebook Reviews Scraper extracts only publicly available reviews; it does not log in or collect private data. Results may still contain personal data, which is regulated (for example by GDPR). Make sure you have a legitimate purpose before you use it.

Your feedback

We keep improving Facebook Reviews Scraper. Found a bug or missing a field? Open an issue on the Issues tab.