Facebook Review Scraper - Photos & Tags avatar

Facebook Review Scraper - Photos & Tags

Pricing

from $3.99 / 1,000 results

Go to Apify Store
Facebook Review Scraper - Photos & Tags

Facebook Review Scraper - Photos & Tags

Facebook Review Scraper: Extract reviews with photos, tagged profiles, ratings, reviewer names, dates, review text, and page details. Analyze customer feedback, visual reviews, user interactions, and business reputation for market research, competitor analysis, and customer insights.

Pricing

from $3.99 / 1,000 results

Rating

0.0

(0)

Developer

ScrapeFlux

ScrapeFlux

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

15 days ago

Last modified

Share

Extract reviews from any public Facebook page's Reviews tab, including the photos reviewers attach and any descriptive tags Facebook exposes on the review. This Facebook reviews scraper is built for teams who need more than plain review text — a facebook review data extraction workflow that also captures visual proof (review photos) and quick-scan labels (review tags) alongside the standard reviewer name, review content, profile picture, and review link.

Use it to scrape Facebook page reviews for brand monitoring, customer sentiment analysis, competitor research, reputation tracking, or building a facebook review dataset for reporting — without logging in to Facebook or writing custom scraping code.


Sample Output

{
"name": "Jay Anderson",
"profile_pic": "https://scontent-lga3-1.xx.fbcdn.net/v/t39.30808-1/632465254_...jpg",
"message": "Worst mobile app experience. Only been using it for the last year maybe once a week and I can't tell you how many times I've placed an order just to arrive at the store for them to say they did not receive it...",
"reviewPhotos": [],
"tags": ["Slow service", "Disappointing food"],
"story_id": "UzpfSTEwMDAyMDgzMTgyMzg1MjoxMTg5NTQyMDg4NDE2ODQxOjExODk1NDIwODg0MTY4NDE=",
"story_url": "https://web.facebook.com/permalink.php?story_fbid=..."
}

reviewPhotos is populated with one or more full-size image URLs whenever a reviewer attached photos to their recommendation; tags is populated whenever Facebook exposes reviewer-selected descriptive labels (e.g. "Slow service", "Poor presentation") on that review. Both are always real arrays — [] when nothing is attached, never a guessed or fabricated value.

Output fields

FieldTypeWhat it tells you
namestringThe reviewer's name as shown on the review
profile_picstring (image)URL to the reviewer's profile picture
messagestringThe review text content
reviewPhotosarray of stringsFull-size URLs of any photos the reviewer attached to the review. [] if none
tagsarray of stringsReviewer-selected descriptive tags exposed by Facebook on the review. [] if none/unavailable
story_idstringThe internal review identifier, useful for de-duplication
story_urlstring (link)A link back to the specific review post

Input

FieldTypeDefaultWhat it does
startUrlstring (required)The URL of the Facebook page's Reviews tab you want to scrape, e.g. https://www.facebook.com/<page>/reviews
includeReviewPhotosbooleantrueWhen ON, extracts full-size review photo URLs into reviewPhotos. Turn OFF to skip photo extraction and always emit [] (slightly faster runs)
includeReviewTagsbooleantrueWhen ON, extracts reviewer-selected descriptive tags into tags where Facebook exposes them. Turn OFF to always emit []
maxReviewsinteger100Maximum number of reviews to collect before the run stops
proxyConfigurationobjectApify Proxy enabledProxy settings used for every request. Apify Proxy is strongly recommended — it is also used to auto-retry on a fresh IP if Facebook returns a soft block

Example input:

{
"startUrl": "https://www.facebook.com/buladiradda/reviews",
"includeReviewPhotos": true,
"includeReviewTags": true,
"maxReviews": 100,
"proxyConfiguration": {
"useApifyProxy": true
}
}

What it does

Scrapes reviews with reviewer details

For each review on the target page's Reviews tab, the actor extracts the reviewer's name, profile picture, the review text, a de-duplication ID, and a direct link back to the review post.

Extracts attached review photos

