Trustpilot Universal Scraper
Pricing
$0.50 / 1,000 results
Trustpilot Universal Scraper
⚡ Scrape unlimited Trustpilot reviews for any company! Paste a domain or review URL, filter by stars, language, period or keywords, and instantly get rich, structured data — reviews, ratings, replies, TrustScores — for reputation monitoring, competitor analysis or lead generation.
Pricing
$0.50 / 1,000 results
Rating
5.0
(2)
Developer
Scrapifier
Maintained by CommunityActor stats
1
Bookmarked
2
Total users
1
Monthly active users
14 hours ago
Last modified
Categories
Share
Trustpilot Reviews Scraper
Scrape customer reviews from Trustpilot by company name, domain or review URL and export them as JSON, CSV or Excel, or pull them straight from the API.
⚡ For every review you get the star rating, the title and full text, the publication and experience dates, the verification status and source, useful votes, the reviewer's display name, country and review count, the company's reply with its date, and the full company profile: TrustScore, rating distribution, categories, contact details (email, phone, address) and reply behaviour. Server-side filters for stars, language, period, keywords, topics, verified and replied reviews are applied by Trustpilot before you pay for a single review. Works on any regional Trustpilot site, with no login and no cookies to paste. You pay per review.
🎯 Why scrape Trustpilot reviews?
- Reputation monitoring: pull your own 1 and 2 star reviews every morning, check which ones the company answered, and track the TrustScore and rating distribution over time.
- Competitor analysis: scrape several brands in one run and compare ratings, review velocity, verification rate and reply behaviour side by side.
- Lead generation: the company profile carries the email, phone and postal address published on Trustpilot, plus categories, claimed status and review counts to qualify each prospect.
- Customer insight: filter reviews by keyword (
refund,delivery) or by topic (customer service) to quantify what customers complain about or praise. - Market research and NLP: build review datasets by language, reviewer country or period for sentiment analysis, topic modelling or academic work.
- Due diligence: TrustScore, consumer alerts, reply percentage and average days to reply are quick health signals for a partner or an acquisition target.
📊 What data does Trustpilot Reviews Scraper extract?
| Field | Description |
|---|---|
id | Unique Trustpilot review id |
url | Direct link to the review |
title, text | Review title and full text |
rating | Star rating (1 to 5) |
language | Review language (ISO code) |
source | How the review was collected (Organic, Invitation...) |
published_date, experienced_date | Publication date and date of experience (ISO 8601) |
updated_date, submitted_date | Last edit date and submission date, when provided |
verified, verification_level, verification_source | Whether the review is verified, Trustpilot's verification level and its source |
is_pending | Whether the review is still pending |
likes | Number of useful votes |
consumer.* | Reviewer: id, display_name, country_code, number_of_reviews, is_verified, image_url, reviews_on_same_domain |
reply.* | The company's reply: message and published_date, or null when there is none |
product_reviews, location | Product-specific details and the business location tied to the review, when present |
company.* | Company profile (with include_company_info): name, domain, trustpilot_url, website_url, trust_score, stars, number_of_reviews, number_of_reviews_last_12_months, is_claimed, consumer_alert, country_code, categories, category_path |
company.contact.* | email, phone, address, city, country, zipcode |
company.activity.* | claimed_date, reply_percentage, average_days_to_reply, verified_by_google, verified_payment_method |
company.rating_distribution.* | Review count per star: total, one to five |
scraped_at | Extraction timestamp |
search_url | The filtered review-page URL this review came from |
With flatten_company_data enabled, flat company_name, company_domain, company_url, company_website, company_trust_score, company_stars, company_total_reviews and company_country_code columns are added next to the nested object so CSV and Excel exports stay flat.
🚀 How to scrape Trustpilot reviews
- Open the Actor and enter one or more companies in Companies / URLs (
company_urls), one per row: a company name (amazon), a domain as shown on Trustpilot (www.amazon.com), a company website (https://www.amazon.com), a Trustpilot review URL or a reviewer profile URL (https://www.trustpilot.com/users/{id}). Regional hosts such asfr.trustpilot.comwork too. - Optionally set Review filters: star ratings, languages, a rolling period or exact published dates, an exact keyword, topics, reviewer countries, verified only, with company reply only, and the sort order.
- Set Max reviews per company (
100by default,0= as many as available). Leave the proxy on Apify Residential. - Click Start. The Actor clears Trustpilot's anti-bot check once in a headless browser, then pages through the filtered review list, 20 reviews per page.
- Open the Storage tab to preview the reviews and export them as JSON, CSV, Excel or XML, or read them from the dataset API.
The same run can be started from the Apify API, the Python or JavaScript client, or put on a schedule for daily or weekly monitoring.
📥 Input parameters
| Field | Key | Type | Default | Description |
|---|---|---|---|---|
| Companies / URLs | company_urls | array of strings | ["amazon"] | Required. Company names, Trustpilot domains, company website URLs, Trustpilot review URLs (their own query filters are kept) or reviewer profile URLs, one per row. |
| Star ratings | stars | select (multiple) | none | Only reviews with these ratings: 1, 2, 3, 4, 5. Empty = all ratings. |
| Languages | languages | select (multiple) | none | Languages to keep, 57 in the list (en, fr, de, es, it, nl, pt, pl, ja, zh...) or any ISO 639-1 code. Empty = all. |
| Period | date | select | "" (All time) | Rolling window: "" (All time), last30days, last3months, last6months, last12months. Combines with Published after. |
| Published after | start_date | string | none | Only reviews published on or after this date (YYYY-MM-DD). With the default sort the run stops as soon as it reaches older reviews. |
| Published before | end_date | string | none | Only reviews published on or before this date (YYYY-MM-DD). |
| Keywords (exact) | search | string | none | Only reviews containing this exact text (refund, delivery). |
| Topics (themes) | topics | array of strings | none | Only reviews about these themes, a broader semantic match than Keywords (refund, customer service, delivery). |
| Reviewer countries | countries | select (multiple) | none | Reviewer countries to keep, 249 in the list (GB, US, FR, DE, ES, IT, NL, AU, CA...) or any ISO 3166-1 alpha-2 code. Empty = all. |
| Verified reviews only | verified | boolean | false | Only reviews with a verified order or invitation. |
| With company reply only | replies_only | boolean | false | Only reviews the company has replied to. |
| Sort by | sort | select | recency | recency (most recent first) or relevance (most relevant first). |
| Expand regional domains | expand_regional_domains | boolean | false | After resolving a company, also scrape every regional sibling (amazon.com, amazon.co.uk, amazon.de...). The per-company limit applies to each sibling. |
| Strict name matching | strict_name_match | boolean | false | Reject search hits whose business name does not clearly match your query. Off = accept Trustpilot's top suggestion. |
| Max reviews per company | max_reviews_per_company | integer | 100 | Reviews to collect per company or reviewer. 0 = as many as available. |
| Include company profile | include_company_info | boolean | true | Attach the full company profile (TrustScore, rating distribution, category, review velocity, reply behaviour, contact details) to every review. |
| Flat company columns (CSV-friendly) | flatten_company_data | boolean | false | Add flat company_name, company_domain, company_trust_score... columns next to the nested company object. |
| Report empty inputs | emit_input_status | boolean | true | Add an input_status report to the run's OUTPUT record listing which inputs returned no reviews and why. |
| Proxy | proxyConfiguration | object | Apify Residential | Residential proxies are recommended for reliable runs. |
Example input:
{"company_urls": ["www.amazon.com"],"stars": ["1", "2"],"languages": ["en"],"start_date": "2026-01-01","max_reviews_per_company": 500,"include_company_info": true}
A pasted Trustpilot review URL keeps its own query filters (for example ?stars=5), which override the global filters for that company only. A bare domain that Trustpilot does not know (amazon.com instead of www.amazon.com) is resolved once through a name search; turn on strict_name_match if a company name resolves to an adjacent but wrong brand.
📤 Output example
Each review is one dataset item, exportable as JSON, CSV, Excel or via the API.
{"id": "abc123","url": "https://www.trustpilot.com/reviews/abc123","title": "Fast delivery, great service","text": "Ordered on Monday, arrived Wednesday. Very happy.","rating": 5,"language": "en","published_date": "2026-06-20T14:03:00Z","verified": true,"likes": 2,"consumer": { "display_name": "John D.", "country_code": "GB", "number_of_reviews": 7 },"reply": { "message": "Thanks for your feedback!", "published_date": "2026-06-21T09:00:00Z" },"company": { "name": "Amazon", "domain": "www.amazon.com", "trust_score": 4.1, "number_of_reviews": 132045 },"scraped_at": "2026-06-25 10:00:00"}
The run's OUTPUT record also holds the run statistics (companies, users, unique reviews, pages, duplicates, errors) and, per input, an input_status entry (ok, empty or not_found, with the resolved domain and a reason) so you can see at a glance which input produced nothing.
💡 Ready-to-run examples
Negative English reviews published since a date
{ "company_urls": ["www.amazon.com"], "stars": ["1", "2"], "languages": ["en"], "start_date": "2026-01-01", "max_reviews_per_company": 500 }
Latest 100 reviews of a company, by name
{ "company_urls": ["amazon"], "max_reviews_per_company": 100 }
Reviews mentioning a keyword in the last 3 months
{ "company_urls": ["www.amazon.com"], "search": "refund", "date": "last3months", "sort": "recency" }
A brand's regional sites, verified reviews with a company reply
{ "company_urls": ["amazon"], "expand_regional_domains": true, "verified": true, "replies_only": true, "max_reviews_per_company": 100 }
A filtered Trustpilot review URL, with flat columns for Excel
{ "company_urls": ["https://www.trustpilot.com/review/www.amazon.com?stars=5"], "flatten_company_data": true, "max_reviews_per_company": 200 }
💰 Pricing: how much does it cost to scrape Trustpilot reviews?
$0.50 per 1,000 reviews, flat. You pay only for the results you receive, there is no subscription and no start fee. New Apify accounts get free monthly platform credits to try it.
Cost is driven purely by the number of reviews returned: use max_reviews_per_company to cap each company (with expand_regional_domains the cap applies to each regional domain), and narrow the set with stars, languages, date, search, topics, verified or replies_only, which Trustpilot applies before anything is fetched.
⚙️ Performance, proxies and limits
- Residential proxies recommended. Trustpilot sits behind AWS WAF, which serves a JavaScript challenge before the real page. The Actor solves it once per run in a headless browser (45 seconds at most), then reuses the token with a lightweight HTTP client for every page. The token is bound to the IP, so on a block the Actor rotates to another proxy session (3 sticky sessions) and re-solves the challenge, up to 3 attempts per page. The Apify
RESIDENTIALgroup is prefilled. - Pagination: 20 reviews per page, fixed by Trustpilot. Results are pushed to the dataset every 5 pages, so partial data is available while the run is still going.
- Server-side versus client-side filters: stars, a single language, period, keywords, topics, verified, replies and sort are applied by Trustpilot. Reviewer countries, exact published dates and a selection of several languages are applied by the Actor after fetching, so they still consume pages even though you only pay for the reviews kept.
- Early stop on dates: with
start_dateand the defaultrecencysort, the run stops at the first review older than the date. Withrelevancesort it pages through the whole filtered list. - Deduplication: reviews are deduplicated by
idwithin a run, and a company is closed after 3 consecutive pages without a new review. - Reviewer profiles: user pages have no server-side filters. Stars, verified, countries, dates and languages are applied after fetching; keywords, topics and the reply filter do not apply, and the
companyblock is limited toid,name,domainandtrustpilot_url. - Empty inputs: a name that resolves to nothing is reported as
not_found, a company whose reviews are all filtered out asempty, in theinput_statusreport of the OUTPUT record. - Default run options: 2,048 MB of memory and a 3,600 second timeout. Raise the timeout for very large companies with
max_reviews_per_companyset to0.
🔌 Integrations and API
Run Trustpilot Reviews Scraper from the Apify API, the Python or JavaScript client, or on a schedule. Connect it to Make, Zapier, n8n, Google Sheets, Slack or any webhook through Apify integrations. Every run's dataset is available as JSON, CSV, Excel or XML from the dataset API.
curl -X POST "https://api.apify.com/v2/acts/scrapifier~trustpilot-universal-scraper/run-sync-get-dataset-items?token=<YOUR_TOKEN>" \-H "Content-Type: application/json" \-d '{ "company_urls": ["www.amazon.com"], "stars": ["1", "2"], "languages": ["en"], "start_date": "2026-01-01", "max_reviews_per_company": 500 }'
❓ FAQ
Is it legal to scrape Trustpilot reviews?
The Actor only reads reviews and company profiles that Trustpilot publishes to anyone without logging in. Reviews contain personal data (reviewer names and countries), so process them in line with GDPR and other privacy laws, respect Trustpilot's terms of use, and stay responsible for how you use the data. This is not legal advice.
Do I need a Trustpilot account, login or cookies?
No. Nothing to log in to and no cookies to paste: the Actor solves Trustpilot's anti-bot challenge itself. Keep the prefilled Apify Residential proxy for reliable runs.
Can I export Trustpilot reviews to Excel or Google Sheets?
Yes. Every run's dataset downloads as CSV, XLSX, JSON or XML from the Storage tab, and the Google Sheets integration can push new reviews to a sheet automatically. Turn on flatten_company_data to get the company columns flat in the spreadsheet.
How many reviews can I scrape per company?
As many as Trustpilot exposes for your filters (set max_reviews_per_company to 0). Most users cap each run, sort by recency and set start_date so that each scheduled run only fetches what is new.
How do I target a specific country's Trustpilot site?
Paste that country's Trustpilot review URL (fr.trustpilot.com, uk.trustpilot.com...), which keeps its regional host, or turn on expand_regional_domains to scrape every regional sibling of the brand in one run. To keep only reviews written from one country, use countries instead.
Can I scrape the reviews written by one person?
Yes. Paste that reviewer's profile URL (https://www.trustpilot.com/users/{id}) in company_urls. Stars, verified, countries, dates and languages still apply; keywords, topics and the reply filter do not.
Why did my run return no reviews, or report being blocked?
Check the input_status report in the OUTPUT record: not_found means the name or domain did not resolve on Trustpilot (try the exact domain shown on Trustpilot, such as www.amazon.com), empty means every review was filtered out. A blocked run usually means the anti-bot challenge could not be solved without residential proxies: keep the RESIDENTIAL group in proxyConfiguration and retry.
How fresh is the data?
Every run scrapes Trustpilot live. Schedule the Actor daily or weekly with start_date to keep a rolling history of new reviews.
🔗 Related scrapers
- Glassdoor Reviews Scraper: employee reviews with ratings, pros, cons, advice and company responses.
- Glassdoor Company Overview Scraper: the full company profile (ratings, CEO approval, size, HQ, revenue) by name or URL.
- Glassdoor Company Search Scraper: find companies by location, industry, minimum rating and size.
- Quora Answers Scraper: answers, authors and upvotes for any Quora question.
- Vinted Scraper: second-hand fashion listings from any Vinted country.
💬 Support
Questions, bugs or a feature request? Open an issue in the Issues tab of this Actor, I answer quickly. If Trustpilot Reviews Scraper saves you time, a rating on the Store helps others find it.