Facebook Business Page Recommendation & Review Scraper avatar

Facebook Business Page Recommendation & Review Scraper

Pricing

from $0.49 / 1,000 results

Go to Apify Store
Facebook Business Page Recommendation & Review Scraper

Facebook Business Page Recommendation & Review Scraper

Get Facebook business page reviews by direct URL, business name search, or Page ID, with Recommended/Not Recommended status, owner replies, and filters for date, keyword, and recommendation status.

Pricing

from $0.49 / 1,000 results

Rating

0.0

(0)

Developer

Nimbryxo-studio

Nimbryxo-studio

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

21 days ago

Last modified

Features

Limited permissions

Share

Extract Facebook business page recommendations and reviews from public pages without logging in. Paste a page URL, a numeric Page ID, or a username, and get review text, Recommended / Not Recommended status, author details, reactions, recommendation tags, comments and owner replies — plus a page-summary row with the recommendation percentage, review count, follower count and talking-about count. Reviews are collected newest-first, deduplicated by review ID, and can be filtered by date, keyword, or recommendation status.

What this actor does

  • Two input styles: full Facebook page or /reviews URLs, and numeric Page IDs or page usernames
  • Deep review history: returns up to 2,000 reviews per run; Facebook serves roughly 2–3 reviews per request, so depth comes from pagination rather than a login session
  • Rich review fields: recommendation status, full text, author name/profile/photo, reaction counts and breakdowns, recommendation tags, share and comment counts, top comments, and business owner replies
  • Page-summary row: one recordType: page record per page with recommend %, total review count, followers, and talking-about count
  • Filters and monitor mode: date range, keyword, Recommended / Not Recommended, and an incremental mode that returns only reviews newer than the saved state
  • Empty fields are omitted: missing values are left out instead of being returned as null

Output per review

  • reviewId — stable Facebook review ID
  • pageId, pageName, pageUrl — the page the review belongs to
  • text — full review text
  • isRecommended — true for Recommended, false for Not Recommended
  • createdAt — ISO-8601 UTC timestamp
  • timestamp — Unix timestamp in seconds
  • authorName, authorProfileUrl, authorProfileImageUrl, authorIdType — author identity; authorIdType is pfbid or numeric
  • reactionCount, reactionBreakdown — total reactions and per-type counts (Like, Love, Wow, Haha, Sad, Angry, Care)
  • shareCount, commentCount
  • reviewTags — structured tags such as Disappointing food or Fast delivery
  • topComments — visible comments (with attached photos when present), including isOwnerReply on business replies
  • ownerReplies — the subset of comments written by the business itself
  • reviewUrl — permalink to the review post
  • reviewPhotos — present only when Facebook exposes review media (currently rare on this surface)
  • page — page metadata object retained for compatibility
  • recordType: "review", scrapedAt

Output per page

One row per page with recordType: "page":

  • pageId, pageName, pageUrl
  • recommendPercent — Facebook's own recommendation percentage (not recalculated from returned reviews)
  • reviewCount — total reviews shown by Facebook for the page
  • followerCount
  • talkingAboutCount
  • scrapedAt

Error rows

Unavailable pages produce a row with recordType: "error", an errorType, a readable error, the page identity when known, and scrapedAt. Error types include INVALID_INPUT, PAGE_UNAVAILABLE, PAGE_NOT_FOUND, BLOCKED, DOC_ID_UNAVAILABLE, REQUEST_FAILED, NO_REVIEWS, TIME_BUDGET_EXCEEDED, and SCRAPE_ERROR.

Input

FieldTypeDefaultDescription
startUrlsarray[]Facebook page URLs or /reviews URLs. /reviews is added automatically when missing
pageIdsarray[]Numeric Page IDs or page usernames
maxItemsinteger100Maximum review rows across all pages (1–2000)
maxPerPageinteger–Optional per-page cap for multi-page runs (1–2000)
includeRepliesbooleantrueInclude top comments and owner replies
includePageSummarybooleantrueEmit one page-summary row per page
onlyNewbooleanfalseMonitor mode: return only reviews not in the saved state
stateKeystring–Optional prefix for the monitor state key
recommendationstringallall / recommended / not
dateFromstring–Only reviews on or after this date (YYYY-MM-DD)
dateTostring–Only reviews on or before this date (YYYY-MM-DD)
keywordstring–Only reviews containing this word or phrase (case-insensitive)
requestDelayMsinteger600Pause between requests in milliseconds (0–5000)
maxRuntimeSecsinteger1800Stop collecting after this many seconds
failOnEmptybooleanfalseFail the run when no review rows are returned
proxyConfigurationobjectautomaticOptional connection override; leave empty and the actor picks a working connection, escalating only when Facebook blocks a request
cookiesarray[]Optional Facebook cookies; not required and not needed for depth