Many Facebook recommendations/reviews include one or more photos. When includeReviewPhotos is on (default), the actor walks the same review data it already fetches and collects every attached photo's full-size image URL into reviewPhotos.

Extracts reviewer-selected tags

Many reviewers pick short descriptive tags when leaving a recommendation (e.g. "Slow service", "Poor presentation", "Fast delivery"). When includeReviewTags is on (default), the actor collects every tag Facebook exposes on the review into tags. Coverage varies by page — see Reliability below.

Paginates until your target is met

You control how many reviews to collect with maxReviews. The actor keeps requesting additional pages of reviews until it reaches your target count or Facebook's feed runs out of pages.

Uses Apify Proxy on every request, with soft-block retry

Every HTML and GraphQL request is routed through the proxy you configure. If Facebook returns a soft block (an HTTP 200 response with a GraphQL error and no review data instead of a real error), the actor automatically retries on a fresh proxy IP — up to a bounded number of attempts — before giving up, and never double-pushes rows already collected.

Resolves fresh session tokens every run

The actor resolves the page's internal ID and the current Facebook GraphQL query ID directly from the target page on every run, and harvests a fresh CSRF token from that same page load — it never reuses a stale, single-session token.


Use cases

Brand & reputation monitoring — Track what customers say (and show) about a business across its Facebook page, including photo evidence of products or experiences.

Customer sentiment research — Pull review text plus attached photos to understand not just what people write but what they photograph.

Competitor research — Run against competitor Facebook pages to see how customers describe and illustrate their experience.

Reporting & data pipelines — Export structured review data (including photo URLs) into CSV/JSON/Excel or pipe it into downstream reporting and CRM tools via the Apify API.


How to run it

  1. Open the actor on the Apify Console.
  2. Set startUrl to the Facebook page's /reviews URL you want to scrape.
  3. Leave includeReviewPhotos and includeReviewTags on (default) to collect photos and tags, or turn either off if you only need the base review fields.
  4. Optionally adjust maxReviews and proxyConfiguration.
  5. Start the run and watch reviews appear in the Dataset tab as they're collected.
  6. Export the dataset as JSON, CSV, or Excel from the Apify dashboard.

Reliability & limitations

What's handledHow
Pagination until your target is metKeeps requesting pages until maxReviews is reached or the feed has no more pages
Soft-block detectionAn HTTP 200 response carrying a GraphQL error with zero reviews parsed is treated as a block, not end-of-data, and retried on a fresh proxy IP
No duplicate rows on retryProxy/soft-block retries only happen before any row has been pushed for the current fetch
Fresh credentials every runPage ID, GraphQL query ID, and CSRF token are all resolved live from the target page — never hardcoded

Limitations: This actor only scrapes reviews from a public Facebook page's Reviews tab (no login). If a page's reviews are private, region-restricted, or the Reviews tab itself is unavailable, the run will return fewer rows or none. Both reviewPhotos and tags reflect only what reviewers actually attached/selected — coverage varies a lot by page (some pages' reviewers rarely attach photos or pick tags, others do so often), so an all-empty reviewPhotos/tags column on a given run reflects that page's real reviews, not a broken actor. Neither field is ever guessed or derived from the review text — both come directly from Facebook's own review data.


Frequently asked questions

Do I need to log in to Facebook?

No. You provide a public Facebook page's /reviews URL and the actor scrapes publicly available review content.

Will every review have photos or tags?

No — reviewPhotos and tags are only populated when the reviewer actually attached photos or Facebook exposes tags for that specific review. Both are legitimate [] for reviews without either.

How many reviews can I collect per run?

Up to maxReviews (default 100). The actor stops once it reaches your target or runs out of pages.

Can I turn off photo/tag extraction?

Yes — set includeReviewPhotos and/or includeReviewTags to false to always emit [] for those fields.

Can I schedule recurring runs?

Yes, using Apify's built-in Schedules feature, so you can refresh a page's review data automatically.

Can I access results via the API?

Yes — results are available through the Apify API and can be exported as JSON, CSV, or Excel.