Multi-Platform Review Analyzer
Aggregate and analyze business reviews from Trustpilot, Google, and the Better Business Bureau (BBB) in a single automated run. This actor collects individual reviews, extracts platform-level ratings, performs keyword-based sentiment analysis, detects recurring themes, and tracks monthly rating trends -- producing a unified reputation report for any business. Whether you are monitoring your own brand, vetting a potential vendor, or benchmarking competitors, this actor replaces hours of manual cr
Maintenance Pulse
90/100Cost Estimate
How many results do you need?
Pricing
Pay Per Event model. You only pay for what you use.
| Event | Description | Price |
|---|---|---|
| business-reviewed | Charged per business review analysis. Aggregates reviews from Trustpilot, Google, and BBB with NLP sentiment analysis and cross-platform comparison. | $0.20 |
Example: 100 events = $20.00 · 1,000 events = $200.00
Documentation
Aggregate and analyze business reviews from Trustpilot, Google, and the Better Business Bureau (BBB) in a single automated run. This actor collects individual reviews, extracts platform-level ratings, performs keyword-based sentiment analysis, detects recurring themes, and tracks monthly rating trends -- producing a unified reputation report for any business. Whether you are monitoring your own brand, vetting a potential vendor, or benchmarking competitors, this actor replaces hours of manual cross-platform research with a structured JSON output delivered in under a minute.
Why use Multi-Platform Review Analyzer?
Online reputation is scattered across dozens of review sites, and manually checking each one is tedious, error-prone, and impossible to scale. A business might hold a 4.5-star rating on Trustpilot but carry 200 unresolved complaints on BBB -- a critical signal you would miss if you only checked one source. Google search results add another layer, surfacing review snippets, knowledge graph ratings, and cross-platform mentions that paint a fuller picture. Without a tool that pulls all of this together, reputation monitoring remains a manual chore that most teams either skip entirely or perform too infrequently to catch emerging problems.
Multi-Platform Review Analyzer solves this by querying Trustpilot, Google (via Serper API), and BBB in parallel, then applying sentiment analysis and trend detection across every review it collects. The result is a single structured report that includes per-platform breakdowns, overall sentiment scoring, the most common positive and negative themes, and a monthly trend line showing whether reputation is improving, declining, or stable. You can run it once for a quick audit, schedule it for ongoing monitoring, or integrate it into your existing data pipeline through the Apify API.
Key features
- Multi-platform aggregation -- Pulls reviews, ratings, and metadata from Trustpilot, Google search results, and BBB in a single run, eliminating the need to check each site separately.
- Keyword-based sentiment analysis -- Classifies every review as positive, neutral, or negative using a scored system with 20 positive and 20 negative indicator keywords.
- Theme detection -- Identifies the top 10 most frequently mentioned positive keywords (e.g., "easy", "helpful", "reliable") and top 10 negative keywords (e.g., "slow", "refund", "frustrating") across all collected reviews.
- Monthly rating trends -- Groups dated reviews by month, computes average ratings per period, and detects whether reputation is improving, declining, or stable based on the last three months of data.
- BBB accreditation and complaints -- Extracts the BBB letter grade (A+ through F), accreditation status, and total complaint count for US-based businesses.
- Trustpilot deep extraction -- Retrieves overall rating, total review count, star-rating distribution, and individual review text with author names and dates via JSON-LD parsing with HTML regex fallback.
- Google review search -- Runs four targeted queries per business through the Serper API, capturing knowledge graph ratings and organic review snippets from Trustpilot, BBB, and Yelp results.
- Flexible platform selection -- Search all three platforms by default, or specify only the ones you need to reduce run time and focus your analysis.
- Structured JSON output -- Results include a top-level summary, per-platform breakdowns, individual reviews with sentiment scores, theme lists, and monthly trend data -- ready for BI tools, dashboards, or downstream processing.
- Configurable review limits -- Control the maximum reviews per platform (up to 200) and total results (up to 1,000) to balance depth against run time.
How to use Multi-Platform Review Analyzer
Using Apify Console
- Navigate to the Multi-Platform Review Analyzer page on Apify and click Try for free.
- Enter the business name you want to analyze in the Business Name field (e.g., "Shopify"). Optionally provide the business domain in the Business Domain field (e.g., "shopify.com") for more accurate Trustpilot lookups.
- If you want Google search results included, paste your Serper.dev API key into the Serper API Key field. This is optional -- the actor works with Trustpilot and BBB alone.
- Adjust Max Reviews Per Platform and Maximum Total Results if you need more or fewer reviews than the defaults (50 per platform, 200 total).
- Click Start, wait for the run to complete (typically 30--60 seconds), then download results from the Dataset tab in JSON, CSV, or Excel format.
Using the API
You can start the actor programmatically via the Apify API and retrieve results from the default dataset. See the API & Integration section below for Python, JavaScript, and cURL examples.
Input parameters
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
businessName | string | Yes | -- | The name of the business to search reviews for (e.g., "Shopify", "Tesla", "Airbnb"). |
businessDomain | string | No | null | Business website domain for direct Trustpilot lookup (e.g., "shopify.com"). Bypasses search and returns more complete results. |
platforms | string[] | No | All three | Which review platforms to check. Accepted values: "trustpilot", "google", "bbb". Leave empty to search all. |
serperApiKey | string | No | null | Serper.dev API key for Google review search. Google platform is skipped without this. Get a free key at serper.dev. |
maxReviewsPerPlatform | integer | No | 50 | Maximum number of reviews to collect per platform. Range: 1--200. |
maxResults | integer | No | 200 | Maximum total reviews across all platforms. Range: 1--1,000. |
Example input
{
"businessName": "Shopify",
"businessDomain": "shopify.com",
"platforms": ["trustpilot", "google", "bbb"],
"serperApiKey": "your-serper-api-key-here",
"maxReviewsPerPlatform": 50,
"maxResults": 200
}
Tips for input
- Always provide
businessDomainwhen you know it. This enables a direct Trustpilot lookup viatrustpilot.com/review/{domain}instead of a search, which is faster and returns more complete data including rating distribution. - If you only need one platform, specify it in the
platformsarray to skip the others and reduce run time. - The Serper.dev free tier includes 2,500 queries per month. Each actor run uses up to 4 Serper queries when the Google platform is enabled.
- BBB data is most comprehensive for US-based businesses. International companies may return limited or empty BBB results.
- The
ratingTrendfield requires at least 3 months of dated reviews. If it returns"insufficient_data", try increasingmaxReviewsPerPlatformto capture a wider date range.
Output
The actor produces a single structured report per run. Here is a realistic example output:
{
"businessName": "Shopify",
"businessDomain": "shopify.com",
"analyzedAt": "2026-02-17T10:45:22.831Z",
"summary": {
"totalReviews": 62,
"averageRating": 3.87,
"sentimentBreakdown": {
"positive": 34,
"neutral": 16,
"negative": 12
},
"overallSentiment": "positive",
"ratingTrend": "improving",
"platformsCovered": ["trustpilot", "google", "bbb"]
},
"platforms": {
"trustpilot": {
"found": true,
"url": "https://www.trustpilot.com/review/shopify.com",
"overallRating": 3.8,
"totalReviews": 5891,
"ratingDistribution": {
"5": 3102,
"4": 658,
"3": 314,
"2": 349,
"1": 1468
}
},
"google": {
"found": true,
"mentionCount": 24,
"averageRating": 4.1
},
"bbb": {
"found": true,
"url": "https://www.bbb.org/ca/on/ottawa/profile/ecommerce/shopify-inc-0117-1234567",
"rating": "A+",
"accredited": true,
"complaintCount": 387
}
},
"reviews": [
{
"platform": "trustpilot",
"author": "Sarah M.",
"rating": 5,
"date": "2026-01-18",
"title": "Best ecommerce platform I have used",
"text": "Amazing ecommerce platform. Easy to set up and the support team is very helpful and professional. Highly recommend for anyone starting an online store.",
"sentiment": "positive",
"sentimentScore": 0.0417
},
{
"platform": "trustpilot",
"author": "David R.",
"rating": 1,
"date": "2026-02-03",
"title": "Terrible customer support",
"text": "Terrible experience. Waited two weeks for a refund and support was slow and unhelpful. Very disappointed with the service.",
"sentiment": "negative",
"sentimentScore": -0.0357
},
{
"platform": "google",
"author": null,
"rating": 4.2,
"date": null,
"title": "Shopify Reviews and Ratings - Trustpilot",
"text": "Mixed reviews about transaction fees being high for small businesses, but overall the platform is reliable and easy to use with great app integrations.",
"sentiment": "positive",
"sentimentScore": 0.0227
},
],
"themes": {
"positive": ["easy", "helpful", "professional", "recommend", "great", "fast", "amazing", "love", "reliable", "friendly"],
"negative": ["slow", "disappointed", "poor", "complaint", "refund", "frustrating", "misleading", "terrible", "waste", "unreliable"]
},
"monthlyTrend": [
{ "month": "2025-10", "averageRating": 3.52, "reviewCount": 8 },
{ "month": "2025-11", "averageRating": 3.71, "reviewCount": 14 },
{ "month": "2025-12", "averageRating": 3.85, "reviewCount": 11 },
{ "month": "2026-01", "averageRating": 3.94, "reviewCount": 16 },
{ "month": "2026-02", "averageRating": 4.01, "reviewCount": 9 }
]
}
Output fields
| Field | Type | Description |
|---|---|---|
businessName | string | The business name that was searched. |
businessDomain | string or null | The domain provided in the input, if any. |
analyzedAt | string | ISO 8601 timestamp of when the analysis was performed. |
summary | object | Aggregated metrics: totalReviews, averageRating, sentimentBreakdown (positive/neutral/negative counts), overallSentiment, ratingTrend, and platformsCovered. |
platforms.trustpilot | object or null | Trustpilot data: URL, overall rating, total reviews, rating distribution. |
platforms.google | object or null | Google data: mention count and average rating from knowledge graph and organic results. |
platforms.bbb | object or null | BBB data: profile URL, letter grade (A+ to F), accreditation status, complaint count. |
reviews | array | Individual reviews with platform, author, rating, date, text, sentiment label, and sentiment score. |
themes | object | Top 10 positive and top 10 negative keywords by frequency across all reviews. |
monthlyTrend | array | Monthly objects with month (YYYY-MM), averageRating, and reviewCount, sorted chronologically. |
Use cases
- Brand reputation monitoring -- Schedule weekly runs to track sentiment, ratings, and complaint volume across all three platforms over time.
- Vendor and supplier vetting -- Run a quick analysis of any vendor to check BBB accreditation, complaint history, and review sentiment before signing a contract.
- Competitive benchmarking -- Compare average ratings, sentiment distributions, and theme differences across your brand and each competitor.
- Customer experience improvement -- Use theme detection to identify the most common complaint keywords and prioritize operational fixes.
- Due diligence for investors -- Screen acquisition targets for reputational risk by checking review volume, sentiment trends, and BBB complaint counts.
- Marketing agency reporting -- Generate cross-platform reputation audit reports for clients with sentiment breakdowns and rating trends.
- PR crisis detection -- Monitor
ratingTrendandsentimentBreakdownto catch early signals of reputation decline. - Sales prospecting qualification -- Check a prospect's review profile to understand their pain points and tailor your outreach.
- Academic and market research -- Collect structured review data across industries to study satisfaction patterns and platform-level differences.
API & Integration
Python
from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_API_TOKEN")
run = client.actor("S85IfVOoTyN9XWyXs").call(run_input={
"businessName": "Shopify",
"businessDomain": "shopify.com",
"serperApiKey": "your-serper-api-key",
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(f"Sentiment: {item['summary']['overallSentiment']}")
print(f"Rating: {item['summary']['averageRating']}, Trend: {item['summary']['ratingTrend']}")
print(f"Positive themes: {', '.join(item['themes']['positive'][:5])}")
JavaScript
import { ApifyClient } from "apify-client";
const client = new ApifyClient({ token: "YOUR_APIFY_API_TOKEN" });
const run = await client.actor("S85IfVOoTyN9XWyXs").call({
businessName: "Shopify",
businessDomain: "shopify.com",
serperApiKey: "your-serper-api-key",
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Sentiment: ${items[0].summary.overallSentiment}`);
console.log(`Rating: ${items[0].summary.averageRating}`);
cURL
# Start the actor run
curl -X POST "https://api.apify.com/v2/acts/S85IfVOoTyN9XWyXs/runs?token=YOUR_APIFY_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"businessName":"Shopify","businessDomain":"shopify.com"}'
# Retrieve results (use defaultDatasetId from the run response)
curl "https://api.apify.com/v2/datasets/DATASET_ID/items?token=YOUR_APIFY_API_TOKEN&format=json"
Integrations
Connect with the Apify ecosystem and popular automation platforms:
- Zapier -- Trigger workflows when sentiment drops below a threshold.
- Make (Integromat) -- Route negative reviews to your support team or update a CRM.
- Google Sheets -- Export results to spreadsheets for reputation tracking dashboards.
- Slack -- Get team notifications when sentiment shifts or rating trend changes.
- Webhooks -- POST results to any endpoint when a run completes.
- Apify API -- Full programmatic control for starting runs and retrieving datasets.
How it works
The actor follows a sequential pipeline that queries each platform, merges the results, and runs analysis across the combined dataset.
- Input validation -- Reads configuration, validates
businessName, and determines which platforms to query (defaults to all three). - Trustpilot extraction -- Attempts a direct lookup at
trustpilot.com/review/{domain}if a domain is provided, otherwise falls back to search. Extracts reviews from JSON-LD structured data with HTML regex fallback. Pulls overview data (overall rating, total count, star distribution) separately. - Google search via Serper -- Runs four queries through the Serper API: a general review query plus
site:searches for Trustpilot, BBB, and Yelp. Captures knowledge graph ratings and organic snippets. - BBB profile extraction -- Searches BBB, follows the first matching profile link, and extracts the letter grade, accreditation status, and complaint count via regex.
- Sentiment analysis -- Scans each review for 20 positive and 20 negative keywords. Score =
(positive - negative) / totalWords. Classified as positive (>0.02), negative (<-0.02), or neutral. - Theme detection -- Counts keyword frequency across all reviews and returns the top 10 positive and top 10 negative themes.
- Monthly trend computation -- Groups dated reviews by
YYYY-MM, computes average rating per month. Trend from last 3 months: >0.1 avg change = improving, <-0.1 = declining, else stable. - Report compilation -- Merges all platform results, reviews, sentiment, themes, and trends into a single output pushed to the Apify dataset.
+------------------+
| Input / Config |
+--------+---------+
|
+----------------+----------------+
| | |
+-------v------+ +------v-------+ +------v------+
| Trustpilot | | Google | | BBB |
| JSON-LD & | | 4x Serper | | Profile |
| HTML Parse | | API Queries | | Scrape |
+-------+------+ +------+-------+ +------+------+
| | |
+----------------+----------------+
|
+--------v---------+
| Merge Reviews |
+--------+---------+
|
+----------------+----------------+
| | |
+-------v------+ +------v-------+ +------v------+
| Sentiment | | Theme | | Monthly |
| Analysis | | Detection | | Trends |
+-------+------+ +------+-------+ +------+------+
| | |
+----------------+----------------+
|
+--------v---------+
| Output Report |
| (Apify Dataset) |
+------------------+
Performance & cost
The actor uses minimal compute resources (256 MB memory) and completes quickly because it relies on HTTP requests rather than browser automation. Run times depend primarily on how many platforms are enabled and network latency.
| Scenario | Platforms | Approximate Time | Estimated Cost |
|---|---|---|---|
| Trustpilot only | 1 | 10--20 seconds | ~$0.005 |
| Trustpilot + BBB | 2 | 20--35 seconds | ~$0.008 |
| All platforms (Trustpilot + Google + BBB) | 3 | 30--60 seconds | ~$0.01 |
| All platforms, max reviews (200/platform) | 3 | 45--90 seconds | ~$0.015 |
| Batch of 10 businesses (scheduled) | 3 each | 5--10 minutes total | ~$0.10 |
The Apify Free plan includes $5 of monthly platform credits, which is enough for approximately 300--500 full three-platform runs. If you use the Google search feature, you will also need a Serper.dev API key -- the free tier provides 2,500 queries per month (each actor run uses up to 4 queries).
Limitations
- Trustpilot anti-scraping measures -- Trustpilot may occasionally block requests or return incomplete data. The actor uses a browser-like User-Agent header and JSON-LD extraction to mitigate this, but some pages may return fewer reviews than expected.
- BBB coverage is US-focused -- The Better Business Bureau primarily covers US and Canadian businesses. International companies may return empty BBB results.
- Google search requires a Serper API key -- The Google platform is skipped entirely if no
serperApiKeyis provided. The free Serper tier is sufficient for moderate usage. - Keyword-based sentiment analysis -- The sentiment engine uses a fixed list of 40 indicator keywords. It does not understand sarcasm, context, or domain-specific language. Reviews with mixed signals may be classified as neutral.
- Review date availability varies -- Not all review sources include publication dates. Google search snippets and some Trustpilot HTML-fallback reviews may lack dates, which limits the monthly trend analysis.
- Rate limiting and timeouts -- Each HTTP request has a 30-second timeout. If a platform is slow to respond or rate-limits the request, that platform's data may be incomplete for that run.
- No Yelp or G2 direct scraping -- While Google search queries include
site:yelp.comlookups, the actor does not directly scrape Yelp or G2 review pages. Only snippets surfaced through Google are captured.
Responsible use
- Public data only -- This actor accesses publicly visible review pages on Trustpilot, Google search results, and BBB. It does not bypass login walls, paywalls, or access any private data.
- Respect rate limits -- Avoid running the actor at extremely high frequency against the same platforms. Space out runs and use reasonable
maxReviewsPerPlatformvalues to minimize server load. - Personal data considerations -- Review data may include reviewer names, which are publicly displayed on the source platforms. If you process this data in jurisdictions covered by GDPR or similar regulations, consult legal counsel regarding your obligations. See Apify's guide on web scraping legality.
- Do not use for harassment or manipulation -- The data collected by this actor should be used for legitimate business intelligence, brand monitoring, and research purposes. Do not use review data to target, harass, or manipulate individual reviewers.
- Terms of service -- Review the terms of service for each platform (Trustpilot, Serper.dev, BBB) before use. Ensure your usage complies with their policies and your local regulations.
FAQ
How does the sentiment analysis work?
The actor scans each review for 20 positive keywords (e.g., "excellent", "amazing", "recommend", "reliable") and 20 negative keywords (e.g., "terrible", "scam", "avoid", "frustrating"). A score is computed as (positive_count - negative_count) / total_words. Reviews scoring above 0.02 are classified as positive, below -0.02 as negative, and everything in between as neutral.
Do I need any API keys to use this actor? No API keys are required for Trustpilot and BBB analysis. To include Google search results, you need a Serper.dev API key (the free tier provides 2,500 queries per month -- enough for over 600 actor runs). The actor works well with just Trustpilot and BBB if you prefer not to set up an API key.
What does the rating trend tell me? The rating trend analyzes the last three months of dated reviews and calculates the average month-over-month change. If the average increase exceeds 0.1 stars per month, the trend is "improving". If it drops by more than 0.1, it is "declining". Anything in between is "stable". Fewer than three months of data returns "insufficient_data".
Can I analyze competitors with this actor?
Yes. Run the actor separately for each competitor and compare the output reports. Key fields to compare include summary.averageRating, summary.overallSentiment, summary.ratingTrend, and the themes arrays. Schedule recurring runs via Apify's built-in scheduler to track changes over time.
Why are some platform results empty or showing "found: false"? Not every business is listed on every platform. BBB coverage is primarily US and Canada, so international companies often return empty results. Google results require a Serper API key. If a platform is temporarily unavailable or rate-limits the request, it may also return empty results for that run.
How accurate is the Trustpilot data?
The actor uses JSON-LD structured data extraction as its primary method, which is highly reliable for verified Trustpilot pages. If JSON-LD is unavailable, it falls back to HTML regex parsing, which may capture fewer reviews. Providing the exact businessDomain improves accuracy by enabling a direct page lookup.
How often should I run this actor for monitoring?
For active brand monitoring, weekly or bi-weekly runs balance freshness and cost well. The monthlyTrend output becomes most valuable after three or more months of accumulated data. Use Apify's scheduler for recurring runs and pair them with Slack or webhook notifications.
What is the difference between this actor and the Trustpilot Review Analyzer? The Trustpilot Review Analyzer is a single-platform deep-dive tool focused exclusively on Trustpilot. This actor aggregates data from Trustpilot, Google, and BBB in one run, adding cross-platform sentiment analysis, theme detection, and trend tracking. Use the single-platform actor for maximum Trustpilot depth; use this actor for a broader cross-platform view.
Can I export results to Google Sheets or a database? Yes. Apify provides native Google Sheets integration, and you can download results in JSON, CSV, or Excel from the Dataset tab. For database integration, use the Apify API to retrieve dataset items programmatically, or configure a webhook to push results to your endpoint when each run completes.
Can I analyze a business without knowing its domain?
Yes. The businessDomain field is optional. Without it, the actor uses a Trustpilot search by name and still attempts BBB and Google lookups. Providing the domain improves Trustpilot accuracy and enables direct page lookup with more complete data.
Related actors
| Actor | Description |
|---|---|
| Trustpilot Review Analyzer | Deep-dive Trustpilot scraper for detailed single-platform review analysis with full review text extraction. |
| Brand Protection Monitor | Monitor brand mentions across the web and detect unauthorized use, counterfeit listings, and reputation threats. |
| Company Deep Research | Comprehensive company research agent combining multiple data sources for firmographic and market intelligence. |
| SaaS Competitive Intelligence | Competitive intelligence for SaaS companies including pricing, features, tech stack, and market positioning. |
| Website Contact Scraper | Extract emails, phone numbers, and social media links from business websites for lead enrichment. |
| B2B Lead Qualifier | Qualify B2B leads with firmographic data, technology detection, and lead scoring. |
How it works
Configure
Set your parameters in the Apify Console or pass them via API.
Run
Click Start, trigger via API, webhook, or set up a schedule.
Get results
Download as JSON, CSV, or Excel. Integrate with 1,000+ apps.
Use cases
Sales Teams
Build targeted lead lists with verified contact data.
Marketing
Research competitors and identify outreach opportunities.
Data Teams
Automate data collection pipelines with scheduled runs.
Developers
Integrate via REST API or use as an MCP tool in AI workflows.
Related actors
Bulk Email Verifier
Verify email deliverability at scale. MX record validation, SMTP mailbox checks, disposable and role-based detection, catch-all flagging, and confidence scoring. No external API costs.
GitHub Repository Search
Search GitHub repositories by keyword, language, topic, stars, forks. Sort by stars, forks, or recently updated. Returns metadata, topics, license, owner info, URLs. Free API, optional token for higher limits.
Website Content to Markdown
Convert any website to clean Markdown for RAG pipelines, LLM training, and AI apps. Crawls pages, strips boilerplate, preserves headings, tables, and code blocks. GFM support.
Website Tech Stack Detector
Detect 100+ web technologies on any website. Identifies CMS, frameworks, analytics, marketing tools, chat widgets, CDNs, payment systems, hosting, and more. Batch-analyze multiple sites with version detection and confidence scoring.
Ready to try Multi-Platform Review Analyzer?
Start for free on Apify. No credit card required.
Open on Apify Store