How to Scrape Trustpilot Reviews by Company Domain (Python Guide)
Trustpilot has no public API for review data. Learn how to pull business reviews, star ratings, trust scores, and business replies from any Trustpilot company page using Python.
The actor referenced in this article is live on Apify. Pay only for results delivered.
Trustpilot is one of the most trusted review platforms globally, with 260 million reviews across 800,000 businesses. Getting that data programmatically for competitor analysis or brand monitoring is straightforward once you know the approach.
What is available
Every Trustpilot business profile contains:
- TrustScore (1-5) and star distribution
- Total review count and verified review count
- Per-review data: reviewer name, star rating, title, body, date, date of experience, and the business reply if one exists
All reviews are publicly visible without creating a Trustpilot account.
Using the Apify actor
import apify_client
client = apify_client.ApifyClient('YOUR_APIFY_TOKEN')
run_input = {
"domain": "shopify.com", # company domain
"maxReviews": 500,
"filterByStars": None, # None = all, or [1, 2] for negative reviews
"sortBy": "recency",
}
run = client.actor('themineworks/trustpilot-reviews').call(run_input=run_input)
for review in client.dataset(run['defaultDatasetId']).iterate_items():
print(f"{'★' * review['stars']} — {review['title']}")
print(f" {review['body'][:100]}...")
print(f" — {review['reviewer_name']}, {review['date']}")
if review.get('business_reply'):
print(f" Reply: {review['business_reply'][:80]}...")
Competitor sentiment analysis
Compare how customers describe you vs. competitors:
companies = ['your-company.com', 'competitor-a.com', 'competitor-b.com']
all_reviews = {}
for domain in companies:
run = client.actor('themineworks/trustpilot-reviews').call(run_input={
"domain": domain,
"maxReviews": 200,
})
all_reviews[domain] = list(client.dataset(run['defaultDatasetId']).iterate_items())
avg = sum(r['stars'] for r in all_reviews[domain]) / len(all_reviews[domain])
print(f"{domain}: {avg:.2f} avg ({len(all_reviews[domain])} reviews)")
Negative review monitoring
Pull only 1 and 2-star reviews for complaint pattern analysis:
run_input = {
"domain": "your-company.com",
"filterByStars": [1, 2],
"maxReviews": 500,
"sortBy": "recency",
}
Tracking review velocity
Schedule weekly runs to track how review volume and score changes over time — a leading indicator of product or support quality shifts:
from datetime import datetime
import json
run_date = datetime.now().strftime('%Y-%m-%d')
results = list(client.dataset(run['defaultDatasetId']).iterate_items())
summary = {
"date": run_date,
"total_reviews": len(results),
"avg_rating": sum(r['stars'] for r in results) / len(results),
"trust_score": results[0].get('trust_score') if results else None,
}
print(summary)
Building a review training dataset
Trustpilot reviews with star ratings are a clean sentiment dataset for fine-tuning classifiers:
import csv
with open('trustpilot_training.csv', 'w', newline='') as f:
writer = csv.DictWriter(f, fieldnames=['text', 'stars', 'sentiment'])
writer.writeheader()
for r in results:
sentiment = 'positive' if r['stars'] >= 4 else 'negative' if r['stars'] <= 2 else 'neutral'
writer.writerow({'text': r['body'], 'stars': r['stars'], 'sentiment': sentiment})
Pricing
First 25 results free. Pay per review returned. Zero charge on empty searches.
Try the scraper referenced in this article — live on Apify, pay only for results.
Open trustpilot-reviews on Apify →Frequently asked questions
Does Trustpilot have a public API for reviews? +
Trustpilot has a Business API but it is only available to businesses managing their own profiles. Public review data for any company requires scraping.
Can I scrape Trustpilot without creating an account? +
Yes. Review data on Trustpilot company pages is publicly visible without login. The scraper accesses it without any account or credentials.
What is a Trustpilot TrustScore? +
The TrustScore is a 1-5 rating calculated from all reviews using a Bayesian weighted average that accounts for review recency, volume, and verification status.
How to Scrape AmbitionBox Company Reviews and Ratings
AmbitionBox is India largest employer review platform with 300,000 companies. Learn how to pull ratings, review counts, salary data, and dimension scores as structured JSON without any official API.
AliExpress Product Data API: Prices, Ratings, and Orders in Python
AliExpress affiliate API has restricted coverage. Learn how to scrape AliExpress product listings for prices, ratings, order counts, and seller data as structured JSON — no affiliate approval needed.
ClinicalTrials.gov API v2: How to Search 500,000 Studies and Track Trial Status
ClinicalTrials.gov upgraded to a v2 REST API in 2024. Here is how to use it, what changed from v1, and how to build automated trial monitoring pipelines in Python.