Trustpilot Scraper — Reviews, Ratings, Company Data & Sentiment
Pricing
from $0.12 / 1,000 reviews
Trustpilot Scraper — Reviews, Ratings, Company Data & Sentiment
Scrape Trustpilot reviews, star ratings, company profiles, and replies at scale. Filter by stars and language. Export JSON, CSV, Excel. Cheapest Trustpilot scraper on Apify — $0.20 per 1,000 reviews.
Pricing
from $0.12 / 1,000 reviews
Rating
0.0
(0)
Developer
Rémi Pelloux
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Trustpilot Reviews Scraper — Ratings, Company Data & Reply Analysis
The fastest and most affordable Trustpilot scraper on Apify. Extract customer reviews, star ratings, company profiles, reviewer details, and company replies from any Trustpilot business page. Process hundreds of companies in parallel with built-in pagination, language filtering, and star rating filters.
Use this actor to monitor brand reputation, analyze competitors, track customer sentiment, or build review datasets for market research. Paste company domains or Trustpilot URLs and get structured review data ready for your spreadsheet, dashboard, or CRM.
Why choose this scraper?
| Feature | This actor | Basic review scraper | Manual export |
|---|---|---|---|
| Price per 1,000 reviews | $0.20 | ~$0.50 | Free (limited) |
| Parallel company processing | Up to 20 concurrent | 1 at a time | N/A |
| Star rating filter | Yes | No | Limited |
| Language filter | Yes | No | Yes |
| Company reply extraction | Yes | Partial | Yes |
| Reviewer country | Yes | No | No |
| Verified review flag | Yes | No | Yes |
| Pagination (all reviews) | Automatic | Manual | 20 per page |
| Export formats | JSON, CSV, Excel, API | JSON only | None |
What data do you get?
Every review includes 21 structured fields across three categories:
Company profile: company name, website URL, Trustpilot URL, overall rating, total review count, business categories.
Review content: review ID, title, full text, star rating (1-5), publication date, date of experience, review language, direct review URL.
Reviewer and reply: reviewer display name, country, total review count, verification status, whether the company replied, reply text, and reply date.
Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
urls | String[] | Required | Company domains or Trustpilot URLs (e.g. apple.com, trustpilot.com/review/amazon.com) |
maxReviewsPerCompany | Integer | 100 | Max reviews to scrape per company. Set to 0 for all reviews |
filterByStars | Integer[] | All | Only scrape reviews with these star ratings (e.g. [1, 2] for negative only) |
sortBy | String | recency | Sort by recency (newest first) or relevance |
reviewLanguage | String | All | ISO language code to filter reviews (e.g. en, fr, de) |
maxConcurrency | Integer | 10 | Number of companies processed in parallel |
proxyConfiguration | Object | RESIDENTIAL proxy | Residential proxies required — Trustpilot blocks datacenter IPs |
Input examples
Scrape latest 200 reviews from multiple companies:
{"urls": ["apple.com", "amazon.com", "netflix.com"],"maxReviewsPerCompany": 200,"sortBy": "recency"}
Extract only negative reviews (1-2 stars) in English:
{"urls": ["https://www.trustpilot.com/review/example.com"],"filterByStars": [1, 2],"reviewLanguage": "en","maxReviewsPerCompany": 500}
Scrape all reviews from a single company:
{"urls": ["stripe.com"],"maxReviewsPerCompany": 0}
Output example
{"companyName": "Apple","companyUrl": "https://www.apple.com","companyTrustpilotUrl": "https://www.trustpilot.com/review/www.apple.com","companyRating": 1.8,"companyTotalReviews": 11801,"companyCategories": ["Electronics Store", "Cell Phone Store", "Software Company"],"reviewId": "65a1b2c3d4e5f6a7b8c9d0e1","reviewTitle": "Great hardware, terrible customer support","reviewText": "I bought an iPhone 15 Pro and the hardware is excellent, but when I had an issue with my warranty claim, the support team was unhelpful and took weeks to respond...","reviewRating": 2,"reviewDate": "2026-03-15T10:30:00.000Z","reviewDateOfExperience": "2026-03-01","reviewerName": "John D.","reviewerCountry": "US","reviewerReviewCount": 5,"isVerified": true,"hasReply": true,"replyText": "Thank you for your feedback, John. We're sorry to hear about your experience and would like to look into this further...","replyDate": "2026-03-16T08:00:00.000Z","reviewLanguage": "en","reviewUrl": "https://www.trustpilot.com/reviews/65a1b2c3d4e5f6a7b8c9d0e1"}
Pricing
| Tier | Per review | Per 1,000 reviews |
|---|---|---|
| Standard | $0.0002 | $0.20 |
| Bronze | $0.00018 | $0.18 |
| Silver | $0.00015 | $0.15 |
| Gold | $0.00012 | $0.12 |
Free users can scrape 50 reviews per run to test the actor before subscribing.
Platform compute costs are billed separately by Apify based on memory and run time. This actor uses minimal resources (256 MB default) so compute costs are negligible.
Programmatic access (API)
Python
from apify_client import ApifyClientclient = ApifyClient("YOUR_API_TOKEN")run = client.actor("YOUR_ACTOR_ID").call(run_input={"urls": ["apple.com", "amazon.com"],"maxReviewsPerCompany": 200,"filterByStars": [1, 2, 3],})for review in client.dataset(run["defaultDatasetId"]).iterate_items():print(f'{review["companyName"]} — {review["reviewRating"]}★ — {review["reviewTitle"]}')
JavaScript
import { ApifyClient } from "apify-client";const client = new ApifyClient({ token: "YOUR_API_TOKEN" });const run = await client.actor("YOUR_ACTOR_ID").call({urls: ["apple.com", "amazon.com"],maxReviewsPerCompany: 200,filterByStars: [1, 2, 3],});const { items } = await client.dataset(run.defaultDatasetId).listItems();for (const review of items) {console.log(`${review.companyName} — ${review.reviewRating}★ — ${review.reviewTitle}`);}
cURL
# Start a runcurl -X POST "https://api.apify.com/v2/acts/YOUR_ACTOR_ID/runs?token=YOUR_API_TOKEN" \-H "Content-Type: application/json" \-d '{"urls": ["apple.com"], "maxReviewsPerCompany": 100}'# Fetch resultscurl "https://api.apify.com/v2/datasets/DATASET_ID/items?token=YOUR_API_TOKEN&format=json"
Use cases
- Brand monitoring — Track what customers say about your company over time. Set up scheduled runs to catch new reviews daily.
- Competitor analysis — Compare review sentiment, response rates, and ratings across competitors in your industry.
- Market research — Build datasets of customer feedback for product development, pricing strategy, or market entry analysis.
- Sentiment analysis — Feed review text into NLP models to measure customer satisfaction trends.
- Reputation management — Monitor for negative reviews and track whether companies respond (and how quickly).
- Lead qualification — Check Trustpilot scores before engaging with potential business partners or vendors.
Integrations
- Apify API — Trigger runs programmatically and stream results as JSON into your data pipeline.
- Zapier — Automatically run the scraper when new companies are added to a Google Sheet, then push results into Slack, email, or your CRM.
- Make (Integromat) — Build multi-step workflows that scrape reviews, filter by rating, and route alerts for negative reviews.
- Google Sheets — Export the dataset directly to Google Sheets for team review and collaboration.
- Webhooks — Receive results as soon as the run completes for real-time processing.
- Scheduled Runs — Set up daily or weekly schedules to continuously monitor company reviews.
FAQ
How many reviews can I scrape per company?
There is no hard limit. Set maxReviewsPerCompany to 0 to scrape all available reviews. Companies with tens of thousands of reviews may take several minutes to complete.
Do I need a Trustpilot account? No. This actor scrapes publicly available review data. No Trustpilot account or API key is required.
How fast is the scraper? The actor processes approximately 50-100 reviews per second per company, depending on proxy configuration. Multiple companies are processed in parallel.
Can I filter reviews by date?
Sort by recency (default) to get the newest reviews first, then set maxReviewsPerCompany to control how far back you go. Direct date range filtering is planned for a future release.
What happens if a company is not on Trustpilot? The actor skips companies that don't have a Trustpilot page and continues processing the remaining ones. Check the run log for details.
Can I scrape reviews in languages other than English?
Yes. Set reviewLanguage to any ISO 639-1 code (e.g. fr for French, de for German). Leave it empty to get reviews in all languages.
Does the actor extract company replies? Yes. If a company has replied to a review, the reply text and reply date are included in the output.
Why do I need residential proxies? Trustpilot uses Cloudflare protection that blocks datacenter IP addresses. Residential proxies are required for reliable scraping. The actor is pre-configured with Apify's RESIDENTIAL proxy group — no additional setup needed.
Responsible use
This actor collects publicly visible information from Trustpilot. Follow these guidelines:
- Comply with applicable laws including GDPR and local data protection regulations.
- Respect Trustpilot's terms of service and rate limits.
- Do not use scraped reviews for fake testimonials, defamation, or misleading marketing.
- Consider the privacy of reviewers — their names and countries are public but should be handled responsibly.