Review Aggregator
Pricing
Pay per usage
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
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
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
| Platform | Data Source | Features | Reliability |
|---|---|---|---|
| Google Maps Reviews | Reviews, owner responses, images | ⭐⭐⭐⭐⭐ High | |
| Yelp | Yelp Business Pages | Reviews, ratings, business info | ⭐⭐ Low* |
| TripAdvisor | TripAdvisor | Reviews, trip type, travel date | ⭐⭐⭐⭐ Good |
| Trustpilot | Trustpilot.com | Reviews, 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
| Parameter | Type | Description |
|---|---|---|
businessName | string | Business name to search across platforms (used when specific URLs not provided) |
googlePlaceId | string | Google Maps Place ID for precise matching |
googleMapsUrl | string | Direct Google Maps URL to the business |
yelpUrl | string | Direct Yelp business page URL |
tripadvisorUrl | string | Direct TripAdvisor page URL |
tripadvisorLocationId | string | TripAdvisor location ID (alternative to URL) |
trustpilotDomain | string | Business domain on Trustpilot (default: amazon.com) |
trustpilotUrl | string | Direct Trustpilot URL (e.g., trustpilot.com/review/example.com) |
Scraping Options
| Parameter | Type | Default | Description |
|---|---|---|---|
platforms | array | ["trustpilot"] | Platforms to scrape: google, yelp, tripadvisor, trustpilot |
maxReviewsPerPlatform | number | 20 | Max reviews per platform (1-500) |
language | string | "en" | Preferred language (ISO 639-1 code) |
AI Features
| Parameter | Type | Default | Description |
|---|---|---|---|
enableSentimentAnalysis | boolean | true | Analyze sentiment (uses OpenAI if key provided, falls back to rule-based) |
enableAuthenticityScoring | boolean | true | Detect potential fake reviews using heuristic signals |
openaiApiKey | string | - | OpenAI API key for AI-powered sentiment (~$0.01/100 reviews) |
Advanced
| Parameter | Type | Description |
|---|---|---|
proxyConfiguration | object | Proxy settings for scraping protected sites (recommended for Yelp) |
Output Schema
Review Record
Each review includes:
| Field | Description |
|---|---|
platform | Source platform (google, yelp, tripadvisor, trustpilot) |
entityName | Business name |
entityType | Business type (restaurant, hotel, local_business, etc.) |
text | Full review text |
title | Review title (if available) |
starRating | Rating (1-5 stars) |
normalizedRating | Rating normalized to 0-1 |
reviewerName | Reviewer's display name |
datePublished | Review date (ISO 8601) |
ownerResponse | Business owner's reply (if any) |
images | Array of attached image URLs (Google, TripAdvisor only; Yelp/Trustpilot return empty array) |
sentiment | AI sentiment analysis (see below) |
authenticitySignals | Fake 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 charactersshort_text- Review under 50 charactersextreme_rating_no_details- 1 or 5 star without detailsgeneric_language- Overuse of common phrasesexcessive_caps- Too many capital lettersexcessive_exclamations- More than 5 exclamation marksrating_sentiment_mismatch- Text sentiment doesn't match ratingsingle_review_account- Reviewer has only one reviewno_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:
| Component | Cost |
|---|---|
| Google Reviews | Uses compass/google-maps-reviews-scraper (paid actor) |
| TripAdvisor | Uses maxcopell/tripadvisor (paid actor) |
| Yelp, Trustpilot | Direct scraping (compute units only) |
| AI Sentiment | OpenAI 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
- Start with Google + Trustpilot - These are the most reliable platforms
- Use specific URLs when possible for accurate matching
- Yelp scraping is unreliable - Expect failures; use residential proxies and consider Yelp optional
- AI sentiment is optional - Rule-based fallback works for basic needs
- Validate OpenAI key first - Invalid keys fail silently mid-run; test before large jobs
- 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