Legacy keys from earlier versions (maxReviews, maxReviewsPerPage, filterByRecommendation, filterByDateFrom, filterByDateTo, filterByKeyword) are still accepted and mapped internally. Business-name-plus-city search has been removed because it resolved to guessed, often dead page URLs.

Example: scrape one page

{
"startUrls": [{ "url": "https://www.facebook.com/mcdonalds/reviews" }],
"maxItems": 200
}

Example: multiple pages by Page ID or username

{
"pageIds": ["100064458773195", "portosbakery"],
"maxItems": 500,
"maxPerPage": 50,
"includeReplies": true
}

Example: only negative reviews from a date range

{
"startUrls": [{ "url": "https://www.facebook.com/IHOP/reviews" }],
"recommendation": "not",
"dateFrom": "2026-06-01",
"maxItems": 100
}

Example: daily monitor for new reviews

{
"pageIds": ["100064458773195"],
"onlyNew": true,
"stateKey": "mcdonalds-monitor",
"maxItems": 200
}

Use cases

  • Reputation monitoring — track new Recommended / Not Recommended reviews and owner replies for a brand or franchise location
  • Competitor analysis — compare recommendation percentages, review volume, and recurring complaint keywords across competing businesses
  • Local business research — pull reviews for restaurants, hotels, or service providers before choosing where to eat, stay, or book
  • Customer feedback analysis — export review text and recommendation tags for sentiment or NLP pipelines
  • Franchise tracking — scrape many location-specific Page IDs in one run and compare performance
  • Market research — measure follower and talking-about counts alongside review trends

FAQ

Does this require a Facebook account or cookies? No. The actor reads publicly visible reviews from public business pages without logging in. Cookies are optional. They do not increase review depth: Facebook serves the same 2–3 reviews per request either way.

How many reviews can I get? Up to 2,000 per run. Facebook returns about 2–3 reviews per request even when asked for more, so 100 reviews typically needs around 35–40 requests. Earlier versions of this actor described a 10–15-review limit; that was a browser-UI ceiling, not a server-side cap, and no longer applies to this collection path.

Why is there no star rating? Facebook business pages use binary Recommended / Not Recommended, so there is no per-review star rating. isRecommended tells you which one the reviewer chose.

Does recommendPercent match the reviews I received? No. It is Facebook's own page-level figure and is not recalculated from the returned sample, which may be a small slice of the page's full review history.

Can I get the business's replies? Yes. Visible comments appear in topComments, and ownerReplies contains only the comments written by the page itself. Both are omitted when includeReplies is off, while commentCount remains.

Can I get review photos, a language filter, or a rating distribution? Not from this surface today. Review photos are effectively absent on current Facebook review pages, review text has no language metadata, and no rating distribution is exposed — only the recommendation percentage and total review count. The actor does not fabricate those fields.

Do I need to configure a proxy? No. The actor works without a proxy and selects a working connection automatically. The proxyConfiguration field is only for users who need a specific setup.

How does monitor mode know what is new? It stores the review IDs it has seen in a named key-value store that persists across runs, one key per page. Scheduled runs with onlyNew return only reviews that were not in that saved set. Use stateKey if you want separate monitor streams for the same page.

What happens for a dead or private page? The actor validates the page before collecting and writes a single recordType: "error" row. It does not guess a page URL from a business name, and it does not retry a dead page repeatedly.

Limitations

  • 2,000-review cap per run — a deliberate ceiling that keeps one run bounded
  • Public business pages only — private pages, personal profiles, groups, and Marketplace listings are not supported
  • No rating distribution or language filter — Facebook does not expose either on the reviews surface
  • Review photos are rare — the field is kept for compatibility but is usually absent
  • Reviewer identity is not always stable — authorIdType reports whether the author ID is a stable numeric ID or a rotating pfbid token
  • Facebook can change its internal review operation — the actor detects a rotated operation identifier and refreshes it, but a major upstream change can still require an actor update