The Mine Works
Browse on Apify
← All posts
tutorial June 22, 2026 · 2 min read Updated June 22, 2026

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.

Try the scraper

The actor referenced in this article is live on Apify. Pay only for results delivered.

Open on Apify →

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.

Related Actor

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.