Trustpilot Review Extractor avatar

Trustpilot Review Extractor

Pricing

from $3.00 / 1,000 record scrapeds

Go to Apify Store
Trustpilot Review Extractor

Trustpilot Review Extractor

Scrapes company reviews from Trustpilot with pagination, date filtering, and deduplication.

Pricing

from $3.00 / 1,000 record scrapeds

Rating

0.0

(0)

Developer

Reviewly

Reviewly

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Trustpilot Reviews Scraper — Extract Company Reviews at Scale

Turn Trustpilot into a structured data source. This Apify Actor scrapes company reviews from Trustpilot — ratings, review text, dates, consumer names, and business replies — and delivers clean, ready-to-use JSON data.

  • ✅ Scrape hundreds or thousands of reviews per company
  • ✅ Filter by date to get only recent reviews
  • ✅ Handles Trustpilot's anti-bot protection automatically
  • ✅ Works on any Trustpilot company page (any language/subdomain)

📌 What This Actor Does

This Actor lets you extract Trustpilot company reviews without writing a single line of code. Point it at one or more Trustpilot company URLs, set your limits, and get a structured dataset of reviews delivered directly to your Apify storage.

Who is it for?

  • Businesses monitoring their own or competitors' reputation
  • Marketers collecting social proof and voice-of-customer data
  • Researchers & analysts studying consumer sentiment across industries
  • Developers building review aggregation pipelines or dashboards
  • Agencies managing brand reputation for multiple clients

Real-world use cases:

  • Track what customers say about your brand week over week
  • Benchmark competitor sentiment across dozens of companies
  • Feed reviews into an NLP pipeline for sentiment analysis
  • Build a public-facing review widget powered by live data
  • Alert your team when negative reviews appear after a product launch

✨ Key Features

  • Multi-company support — scrape multiple Trustpilot pages in a single run
  • Pagination handled automatically — goes through all review pages until the limit is hit
  • Date filtering — set a targetDate to only collect reviews from a specific period onward
  • Deduplication — reviews are deduplicated by ID, so you never get the same review twice
  • Review limit — cap the number of reviews per company or scrape everything
  • Business reply extraction — captures the company's official reply alongside the review
  • WAF bypass — automatically solves Trustpilot's AWS WAF challenge
  • Residential proxy support — uses Apify's residential proxy pool for reliable, unblocked access
  • Full metadata — score, rating distribution, and company name included with every dataset item

🧠 Why This Actor is Different

Most Trustpilot scrapers break within days because Trustpilot actively blocks automated access via AWS WAF challenges. This Actor solves the WAF challenge using a real headless browser before making requests, so it keeps working even as Trustpilot's defenses update.

FeatureThis ActorGeneric scrapers
WAF bypass✅ Automatic❌ Breaks frequently
Date filtering✅ Built-in❌ Manual post-processing
Deduplication✅ Per run❌ Duplicates common
Business replies✅ Included❌ Often missing
Multi-company✅ Single run❌ One at a time
Residential proxies✅ Via Apify❌ Datacenter only

⚙️ Input Configuration

Fields

FieldTypeRequiredDescription
startUrlsArray of URLs✅ YesOne or more Trustpilot company review page URLs
maxNumberOfReviewsIntegerNoMax reviews per company. 0 = no limit (scrape all)
targetDateString (YYYY-MM-DD)NoOnly scrape reviews on or after this date
proxyConfigurationObjectNoProxy settings (Apify residential proxy recommended)

Example Input (JSON)

{
"startUrls": [
{ "url": "https://fr.trustpilot.com/review/www.example.com" },
{ "url": "https://www.trustpilot.com/review/www.another-company.com" }
],
"maxNumberOfReviews": 500,
"targetDate": "2024-01-01",
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"]
}
}

Tips

  • Any Trustpilot subdomain worksfr.trustpilot.com, www.trustpilot.com, de.trustpilot.com are all accepted. The URL is normalized automatically.
  • Leave maxNumberOfReviews at 0 to scrape every review the company has.
  • Use targetDate for incremental runs — set it to the date of your last scrape to only collect new reviews.
  • Residential proxies are strongly recommended — they significantly reduce the chance of blocks on large runs.

📤 Output Format

Each dataset item represents one company and contains an entity object with company metadata and a reviews array with all scraped reviews.

Sample Output

{
"entity": {
"businessName": "Example Company",
"score": 4.2,
"totalNumberOfReviews": 1284,
"ratings": {
"one": 45,
"two": 30,
"three": 89,
"four": 210,
"five": 910
},
"sourceUrl": "https://fr.trustpilot.com/review/www.example.com"
},
"reviews": [
{
"reviewId": "abc123def456",
"title": "Great experience overall",
"reviewBody": "The service was fast and the team was very helpful throughout the process.",
"rating": 5,
"datetime": "2024-03-15T10:22:00.000Z",
"consumerName": "Marie Dupont",
"dateOfExperience": "2024-03-10T00:00:00.000Z",
"reviewUrl": "https://fr.trustpilot.com/reviews/abc123def456",
"reply": {
"message": "Thank you for your kind words, Marie! We're glad we could help.",
"publishedDate": "2024-03-16T08:00:00.000Z"
},
"scrapedAt": "2024-05-17T14:30:00.000Z"
}
]
}

Field Reference

Entity fields:

FieldDescription
businessNameCompany display name on Trustpilot
scoreOverall Trustpilot trust score (1–5)
totalNumberOfReviewsTotal review count on Trustpilot
ratingsBreakdown of reviews by star rating (one through five)
sourceUrlThe input URL used to scrape this company

Review fields:

FieldDescription
reviewIdUnique Trustpilot review ID
titleReview headline
reviewBodyFull review text
ratingStar rating (1–5)
datetimeDate the review was published (ISO 8601)
consumerNameReviewer's display name
dateOfExperienceDate the reviewer experienced the service (ISO 8601)
reviewUrlDirect link to the review on Trustpilot
replyCompany's official reply (object with message and publishedDate), or null
scrapedAtTimestamp of when this review was scraped (ISO 8601)

▶️ How to Use

Option 1: Apify Console (No Code)

  1. Open the Actor in the Apify Store
  2. Click Try for free
  3. In the Input tab, add your Trustpilot company URLs under Company Review URLs
  4. Optionally set Max reviews per company and Filter reviews after date
  5. Click Start and wait for the run to finish
  6. Download your data from the Dataset tab as JSON, CSV, or Excel

Option 2: Apify API

curl -X POST \
"https://api.apify.com/v2/acts/YOUR_ACTOR_ID/runs?token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"startUrls": [{ "url": "https://fr.trustpilot.com/review/www.example.com" }],
"maxNumberOfReviews": 200,
"targetDate": "2024-01-01"
}'

Option 3: Scheduled Runs (Monitoring)

  1. Go to Schedules in your Apify account
  2. Create a new schedule (e.g., every Monday at 8:00 AM)
  3. Attach this Actor with your input
  4. Use targetDate set to the previous week's date for incremental collection
  5. Connect to a webhook or integration (Slack, Google Sheets, etc.) for automatic alerts

📈 Use Cases

1. Competitor Reputation Monitoring

Scrape reviews for 5–10 competitors weekly. Track average scores, review volume, and sentiment trends over time. Identify what customers love — and hate — about competing products.

2. Brand Reputation Alerting

Run the Actor daily on your own company page. Use a webhook to trigger a Slack notification whenever a 1-star review is detected, allowing your support team to respond within hours.

3. Sentiment Analysis & NLP

Feed reviewBody fields into an NLP model (e.g., OpenAI, Hugging Face) to classify customer sentiment, extract feature requests, or categorize complaints by topic.

4. Review Aggregation Dashboard

Combine Trustpilot data with reviews from Google Maps, Indeed, and other platforms. Build a unified reputation dashboard for your business or for clients.

5. Market Research

Analyze reviews across an entire industry vertical. Identify recurring pain points, unmet needs, or emerging trends from thousands of authentic customer experiences.


🛠️ Advanced Tips

Incremental Scraping (Only New Reviews)

Set targetDate to the date of your last run. The Actor stops paginating as soon as it encounters a review older than that date, making incremental runs fast and cost-efficient.

Scraping All Reviews from a Large Company

Set maxNumberOfReviews to 0. The Actor will paginate through all pages until every review is collected. For companies with tens of thousands of reviews, use residential proxies and expect the run to take several minutes.

Proxy Configuration

Residential proxies are strongly recommended for large-scale scraping. You can control the country of the proxy via the apifyProxyCountry field:

{
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"],
"apifyProxyCountry": "FR"
}
}

Using a country that matches the Trustpilot subdomain (e.g., FR for fr.trustpilot.com) improves success rates.

Multi-Company Runs

You can scrape dozens of companies in a single Actor run by adding multiple URLs to startUrls. Each company gets its own dataset item. There is no need to run the Actor separately per company.


❓ FAQ & Troubleshooting

Q: The Actor fails or returns no data. What should I do? Enable residential proxies in the proxy configuration. Trustpilot blocks datacenter IPs aggressively. Residential proxies (via Apify) resolve most access issues.

Q: I'm getting fewer reviews than the company actually has. Why? Make sure maxNumberOfReviews is set to 0 for unlimited collection. Also check if targetDate is set — it will stop scraping once reviews older than that date are encountered.

Q: Can I scrape reviews in a language other than French? Yes. The Actor scrapes reviews with languages=all by default, so all languages are included regardless of the subdomain used in the URL.

Q: The review count in totalNumberOfReviews doesn't match what I scraped. totalNumberOfReviews is the count reported by Trustpilot on the page. The number actually scraped may be lower if you set a maxNumberOfReviews limit or a targetDate filter.

Q: Does this Actor handle company replies? Yes. If a company has replied to a review, the reply text and date are included in the reply field. If there is no reply, the field is null.

Q: How often can I run this Actor? As often as you need. For monitoring use cases, a daily or weekly schedule is typical. Use targetDate for incremental runs to avoid re-scraping old data.

Q: Is this Actor affected when Trustpilot updates its WAF? The WAF bypass uses a real browser to solve the challenge, which is more resilient to updates than static token approaches. If you encounter repeated failures after a Trustpilot update, please open an issue.


💰 Pricing

This Actor uses a pay-per-result model — you only pay for what you actually get.

EventPriceWhen it's charged
REVIEW_SCRAPED$0.003Per review successfully scraped and pushed to the dataset

Example costs:

Run sizeTotal cost
50 reviews~$0.25
500 reviews~$1.60
5,000 reviews~$15.10

📞 Support

Have a question, found a bug, or need a custom feature?