Trustpilot Review Scraper & Sentiment Analyzer is an Apify actor on ApifyForge. It scrapes Trustpilot reviews for any business and returns structured review data, customer feedback sentiment, company response rates, average reply times, and full review text — no Trustpilot API key required. It costs $0.15 per business-analyzed. 5 users have run it 90 times with a 100% success rate. Best for investigators, analysts, and risk teams conducting due diligence, regulatory tracking, or OSINT research. Not ideal for real-time surveillance or replacing classified intelligence systems. Maintenance pulse: 96/100. Last verified March 27, 2026. Built by Ryan Clinton (ryanclinton on Apify).
Trustpilot Review Scraper & Sentiment Analyzer
Trustpilot Review Scraper & Sentiment Analyzer is an Apify actor available on ApifyForge at $0.15 per business-analyzed. It scrapes Trustpilot reviews for any business and returns structured review data, customer feedback sentiment, company response rates, average reply times, and full review text — no Trustpilot API key required. Analyze one company or compare up to 50 competitors in a single run for reputation monitoring, review analytics, or competitive intelligence. Trustpilot Review Scraper & Sentiment Analyzer has been used by 5 users across 90 total runs with a 100% success rate over the last 30 days.
Best for investigators, analysts, and risk teams conducting due diligence, regulatory tracking, or OSINT research.
Not ideal for real-time surveillance or replacing classified intelligence systems.
What to know
- Limited to publicly available and open-source information.
- Report depth depends on the availability of upstream government and public data sources.
- Requires an Apify account — free tier available with limited monthly usage.
Maintenance Pulse
96/100Cost Estimate
How many results do you need?
Pricing
Pay Per Event model. You only pay for what you use.
| Event | Description | Price |
|---|---|---|
| business-analyzed | Charged per business analyzed. Includes multi-page Trustpilot crawling, review extraction, sentiment analysis, and rating distribution. | $0.15 |
Example: 100 events = $15.00 · 1,000 events = $150.00
Documentation
Trustpilot Review Analyzer is an Apify actor that scrapes Trustpilot reviews for any business and returns structured review data, customer feedback sentiment, company response rates, average reply times, and full review text — no Trustpilot API key required. Analyze one company or compare up to 50 competitors in a single run for reputation monitoring, review analytics, or competitive intelligence.
Unlike subscription tools like ReviewTrackers ($69+/month) or Birdeye ($350+/month), Trustpilot Review Analyzer uses pay-per-business pricing at $0.15 per business with no monthly commitment. It exports structured Trustpilot data as JSON, CSV, or Excel with post-scrape filtering by rating, language, and verified status — a complete review dataset ready for analysis pipelines or CRM import.
To scrape Trustpilot reviews and analyze customer sentiment, enter one or more business domains. Trustpilot Review Analyzer classifies sentiment using keyword matching (4-5 stars = positive, 1-2 = negative, 3-star decided by text analysis), tracks company reply times, and produces a ranked comparison when multiple businesses are analyzed.
What it does: Scrapes Trustpilot reviews, calculates sentiment, tracks company response rates and reply times, and compares multiple businesses. Best for: Reputation monitoring, competitor benchmarking, review analytics, sales prospecting, due diligence. Speed: 1 business in 30-60 seconds. 10 businesses in 5-10 minutes. Pricing: $0.15 per business analyzed. No subscription. No charge for businesses not found. Output: JSON/CSV with TrustScore, rating distribution, sentiment breakdown, response rate, average reply time, and full review text.
Problems this solves:
- How to scrape Trustpilot reviews without an API key
- How to export Trustpilot review data to CSV or Excel
- How to compare competitor reputation on Trustpilot
- How to analyze customer feedback sentiment from reviews
- How to track company response rates and reply times
- How to identify businesses with poor TrustScores for sales prospecting
Summary
- Input: Business domains or Trustpilot URLs (1-50 per run)
- Output: One dataset record per business with aggregate stats + individual reviews
- Sources: Trustpilot review pages parsed via
__NEXT_DATA__structured data - Accuracy: TrustScore and total reviews come from Trustpilot. Rating distribution, sentiment, and response metrics are calculated from the scraped sample.
- Limitation: English-optimized sentiment analysis. Review sample may not cover all reviews for businesses with thousands.
Data trust: All metrics come from actual Trustpilot page data, not estimates. TrustScore is Trustpilot's own proprietary score. Rating distribution and sentiment are calculated from the reviews actually scraped in the run — if you scrape 100 of 5,000 reviews, the statistics reflect that sample. Response time is calculated from the difference between review publish date and company reply date.
Typical results
- Most businesses with active Trustpilot profiles return 20-100+ reviews per run
- Response rate and reply time tracking works for any business that responds to reviews
- Sentiment classification is most accurate for English-language reviews
- Lower accuracy for: non-English reviews, very short reviews, sarcasm
Best fit:
- Comparing competitors on Trustpilot (response rates, sentiment, TrustScore)
- Monitoring your own business reputation over time with scheduled runs
- Sales prospecting — identify businesses with poor TrustScores
- Exporting Trustpilot review data for custom analysis or reporting
Less suitable:
- Non-English sentiment analysis (keyword lists are English-focused)
- Real-time review monitoring (this is a batch tool, not a stream)
- Scraping businesses not listed on Trustpilot
What data can you extract?
| Data Point | Source | Example |
|---|---|---|
| Business name | Trustpilot profile | Pinnacle Industries |
| TrustScore | Trustpilot's proprietary score | 4.3 |
| Star rating | 1-5 scale | 4 |
| Total review count | Trustpilot profile | 2,847 |
| Rating distribution | Calculated from scraped reviews | star5: 68.2%, star1: 4.1% |
| Response rate | % of reviews with company replies | 72.5% |
| Average response time | Hours between review post and company reply | 18.4 hours |
| Verified review rate | % of reviews verified by Trustpilot | 61.3% |
| Sentiment breakdown | Keyword-based classification | 82% positive, 12% negative |
| Top positive keywords | Frequency analysis of positive reviews | "easy" (34), "support" (28) |
| Top negative keywords | Frequency analysis of negative reviews | "slow" (11), "refund" (8) |
| Individual reviews | Full review records with text, author, dates | 5-star, "Outstanding service..." |
| Company reply text | Business response to each review | "Thank you for your feedback..." |
| Author country | Reviewer's country code | US, GB, DE |
| Business categories | Trustpilot-assigned categories | Software Company, SaaS |
Why use Trustpilot Review Analyzer?
Trustpilot hosts over 200 million reviews for 900,000+ businesses but offers no public API for accessing review data. Manually reading through hundreds of reviews to spot trends takes hours. Copying ratings into spreadsheets for competitor analysis takes days. Tracking how your company's response rate compares to competitors requires checking each profile individually.
This actor automates the entire process. Enter domain names, and get back structured review data with aggregate statistics, sentiment analysis, and response time tracking — all computed automatically. Most review monitoring tools charge $69-350+/month for similar capabilities. This actor costs $0.15 per business with no subscription commitment.
- Scheduling — run daily, weekly, or custom intervals to track reputation changes over time
- API access — trigger runs from Python, JavaScript, or any HTTP client
- Proxy rotation — scrape at scale without IP blocks using Apify's built-in proxy infrastructure
- Monitoring — get Slack/email alerts when runs fail or produce unexpected results
- Integrations — connect to Zapier, Make, Google Sheets, HubSpot, or webhooks
Features
- Review filtering by rating range — set minimum and maximum star ratings to focus on negative reviews (1-2 stars) or positive reviews (4-5 stars) without downloading everything
- Language filtering — filter reviews by ISO 639-1 language code (en, de, fr, es, etc.) to analyze market-specific sentiment
- Verified-only mode — restrict output to Trustpilot-verified purchase reviews, filtering out unverified submissions
- Response time tracking — calculates hours between each review's publish date and the company's reply date, then averages across all reviews with replies
- Keyword-based sentiment analysis — classifies reviews using 42 positive keywords and 42 negative keywords with no external AI API dependency; 3-star reviews get text-analyzed while 4-5 and 1-2 star reviews are classified by rating
- Multi-business comparison — analyze up to 50 businesses per run with a ranked comparison summary saved to the key-value store, sorted by TrustScore
- Session pooling with 5 retries — CheerioCrawler uses persistent session cookies and rotates sessions to navigate Trustpilot's bot protection
- Domain normalization — accepts bare domains (amazon.com), www-prefixed domains, full URLs, or Trustpilot profile URLs; all normalize to the same format
- Automatic deduplication — entering the same domain twice in different formats results in a single scrape
- Rating distribution calculation — computes both raw counts and percentages for each star level from the scraped sample
- Failed page tracking — each business result includes
pagesFailedcount andscrapingErrordetails so you know if data is incomplete - No charge for missing businesses — if a domain has no Trustpilot presence, the result shows
found: falseand no pay-per-event charge is applied - Spending limit support — set a maximum budget per run; the actor stops processing additional businesses when the limit is reached
Use cases for Trustpilot review scraping
Competitor benchmarking
Product and marketing teams compare TrustScores, response rates, and sentiment across 5-20 competitors in a single run. The multi-business comparison summary ranks competitors by TrustScore, making it straightforward to identify who leads in customer satisfaction and who falls behind on response times.
Brand reputation monitoring
Brand managers schedule weekly runs to track how their company's TrustScore, response rate, and sentiment shift over time. Pipe results to Google Sheets via the Apify integration for a live dashboard that flags when negative sentiment spikes above baseline.
Sales prospecting for reputation management services
Sales teams at reputation management, customer service, and review platform companies identify businesses with low TrustScores (under 3.0) or poor response rates (under 30%) as prospects. Combine with Website Contact Scraper to find decision-maker email addresses.
Market research and customer intelligence
Product researchers analyze the top positive and negative keywords across an industry vertical to identify unmet customer needs. A batch of 50 SaaS companies reveals which pain points (slow support, confusing pricing, missing features) are most common across the category.
Due diligence and vendor assessment
Investment analysts and procurement teams assess a company's reputation before partnerships, investments, or vendor selection. Verified review rate, response rate, and average response time provide objective signals beyond the headline TrustScore.
Content strategy and voice-of-customer research
Content marketers mine review keywords to inform SEO content, FAQ pages, and marketing copy that mirrors real customer language. The top positive keywords reveal what customers value most; the top negative keywords reveal what to address proactively.
How to scrape Trustpilot reviews without an API
The easiest way to scrape Trustpilot reviews without an API is to use a pre-built scraper that handles pagination, bot protection, and data extraction automatically.
- Enter business domains — Type one or more domains in the Businesses field (e.g.,
shopify.com,hubspot.com). You can also paste full Trustpilot URLs. The actor accepts up to 50 businesses per run. - Configure filters — Set the review count (default: 100 per business), rating range, language filter, or verified-only mode. The defaults work for most use cases.
- Run the actor — Click "Start" and wait. A single business with 100 reviews takes about 30 seconds. A batch of 10 businesses takes 3-5 minutes.
- Download results — Open the Dataset tab and export as JSON, CSV, or Excel. Each business is one row containing the summary, sentiment, and all individual reviews.
Input parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
businesses | string[] | Yes | — | Business domains or Trustpilot URLs to analyze. Max 50 per run. |
maxReviewsPerBusiness | integer | No | 100 | Maximum reviews to scrape per business (1-5,000). Each page has 20 reviews. |
includeReviewText | boolean | No | true | Include full review text in output. Disable to reduce dataset size by ~80%. |
minRating | integer | No | 1 | Minimum star rating filter (1-5). Set to 1 with maxRating 2 to get only negative reviews. |
maxRating | integer | No | 5 | Maximum star rating filter (1-5). Set to 2 to focus on negative reviews only. |
languageFilter | string | No | — | ISO 639-1 language code (e.g., "en", "de", "fr"). Leave empty for all languages. |
verifiedOnly | boolean | No | false | Only include Trustpilot-verified purchase reviews. |
proxyConfiguration | object | No | — | Proxy settings. Recommended for batches over 5 businesses. |
Input examples
Compare two SaaS competitors:
{
"businesses": ["hubspot.com", "salesforce.com"],
"maxReviewsPerBusiness": 200,
"includeReviewText": true
}
Extract only negative reviews in English:
{
"businesses": ["acmecorp.com"],
"maxReviewsPerBusiness": 500,
"minRating": 1,
"maxRating": 2,
"languageFilter": "en",
"includeReviewText": true,
"proxyConfiguration": { "useApifyProxy": true }
}
Quick score check for many businesses (minimal data):
{
"businesses": ["amazon.com", "ebay.com", "etsy.com", "walmart.com", "target.com"],
"maxReviewsPerBusiness": 20,
"includeReviewText": false
}
Input tips
- Start with 20-50 reviews to validate the output format works for your pipeline before scaling up
- Use proxies for batches over 5 businesses — Trustpilot may rate-limit requests without proxy rotation
- Filter negative reviews only by setting minRating to 1 and maxRating to 2 — useful for competitive intelligence and reputation monitoring
- Disable review text when you only need aggregate scores and sentiment — cuts dataset storage by approximately 80%
- Batch competitors in one run — processing 10 businesses in one run is faster and cheaper than 10 separate runs, and you get the comparison summary
Output example
Each business produces one result object containing business metadata, aggregate statistics, sentiment analysis, and all scraped reviews:
{
"domain": "pinnacle-industries.com",
"url": "https://www.trustpilot.com/review/pinnacle-industries.com",
"found": true,
"businessName": "Pinnacle Industries",
"trustScore": 4.3,
"stars": 4,
"totalReviews": 2847,
"categories": ["Software Company"],
"websiteUrl": "https://pinnacle-industries.com",
"ratingDistribution": { "star5": 68, "star4": 14, "star3": 7, "star2": 5, "star1": 6 },
"ratingDistributionPercent": { "star5": 68.0, "star4": 14.0, "star3": 7.0, "star2": 5.0, "star1": 6.0 },
"averageRating": 4.33,
"responseRate": 72.5,
"averageResponseTimeHours": 18.4,
"verifiedRate": 61.3,
"sentiment": {
"positive": 82,
"negative": 12,
"neutral": 6,
"positivePercent": 82.0,
"negativePercent": 12.0,
"neutralPercent": 6.0,
"topPositiveKeywords": [
{ "keyword": "easy", "count": 34 },
{ "keyword": "support", "count": 28 },
{ "keyword": "fast", "count": 19 },
{ "keyword": "recommend", "count": 15 },
{ "keyword": "professional", "count": 12 }
],
"topNegativeKeywords": [
{ "keyword": "slow", "count": 11 },
{ "keyword": "refund", "count": 8 },
{ "keyword": "expensive", "count": 5 }
]
},
"reviewsScraped": 100,
"pagesFailed": 0,
"scrapingError": null,
"reviews": [
{
"id": "67a3bc91e4f012ab34cd5678",
"rating": 5,
"title": "Outstanding customer support",
"text": "Reached out about an integration issue and the support team responded within 2 hours. The platform itself is easy to use and well documented.",
"publishedDate": "2026-02-18T14:32:00.000Z",
"experiencedDate": "2026-02-15T00:00:00.000Z",
"author": "Sarah C.",
"authorCountry": "US",
"authorReviewCount": 7,
"isVerified": true,
"hasCompanyReply": true,
"companyReplyText": "Thanks Sarah! Glad our support team could help resolve the integration quickly.",
"companyReplyDate": "2026-02-19T09:15:00.000Z",
"responseTimeHours": 18.7,
"language": "en"
}
],
"analyzedAt": "2026-03-30T10:45:00.000Z"
}
Output fields
Business-level fields
| Field | Type | Description |
|---|---|---|
domain | string | Normalized business domain |
url | string | Full Trustpilot profile URL |
found | boolean | Whether the business exists on Trustpilot |
businessName | string/null | Display name from Trustpilot |
trustScore | number/null | Trustpilot's proprietary TrustScore (0-5) |
stars | number/null | Star rating (1-5) |
totalReviews | number/null | Total review count on Trustpilot (all reviews, not just scraped) |
categories | string[] | Business categories assigned by Trustpilot |
websiteUrl | string/null | Business website URL from their Trustpilot profile |
ratingDistribution | object | Count of 1-5 star reviews in the scraped sample |
ratingDistributionPercent | object | Percentage breakdown of star ratings in scraped sample |
averageRating | number/null | Mean rating from scraped reviews (may differ from TrustScore) |
responseRate | number/null | Percentage of scraped reviews with company replies |
averageResponseTimeHours | number/null | Mean hours between review publish and company reply |
verifiedRate | number/null | Percentage of scraped reviews with Trustpilot verification |
reviewsScraped | number | Number of reviews in output (after filters applied) |
pagesFailed | number | Number of review pages that failed to load after retries |
scrapingError | string/null | Error description if scraping encountered issues |
analyzedAt | string | ISO 8601 timestamp of analysis completion |
Sentiment fields
| Field | Type | Description |
|---|---|---|
sentiment.positive | number | Count of positive reviews (4-5 stars or positive keyword match) |
sentiment.negative | number | Count of negative reviews (1-2 stars or negative keyword match) |
sentiment.neutral | number | Count of neutral reviews (3 stars with no keyword tiebreaker) |
sentiment.positivePercent | number | Positive review percentage |
sentiment.negativePercent | number | Negative review percentage |
sentiment.neutralPercent | number | Neutral review percentage |
sentiment.topPositiveKeywords | array | Top 10 positive keywords with frequency counts |
sentiment.topNegativeKeywords | array | Top 10 negative keywords with frequency counts |
Review-level fields
| Field | Type | Description |
|---|---|---|
id | string | Trustpilot review ID |
rating | number | Star rating (1-5) |
title | string/null | Review headline |
text | string/null | Full review body (null if includeReviewText is false) |
publishedDate | string/null | When the review was posted (ISO 8601) |
experiencedDate | string/null | When the customer's experience occurred |
author | string/null | Reviewer's display name |
authorCountry | string/null | Reviewer's country code (e.g., "US", "GB", "DE") |
authorReviewCount | number/null | Total reviews written by this author on Trustpilot |
isVerified | boolean | Whether the review is verified by Trustpilot |
hasCompanyReply | boolean | Whether the company replied to this review |
companyReplyText | string/null | The company's reply text |
companyReplyDate | string/null | When the company replied (ISO 8601) |
responseTimeHours | number/null | Hours between review publish and company reply |
language | string/null | Review language code (ISO 639-1) |
How much does it cost to scrape Trustpilot reviews?
Trustpilot Review Analyzer uses pay-per-event pricing — you pay $0.15 per business analyzed. Platform compute costs are included. Businesses not found on Trustpilot are not charged.
| Scenario | Businesses | Cost per business | Total cost |
|---|---|---|---|
| Quick test | 1 | $0.15 | $0.15 |
| Small batch | 10 | $0.15 | $1.50 |
| Medium batch | 50 | $0.15 | $7.50 |
| Large batch | 200 | $0.15 | $30.00 |
| Enterprise | 1,000 | $0.15 | $150.00 |
You can set a maximum spending limit per run to control costs. The actor stops processing additional businesses when your budget is reached.
Compare this to ReviewTrackers at $69+/month, Birdeye at $350+/month, or SentiSum at $3,000+/month — with Trustpilot Review Analyzer, most users spend $1-15/month with no subscription commitment. Apify's free tier includes $5 of monthly credits, enough to analyze about 33 businesses.
Scrape Trustpilot reviews using the API
Python
from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("ryanclinton/trustpilot-review-analyzer").call(run_input={
"businesses": ["hubspot.com", "salesforce.com"],
"maxReviewsPerBusiness": 200,
"includeReviewText": True,
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(f"{item['businessName']}: TrustScore {item['trustScore']}, "
f"{item['sentiment']['positivePercent']}% positive, "
f"response rate {item['responseRate']}%, "
f"avg reply {item['averageResponseTimeHours']}h")
JavaScript
import { ApifyClient } from "apify-client";
const client = new ApifyClient({ token: "YOUR_API_TOKEN" });
const run = await client.actor("ryanclinton/trustpilot-review-analyzer").call({
businesses: ["hubspot.com", "salesforce.com"],
maxReviewsPerBusiness: 200,
includeReviewText: true,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
for (const item of items) {
console.log(`${item.businessName}: TrustScore ${item.trustScore}`);
console.log(` Sentiment: ${item.sentiment?.positivePercent}% positive`);
console.log(` Response rate: ${item.responseRate}%, avg reply: ${item.averageResponseTimeHours}h`);
}
cURL
# Start the actor run
curl -X POST "https://api.apify.com/v2/acts/ryanclinton~trustpilot-review-analyzer/runs?token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"businesses": ["hubspot.com", "salesforce.com"],
"maxReviewsPerBusiness": 200,
"includeReviewText": true
}'
# Fetch results (replace DATASET_ID from the run response)
curl "https://api.apify.com/v2/datasets/DATASET_ID/items?token=YOUR_API_TOKEN&format=json"
How Trustpilot Review Analyzer works
Phase 1: Domain normalization and request building
The actor accepts domains in any format — bare domains (amazon.com), www-prefixed (www.amazon.com), full URLs (https://amazon.com/about), or Trustpilot profile URLs (https://www.trustpilot.com/review/amazon.com). A regex-based normalizer strips protocols, www prefixes, and paths to extract the clean domain. Duplicate domains across different input formats are deduplicated using a Set before crawling begins.
For each unique domain, the actor constructs the Trustpilot profile URL: https://www.trustpilot.com/review/{domain} and builds initial requests for page 1 of each business.
Phase 2: Paginated review extraction
A CheerioCrawler fetches Trustpilot review pages with session pooling (useSessionPool: true, persistCookiesPerSession: true) and conservative rate limiting (max 2 concurrent requests, 20 requests per minute). Each failed request is retried up to 5 times with session rotation.
Each page's HTML contains a <script id="__NEXT_DATA__"> tag with Trustpilot's server-side rendered JSON payload. The actor parses this __NEXT_DATA__ JSON to extract business metadata (display name, TrustScore, stars, total reviews, categories, website URL), pagination info (filters.pagination.totalPages), and individual review records. This approach is more reliable than DOM scraping because the JSON contains the complete structured data that Trustpilot's React frontend uses to render the page.
After parsing page 1, the actor calculates how many additional pages are needed based on maxReviewsPerBusiness (20 reviews per page) and enqueues pages 2 through N. Reviews are collected into a per-domain state map.
Phase 3: Post-scrape filtering
After all pages are crawled, the actor applies user-configured filters to each business's review collection: rating range (minRating/maxRating), language code match, and verified-only filtering. All aggregate statistics are computed from the filtered review set, so response rates and sentiment reflect only the reviews that match your criteria.
Phase 4: Analysis and output assembly
For each business, the actor computes: rating distribution (counts and percentages for each star level), average rating from the scraped sample, response rate (percentage of reviews with company replies), average response time in hours (calculated from the delta between publishedDate and reply.createdAt for each replied review), and verified review rate.
Sentiment classification uses a dual approach. Reviews rated 4-5 stars are automatically classified as positive; 1-2 stars as negative. For 3-star reviews, the actor tokenizes the combined title and text, counts matches against 42 positive keywords (excellent, amazing, easy, recommend, etc.) and 42 negative keywords (terrible, scam, slow, expensive, etc.), and classifies based on which set has more matches — defaulting to neutral on a tie. The top 10 keywords by frequency are reported for both positive and negative review sets.
When analyzing multiple businesses, a comparison summary is saved to the key-value store (SUMMARY key), ranking all found businesses by TrustScore with response rate and average response time for each.
Tips for best results
-
Start with 20-50 reviews per business to validate the output format works for your workflow before scaling to hundreds or thousands.
-
Enable proxy for batches over 5 businesses. Trustpilot may rate-limit unprompted requests. The built-in Apify proxy with session rotation handles this automatically.
-
Use rating filters for targeted analysis. Set minRating=1 and maxRating=2 to extract only negative reviews — useful for identifying product issues or competitor weaknesses without downloading thousands of positive reviews.
-
Disable review text for dashboard-only workflows. If you only need TrustScores, response rates, and sentiment percentages, turning off
includeReviewTextreduces dataset storage by approximately 80%. -
Schedule weekly runs to track reputation trends. Use Apify Schedules to run every Monday morning, then connect to Google Sheets for a live competitor dashboard showing TrustScore and response rate over time.
-
Check
pagesFailedin results. If this number is greater than 0, some review pages were blocked despite retries. The data is still valid but may be incomplete. Re-running with proxy enabled typically resolves this. -
Combine with contact scrapers for outreach. Use Website Contact Scraper to find email addresses for businesses with low TrustScores, then reach out with your reputation management or customer service product.
-
Filter by language for market-specific insights. Set
languageFilterto "de" for German reviews or "fr" for French reviews to understand regional sentiment separately from global averages.
Combine with other Apify actors
| Actor | How to combine |
|---|---|
| Multi-Review Analyzer | Aggregate Trustpilot reviews alongside BBB and other platforms for a complete multi-source reputation picture |
| Website Contact Scraper | Find email addresses and phone numbers for businesses with poor TrustScores — ideal for reputation management outreach |
| B2B Lead Qualifier | Score businesses from Trustpilot analysis as leads using 30+ signals including web presence and tech stack |
| Company Deep Research | Deep-dive into a company's full online presence beyond reviews — financials, news, social media, and more |
| HubSpot Lead Pusher | Push businesses with low TrustScores directly into HubSpot CRM as leads for sales team follow-up |
| Website Tech Stack Detector | Identify what technologies a reviewed business uses — useful for SaaS sales targeting specific tech stacks |
| Brand Protection Monitor | Monitor brand mentions across the web alongside Trustpilot review sentiment for a complete brand health view |
Limitations
- Trustpilot page structure may change — the actor parses
__NEXT_DATA__JSON embedded in Trustpilot's React pages. If Trustpilot changes their rendering approach, extraction may break until the actor is updated. - 20 reviews per page — Trustpilot paginates at 20 reviews per page. Scraping 5,000 reviews requires 250 page loads, which takes several minutes per business.
- English-optimized sentiment keywords — the 84 sentiment keywords are English. Reviews in other languages are classified by star rating only (4-5 = positive, 1-2 = negative, 3 = neutral). Keyword analysis will not surface non-English terms.
- No historical or deleted reviews — only reviews currently visible on Trustpilot are accessible. Reviews that have been removed, hidden, or flagged are not available.
- Sample-based statistics — rating distribution, response rate, and average response time are calculated from the scraped sample, not the full review population. For businesses with thousands of reviews, scraping 100-200 provides a representative sample.
- No JavaScript rendering — the actor uses CheerioCrawler (HTTP-based HTML parsing), not a browser. This works because Trustpilot embeds review data in
__NEXT_DATA__JSON, but it means the actor cannot interact with JavaScript-dependent page elements. - Rate limiting on large batches — Trustpilot may throttle requests when scraping hundreds of businesses. Use proxy configuration and keep maxConcurrency at the default (2) for reliable results.
- 50 business maximum per run — the input accepts up to 50 domains. For larger batches, split into multiple runs.
Integrations
- Zapier — trigger CRM updates or Slack alerts when a competitor's TrustScore drops below a threshold
- Make — build multi-step pipelines that scrape reviews, filter by sentiment, and push negative reviews to your support ticket system
- Google Sheets — export TrustScores and response rates directly to a shared spreadsheet for team dashboards
- Apify API — trigger runs programmatically from Python, JavaScript, or any HTTP client
- Webhooks — POST results to your endpoint on completion for real-time data pipelines
- LangChain / LlamaIndex — feed structured review data into AI workflows for automated report generation or customer insight summaries
Troubleshooting
-
Empty results despite business existing on Trustpilot — Trustpilot may be blocking requests. Enable proxy configuration (
"proxyConfiguration": { "useApifyProxy": true }) and re-run. Check thescrapingErrorfield in the output for specific error messages. -
Run taking longer than expected — Each review page requires a separate HTTP request with rate limiting (20 requests/minute). Scraping 500 reviews per business across 10 businesses requires 250+ page loads. Reduce
maxReviewsPerBusinessto 100 for faster results, or increase memory allocation to 1024 MB. -
Some businesses show
found: false— The business may not have a Trustpilot profile, or the domain may not match their Trustpilot listing. Try the exact domain shown on their Trustpilot page. Some businesses register under a parent company domain. -
Sentiment analysis seems inaccurate for non-English reviews — The keyword-based sentiment classifier uses English keywords only. For non-English reviews, sentiment falls back to rating-based classification (4-5 = positive, 1-2 = negative, 3 = neutral). Use the
languageFilterparameter to analyze English reviews separately. -
pagesFailedis greater than 0 — Some review pages failed to load after 5 retries. The output still contains data from successful pages. Re-run with proxy enabled, or reduce the batch size to lower the request volume.
How to compare competitors on Trustpilot (competitor review analysis tool)
Enter multiple business domains in the businesses field. Trustpilot Review Analyzer scrapes each one and produces a ranked comparison summary in the key-value store (SUMMARY key), sorted by TrustScore. The comparison includes TrustScore, star rating, total reviews, response rate, and average reply time for each business — useful for benchmarking your reputation against competitors.
How to track company response rates on Trustpilot
Trustpilot Review Analyzer calculates two response metrics for each business: responseRate (percentage of reviews that received a company reply) and averageResponseTimeHours (average hours between review publication and company reply). Each individual review also includes companyReplyDate and responseTimeHours. Use these to evaluate how quickly a company handles customer feedback.
How to export Trustpilot reviews to CSV or Excel
After a run completes, open the Dataset tab in the Apify Console. Click "Export" and choose CSV, Excel, or JSON. Each row is one business with all aggregate stats and individual reviews nested inside. For flat per-review exports, use the API to iterate individual review records.
How to monitor Trustpilot reviews over time (reputation monitoring tool)
Trustpilot Review Analyzer is also a reputation monitoring tool for tracking TrustScore, sentiment, and response rates over time. Schedule it to run weekly or monthly using Apify Schedules. Each run captures the current TrustScore, sentiment breakdown, response rate, and reply times. Export results to Google Sheets or a dashboard to track changes over time and catch reputation drops early.
Best Trustpilot scraper for structured data extraction
Trustpilot Review Analyzer is one of the best Trustpilot scrapers available for developers, analysts, marketers, and growth teams who need structured review data for pipelines, dashboards, or custom analysis. It effectively acts as a Trustpilot scraper API — extracting review datasets without a Trustpilot API key, exporting as JSON/CSV/Excel, and includes sentiment, response metrics, and competitor comparison — all at $0.15 per business with no subscription.
Trustpilot sentiment analysis tool
Trustpilot Review Analyzer acts as a Trustpilot sentiment analysis tool by classifying each review as positive, negative, or neutral. Reviews rated 4-5 stars are classified positive, 1-2 stars negative, and 3-star reviews are decided by keyword matching against 84 English sentiment terms. The output includes sentiment percentages and the top positive/negative keywords found across all reviews.
Alternative to ReviewTrackers, Birdeye, and Trustpilot APIs
Trustpilot Review Analyzer is one of the most cost-efficient Trustpilot scrapers available — a cheaper alternative to ReviewTrackers for Trustpilot data extraction, without subscription pricing. Instead of paying $69-350+/month for ReviewTrackers or Birdeye, you pay $0.15 per business with no commitment. Trustpilot has no public review API, so this actor scrapes review pages directly.
Unlike dashboards that display pre-processed summaries, Trustpilot Review Analyzer outputs raw structured review data you can use in your own analytics, CRM, or reporting workflows. Competitor pricing based on publicly available information as of March 2026 and may change.
What you can do with this data
- Identify competitors with poor customer response rates or slow reply times
- Discover common complaints and praise keywords across an industry
- Benchmark TrustScore and sentiment against competitors in one run
- Export review datasets for internal dashboards, BI tools, or data pipelines
- Find sales prospects with low TrustScores and high complaint volumes
- Monitor your own reputation over time with scheduled monthly scans
Responsible use
- This actor only accesses publicly visible review data on Trustpilot.
- Respect website terms of service and
robots.txtdirectives. - Reviewer names and countries are public on Trustpilot but may be considered personal data under GDPR and similar regulations.
- Comply with GDPR, CAN-SPAM, and other applicable data protection laws when using scraped data for outreach.
- Do not use extracted data for spam, harassment, or unauthorized purposes.
- For guidance on web scraping legality, see Apify's guide.
FAQ
How many Trustpilot reviews can I scrape per business? Up to 5,000 per business. The default is 100. Trustpilot shows 20 reviews per page, so 5,000 reviews requires 250 page loads per business. For most analysis use cases, 100-200 reviews provide a representative sample.
Does this Trustpilot scraper need an API key?
No. Trustpilot does not offer a public API for review data. This actor scrapes publicly visible review pages and extracts structured data from Trustpilot's embedded __NEXT_DATA__ JSON payload. No authentication is required.
Can I scrape only negative Trustpilot reviews?
Yes. Set minRating to 1 and maxRating to 2 to extract only 1-star and 2-star reviews. This is useful for competitive intelligence, identifying product issues, or building a case for reputation management services.
How accurate is the Trustpilot sentiment analysis? The sentiment classifier uses a dual approach. Reviews rated 4-5 stars are automatically positive; 1-2 stars are automatically negative. For 3-star reviews, keyword frequency analysis determines the classification using 84 English sentiment keywords. This approach is accurate for aggregate trends but does not detect sarcasm, nuance, or non-English sentiment patterns.
What is the difference between TrustScore and average rating?
TrustScore is Trustpilot's proprietary score displayed on their website, calculated using their own weighting algorithm across all reviews. The averageRating field is the arithmetic mean of the reviews you actually scraped — they may differ because TrustScore weights recent reviews more heavily and considers the total review count.
Can I compare multiple businesses on Trustpilot in one run?
Yes. Enter up to 50 domains in the Businesses field. The actor scrapes each business, then generates a comparison summary in the key-value store (SUMMARY key) ranking all found businesses by TrustScore with response rate and average response time for each.
How does Trustpilot Review Analyzer track company response times?
For each review that has a company reply, the actor calculates the difference in hours between the review's publishedDate and the reply's createdAt timestamp. The averageResponseTimeHours field is the mean across all replied reviews. This metric is not available from most Trustpilot scrapers.
Is it legal to scrape Trustpilot reviews? This actor accesses only publicly visible data. Web scraping of public data is generally permitted, but laws vary by jurisdiction. Reviewer names may constitute personal data under GDPR. Consult legal counsel for your specific use case and jurisdiction. See Apify's guide on web scraping legality.
How is Trustpilot Review Analyzer different from ReviewTrackers or Birdeye? ReviewTrackers ($69+/month) and Birdeye ($350+/month) are subscription-based SaaS platforms with dashboards and multi-platform aggregation. This actor costs $0.15 per business with no subscription, outputs raw structured data (JSON/CSV), and integrates with any workflow via API. It focuses specifically on Trustpilot data extraction and analysis rather than being a full review management platform.
Can I schedule Trustpilot review scraping to run automatically? Yes. Use Apify Schedules to run the actor daily, weekly, or at custom intervals. Combine with the Google Sheets integration to build a live reputation dashboard that updates automatically.
What happens if a business is not found on Trustpilot?
The output includes "found": false with null values for all business fields. No pay-per-event charge is applied for businesses not found on Trustpilot. The scrapingError field may contain additional details about why the lookup failed.
How long does a typical Trustpilot scraping run take? A single business with 100 reviews takes about 30 seconds. A batch of 10 businesses with 100 reviews each takes 3-5 minutes. Large batches (50 businesses with 500 reviews each) may take 15-30 minutes due to rate limiting. Using proxy configuration can improve speed for larger batches.
Help us improve
If you encounter issues, you can help us debug faster by enabling run sharing in your Apify account:
- Go to Account Settings > Privacy
- Enable Share runs with public Actor creators
This lets us see your run details when something goes wrong, so we can fix issues faster. Your data is only visible to the actor developer, not publicly.
Support
Found a bug or have a feature request? Open an issue in the Issues tab on this actor's page. For custom solutions or enterprise integrations, reach out through the Apify platform.
Compare this actor
Related actors
Website Contact Scraper
Website Contact Scraper is an Apify actor to extract emails, phone numbers, named contacts, job titles, and social links directly from live company websites. Give it a list of company URLs and it returns one structured, deduplicated contact record per domain with classified emails, phone numbers, named contacts with titles, and social links.
Bulk Email Verifier
Bulk email verification that checks every address through seven independent layers — syntax, DNS MX records, disposable domain detection, role-based flagging, free provider identification, live SMTP mailbox probing, and catch-all detection — then scores each result from 0 to 95. Built for sales teams, email marketers, and developers who need clean lists without paying per-credit SaaS fees. At **$0.005 per email**, you get SMTP-depth verification for a fraction of what NeverBounce or ZeroBounce c
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.
Ready to try Trustpilot Review Scraper & Sentiment Analyzer?
Start for free on Apify. No credit card required.
Open on Apify Store