Review Aggregator avatar
Review Aggregator

Pricing

Pay per usage

Go to Apify Store
Review Aggregator

Review Aggregator

Aggregate reviews from Google, Yelp, TripAdvisor, and Trustpilot with AI sentiment analysis and authenticity scoring. Get unified review data across platforms for reputation monitoring, competitive analysis, and market research.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

CQ

CQ

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Share

Multi-Platform Review Aggregator

Aggregate reviews from Google, Yelp, TripAdvisor, and Trustpilot into a unified dataset with AI-powered sentiment analysis and authenticity scoring.

Features

  • Multi-platform aggregation: Collect reviews from 4 major platforms in a single run
  • Unified schema: Consistent output format across all platforms
  • AI sentiment analysis: GPT-powered sentiment classification with aspect-based breakdown
  • Authenticity scoring: Detect potential fake reviews using heuristic signals
  • Flexible input: Search by business name or provide specific URLs/IDs

Use Cases

  • Reputation monitoring: Track what customers say across platforms
  • Competitive analysis: Compare your reviews against competitors
  • Market research: Understand customer sentiment in a market segment
  • Lead qualification: Assess business quality before partnership
  • Content analysis: Extract themes and pain points from reviews

Platforms Supported

PlatformData SourceFeaturesReliability
GoogleGoogle Maps ReviewsReviews, owner responses, images⭐⭐⭐⭐⭐ High
YelpYelp Business PagesReviews, ratings, business info⭐⭐ Low*
TripAdvisorTripAdvisorReviews, trip type, travel date⭐⭐⭐⭐ Good
TrustpilotTrustpilot.comReviews, verification status⭐⭐⭐⭐⭐ High

*Yelp uses aggressive anti-bot measures. CSS selectors may break without notice. Residential proxies strongly recommended. Expect partial or failed extraction in many cases.

Example Input

Search by business name

{
"businessName": "Shake Shack New York",
"platforms": ["google", "yelp", "tripadvisor"],
"maxReviewsPerPlatform": 50,
"enableSentimentAnalysis": true
}

Use specific URLs

{
"googleMapsUrl": "https://maps.google.com/maps?cid=1234567890",
"yelpUrl": "https://www.yelp.com/biz/shake-shack-new-york",
"tripadvisorUrl": "https://www.tripadvisor.com/Restaurant_Review-...",
"trustpilotDomain": "shakeshack.com",
"platforms": ["google", "yelp", "tripadvisor", "trustpilot"],
"maxReviewsPerPlatform": 100,
"enableSentimentAnalysis": true,
"openaiApiKey": "sk-..."
}

Input Parameters

Business Identification

ParameterTypeDescription
businessNamestringBusiness name to search across platforms (used when specific URLs not provided)
googlePlaceIdstringGoogle Maps Place ID for precise matching
googleMapsUrlstringDirect Google Maps URL to the business
yelpUrlstringDirect Yelp business page URL
tripadvisorUrlstringDirect TripAdvisor page URL
tripadvisorLocationIdstringTripAdvisor location ID (alternative to URL)
trustpilotDomainstringBusiness domain on Trustpilot (default: amazon.com)
trustpilotUrlstringDirect Trustpilot URL (e.g., trustpilot.com/review/example.com)

Scraping Options

ParameterTypeDefaultDescription
platformsarray["trustpilot"]Platforms to scrape: google, yelp, tripadvisor, trustpilot
maxReviewsPerPlatformnumber20Max reviews per platform (1-500)
languagestring"en"Preferred language (ISO 639-1 code)

AI Features

ParameterTypeDefaultDescription
enableSentimentAnalysisbooleantrueAnalyze sentiment (uses OpenAI if key provided, falls back to rule-based)
enableAuthenticityScoringbooleantrueDetect potential fake reviews using heuristic signals
openaiApiKeystring-OpenAI API key for AI-powered sentiment (~$0.01/100 reviews)

Advanced

ParameterTypeDescription
proxyConfigurationobjectProxy settings for scraping protected sites (recommended for Yelp)

Output Schema

Review Record

Each review includes:

FieldDescription
platformSource platform (google, yelp, tripadvisor, trustpilot)
entityNameBusiness name
entityTypeBusiness type (restaurant, hotel, local_business, etc.)
textFull review text
titleReview title (if available)
starRatingRating (1-5 stars)
normalizedRatingRating normalized to 0-1
reviewerNameReviewer's display name
datePublishedReview date (ISO 8601)
ownerResponseBusiness owner's reply (if any)
imagesArray of attached image URLs (Google, TripAdvisor only; Yelp/Trustpilot return empty array)
sentimentAI sentiment analysis (see below)
authenticitySignalsFake review detection signals

Sentiment Object

With OpenAI API key (AI-powered):

{
"overall": "positive",
"score": 0.85,
"confidence": 0.92,
"aspects": [
{"aspect": "service", "sentiment": "positive", "score": 0.9, "snippet": "staff was amazing"},
{"aspect": "price", "sentiment": "negative", "score": -0.3, "snippet": "bit pricey"}
]
}

Without API key (rule-based fallback):

{
"overall": "positive",
"score": 0.6,
"confidence": 0.6,
"aspects": [],
"method": "rule-based"
}

Note: Rule-based analysis has lower confidence (0.6) and does not provide aspect breakdown.

Authenticity Signals

{
"score": 0.85,
"flags": ["short_text", "extreme_rating_no_details"],
"flagCount": 2
}

Flags include:

  • very_short_text - Review under 20 characters
  • short_text - Review under 50 characters
  • extreme_rating_no_details - 1 or 5 star without details
  • generic_language - Overuse of common phrases
  • excessive_caps - Too many capital letters
  • excessive_exclamations - More than 5 exclamation marks
  • rating_sentiment_mismatch - Text sentiment doesn't match rating
  • single_review_account - Reviewer has only one review
  • no_specific_details - Review lacks specific details (dates, numbers, names)

Summary Record

Each run also outputs an aggregate summary:

{
"dataType": "summary",
"entityName": "Shake Shack",
"totalReviews": 150,
"averageRating": 4.2,
"ratingDistribution": {"1": 5, "2": 8, "3": 15, "4": 52, "5": 70},
"sentimentBreakdown": {
"positive": 0.65,
"negative": 0.15,
"neutral": 0.12,
"mixed": 0.08
},
"topPositiveAspects": [
{"aspect": "food_quality", "avgScore": 0.82, "frequency": 89}
],
"topNegativeAspects": [
{"aspect": "wait_time", "avgScore": -0.45, "frequency": 34}
],
"platformBreakdown": {"google": 50, "yelp": 50, "tripadvisor": 50}
}

AI Sentiment Analysis

With OpenAI API Key

  • Aspect-based sentiment using GPT-4o-mini
  • Identifies specific topics (food, service, price, etc.)
  • High accuracy sentiment classification
  • ~$0.01 per 100 reviews

Without API Key (Rule-Based Fallback)

  • Keyword-based sentiment scoring
  • Combined with rating signal
  • Lower accuracy but free
  • No aspect breakdown
  • Output includes "method": "rule-based" field

Pricing

This actor uses Apify compute units plus optional external dependencies:

ComponentCost
Google ReviewsUses compass/google-maps-reviews-scraper (paid actor)
TripAdvisorUses maxcopell/tripadvisor (paid actor)
Yelp, TrustpilotDirect scraping (compute units only)
AI SentimentOpenAI API (~$0.01/100 reviews)

Key-Value Store Schema

The actor stores the following data in the key-value store:

RUN_STATS

{
"google": 50,
"yelp": 45,
"tripadvisor": 48,
"trustpilot": 50,
"total": 193,
"sentimentAnalyzed": true,
"authenticityScored": true
}

Tips

  1. Start with Google + Trustpilot - These are the most reliable platforms
  2. Use specific URLs when possible for accurate matching
  3. Yelp scraping is unreliable - Expect failures; use residential proxies and consider Yelp optional
  4. AI sentiment is optional - Rule-based fallback works for basic needs
  5. Validate OpenAI key first - Invalid keys fail silently mid-run; test before large jobs
  6. Language filter - Works for Google/TripAdvisor/Trustpilot; Yelp ignores this parameter

Support

For issues or feature requests, please contact the author through the Apify platform.


Built by JCD | Powered by Apify