Trustpilot Reviews Scraper - All Languages & Replies
Pricing
from $2.00 / 1,000 reviews
Trustpilot Reviews Scraper - All Languages & Replies
Scrape every reachable Trustpilot review for any company: star rating, full text, the company reply, verification status, reviewer country and history, and the branch. Gets past the 200-review search ceiling, returns all languages not just English, and reports what it reached. Pay per review.
Pricing
from $2.00 / 1,000 reviews
Rating
0.0
(0)
Developer
Blackcube
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
8 days ago
Last modified
Categories
Share
| Trustpilot Review Intelligence Suite • 11 Actors, one codebase, one review billed once | ||
| Trustpilot Reviews Scraper ➤ You are here | Trustpilot Review Monitoring New Reviews Only | Brand Reputation Monitoring Scraper Trustpilot |
| Trustpilot Competitor Analysis Scraper Rivals | Trustpilot Data Export Reviews to CSV & JSON | Trustpilot Star Rating Scraper TrustScore API |
| Customer Feedback Scraper Trustpilot Reviews | Trustpilot Email Scraper Company Contacts | Trustpilot Leads Scraper Company Data & B2B |
| Trustpilot Negative Reviews Scraper 1 & 2 Star | Trustpilot Verified Reviews Scraper Genuine | |
More from this account: YouTube Transcript Suite · Website Contact & Email Suite · Career Site & ATS Jobs Suite · Google News Suite · Keyword Research Suite · Shopify Store Intelligence Suite · eBay Data Suite · Amazon Reviews Suite · Reddit · Meta Ad Library · Vinted · App Store & Google Play Reviews Suite · Business Reviews Suite · Amazon Product Data Suite
Scrape every reachable Trustpilot review for any company: star rating, full text, the company reply, verification status, reviewer country and history, and the branch. Gets past the 200-review search ceiling, returns all languages not just English, and reports what it reached. Pay per review.
Why this one
It tells you what it could not reach. Trustpilot serves at most 200 reviews for any one search — page 11 comes back empty. This Actor works around that by splitting a company's history into separate searches by star rating and by language, then walking each one, so a large company yields far more than 200. Where a slice still holds more than 200, the run says so by name in a coverage row instead of quietly returning a partial answer. None of the four leading Trustpilot Actors we benchmarked emits any completeness signal at all.
It reads every language, not just English. Trustpilot's own pages default to English. On one measured company that is 30,081 of 45,738 reviews — a scraper that leaves the default alone silently drops a third of the corpus, and you cannot tell from the output. This one asks for all languages by default and reports the exact review count per language.
A schedule does not re-bill you for history. Turn on change tracking and the Actor remembers every review id it has delivered, so tomorrow's run charges for tomorrow's reviews. There is no run-start fee; on a quiet day the page still has to be opened to prove it is quiet, and that is billed once per company as a company checked ($0.006) — less than a company profile, and a fraction of what a busy brand costs.
Nothing in it expires. No bundled token, no API key, no credential that lapses and takes the Actor down until someone redeploys it.
You can cap the bill. A per-company cap, a whole-run cap, and a hard dollar ceiling. Failed lookups, filtered-out reviews, companies with no Trustpilot profile and the coverage report are all free.
What people use it for
- Track what customers say about you and your competitors. Put a list of brands on a daily schedule and get only the reviews that appeared since the last run, with the complaint text and whatever the company replied.
- Build the evidence for a pitch or an audit. Pull the 1 and 2 star reviews for a prospect, with the exact share of complaints they answer and how many days they take, straight from Trustpilot's own numbers.
- Feed a sentiment or topic model. Export the review text with the star rating, language, country and date attached, in every language the company has reviews in rather than English only.
- Qualify B2B leads. Get TrustScore, review volume and trend, category, country, published contact details and claimed status for a list of domains, without paying for review text you do not want.
Getting started
Paste one or more Trustpilot company pages — or just their domains — into Companies, set how many reviews you want per company, and run it. Every filter is optional.
Recipes
Every reachable review for one company
{"companyUrls": ["https://www.trustpilot.com/review/www.currys.co.uk"],"maxReviewsPerCompany": 0}
Just the complaints, with the company's answer
{"companyUrls": ["www.currys.co.uk"],"ratings": ["1", "2"],"maxReviewsPerCompany": 500}
A daily watch over several brands, billed only for new reviews
{"companyUrls": ["www.currys.co.uk", "www.argos.co.uk", "www.johnlewis.com"],"onlyNewSinceLastRun": true,"stateLabel": "uk-retail","maxReviewsPerCompany": 200}
Only reviews that mention a word you care about
{"companyUrls": ["www.currys.co.uk"],"searchTerm": "refund","maxReviewsPerCompany": 300}
Trustpilot applies this one itself, so you are billed for matching reviews rather than filtering afterwards.
Company data only, no review text
{"companyUrls": ["www.currys.co.uk", "monzo.com", "www.tesco.com"],"companyProfilesOnly": true}
One request per company. TrustScore, the full star spread, contact details, claimed status and reply behaviour — and no review charges at all.
Input reference
| Field | What it does |
|---|---|
companyUrls | Trustpilot company pages or plain domains. www.trustpilot.com/review/x.com, uk.trustpilot.com/review/x.com and x.com all work |
maxReviewsPerCompany | per-company cap; 0 means as much as the Actor can reach |
maxReviews | ceiling across the whole run |
includeCompanyProfile | add the company intelligence row (charged separately) |
companyProfilesOnly | company rows only, no reviews and no review charges |
ratings | keep only these star ratings; also makes deep history cheaper to reach |
languages | ISO codes such as en, de, fr; empty means all languages |
reviewsSince / publishedBefore | date window |
searchTerm | only reviews mentioning this word — applied by Trustpilot, so you are not billed for the rest |
sort | newest first, or Trustpilot's own relevance order |
onlyVerified / onlyWithReplies | keep only verified reviews, or only answered ones |
onlyNewSinceLastRun + stateLabel | change tracking for scheduled runs |
maxCostUsd | hard spending ceiling for the run |
What you get
Each review row:
| Field | What it is |
|---|---|
rating | 1 to 5 stars |
title, text | the review as written |
publishedDate, experiencedDate | when it was posted, and when the experience happened |
language | ISO code of the review's own language |
isVerified, verificationLevel, verificationSource | Trustpilot's verification state, read from the review's label rather than a raw flag |
isFiltered, isPending, hasUnhandledReports | whether Trustpilot has filtered, held or received reports about this review |
reviewerName, reviewerCountry, reviewerTotalReviews | who wrote it and how active they are |
reviewerReviewsOfThisCompany | how many times this person has reviewed this company |
hasReply, replyText, replyPublishedDate | the company's public answer |
locationName, locationId | the branch, for multi-location businesses |
usefulCount | how many people found it useful |
companyName, companyDomain, companyTrustScore, companyReviewCount | flat columns so a spreadsheet needs no joins |
reviewUrl, reviewId | a stable link and a stable id |
Each company row:
| Field | What it is |
|---|---|
trustScore, stars | the headline score |
reviewCount, reviewCountLast12Months | volume, and how much of it is recent |
ratingOne … ratingFive | the exact star distribution |
languageBreakdown | every language with its exact review count |
replyPercentage, averageDaysToReply | what share of negative reviews the company answers, and how fast |
negativeReviewsWithReplies, totalNegativeReviews, lastReplyToNegativeReview | the numbers behind that |
contactEmail, contactPhone, contactAddress, contactCity, contactZipCode | the contact details the company publishes on its profile |
primaryCategory, categories, countryCode | how Trustpilot classifies it |
isClaimed, claimedDate, isClosed, isTemporarilyClosed | profile status |
verifiedByGoogle, verifiedPaymentMethod, verifiedUserIdentity, hasConsumerAlert | trust signals |
similarCompanies | companies Trustpilot lists alongside this one, with their scores |
And one free coverage row per company:
| Field | What it is |
|---|---|
reviewsReturned | what you got |
writtenReviewsTotal | how many reviews with text exist |
reviewsTotal, ratingOnlyReviews | Trustpilot's headline count, and how much of it is star-only ratings with no text |
saturatedCells | the searches that hit the 200 ceiling, named |
unreachableEstimate | written reviews not returned |
stoppedBecause | why the run stopped for this company |
Run it on a schedule
This is built to be put on a cron. Set onlyNewSinceLastRun to true and give stateLabel a
name — for example uk-retail — and reuse that exact label on every run. The Actor keeps the
ids of every review it has already handed you, so a scheduled run delivers and charges for new
reviews only. There is no run-start fee, so a morning where nobody reviewed you costs nothing.
In Apify, open the Actor, choose Schedules, and add one — 0 7 * * * runs it every day at
07:00 UTC. Point reviewsSince at your last run instead if you would rather bound it by date.
Pricing
| Charged for | Free | Bronze | Silver | Gold | Platinum | Diamond |
|---|---|---|---|---|---|---|
| 1,000 reviews | $4.00 | $3.36 | $2.56 | $2.00 | $2.00 | $2.00 |
| 1,000 company profiles | $16.00 | $13.50 | $10.30 | $8.00 | $7.40 | $6.80 |
The Store card shows the Gold tier. So 1,000 reviews is $2.00 on Gold, and a company profile is $8.00 per 1,000.
There is no charge for starting a run, and these are always free:
- companies with no Trustpilot profile, and anything else that produced no data
- reviews excluded by your own filters
- the per-company coverage report
- every diagnostic row explaining why an input returned nothing
Notes and limits
- Unofficial. Not affiliated with, endorsed by, or connected to Trustpilot A/S. "Trustpilot" is used only to say which public website this Actor reads.
- Public data only. It reads pages any visitor can open. It does not log in, and it collects no private or login-gated data.
- Personal data. Reviews carry the display name and country the reviewer chose to publish. If you process them for people in the EU/UK, that is personal data and the GDPR applies to what you do with it — you are the controller of your copy.
- Reviews with no text. Trustpilot's headline review count includes star-only ratings, which no listing page serves. Every run reports written reviews and star-only ratings as separate numbers so the gap is never a mystery.
- One challenge solve per run. Trustpilot fronts its pages with a browser check. This Actor solves it once at the start of a run and then uses plain HTTP for every page and every company, which is why adding companies costs time roughly in proportion to the reviews, not to a browser page load each. That first solve is a real fixed cost of a few seconds.
Support
Something wrong, or a field you need? Open an issue on the Actor's issues tab and it gets looked at.
Use it from n8n, MCP, the API or a schedule
Built to be called by a workflow, not only from the Store form. The Actor is vonsensey/trustpilot-reviews-scraper; every snippet below sends {}, which runs the defaults shown on the form — replace it with your own input.
n8n
Install the Apify community node (@apify/n8n-nodes-apify under Settings → Community Nodes, or search "Apify" on n8n Cloud). Add Apify → Run Actor with Actor vonsensey/trustpilot-reviews-scraper and your input JSON, then Apify → Get Dataset Items on the run's defaultDatasetId and pipe the rows anywhere. For scheduled runs, the On new Apify Event trigger fires when a run of this Actor finishes.
MCP (Claude, Cursor, VS Code, any MCP client)
{"mcpServers": {"apify": {"url": "https://mcp.apify.com?tools=vonsensey/trustpilot-reviews-scraper","headers": {"Authorization": "Bearer <YOUR_APIFY_TOKEN>"}}}}
Your agent then calls vonsensey/trustpilot-reviews-scraper as a tool with the same input the form takes and reads the dataset back.
REST API (one call, rows in the response)
curl -X POST "https://api.apify.com/v2/acts/vonsensey~trustpilot-reviews-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \-H "Content-Type: application/json" -d '{}'
Python
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("vonsensey/trustpilot-reviews-scraper").call(run_input={})for row in client.dataset(run["defaultDatasetId"]).iterate_items():print(row)
JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('vonsensey/trustpilot-reviews-scraper').call({});const { items } = await client.dataset(run.defaultDatasetId).listItems();
Make, Zapier, LangChain, CrewAI
The Apify app in Make and Zapier has a Run an Actor module: pick vonsensey/trustpilot-reviews-scraper. In LangChain and CrewAI the Apify tool wrappers take the same Actor id. A daily schedule needs nothing but the Console: Schedules → Create → this Actor → cron, and the dataset fills on its own.
Run it without configuring anything — Scrape Trustpilot reviews for a company, a ready-made example you can start as-is or copy.
Use cases
- Track what customers say about you and your rivals. Put a brand list on a daily schedule and get only the reviews that appeared since the last run, with the complaint text and the company's answer.
- Build the evidence for a pitch or an audit. Pull a prospect's 1 and 2 star reviews alongside the exact share of complaints they answer and how many days they take, from Trustpilot's own numbers.
- Feed a sentiment or topic model. Review text with star rating, language, country and date attached — in every language the company has reviews in, not English only.
- Qualify B2B leads. TrustScore, review volume and trend, category, country, published contact details and claimed status for a list of domains, without paying for review text you do not need.
Run it on a schedule
A one-off pull answers a question; a schedule answers it every day without you. Open Schedules in the Apify Console, point a cron at this Actor, and the dataset keeps filling on its own — no server, no cron box, no babysitting. Everything here is built to be re-run: you are billed per review delivered, so a scheduled run that finds nothing new costs nothing.
FAQ
How do I export Trustpilot reviews to CSV or Excel?
Run it, then open the run's Storage tab and pick CSV, Excel or JSON. The dataset ships with a reviews view, a company view and a coverage view, so the export already has sensible columns.
Can I get more than 200 reviews from Trustpilot?
Yes. Trustpilot itself serves at most 200 results for any single search, so this splits a company's history into separate searches by star rating and language and walks each one. Where a slice still holds more than 200, the run names that slice in a free coverage row, so you always know whether you have the whole picture.
Does it return reviews in every language?
Yes, by default. Trustpilot's pages show English first, so scrapers that do not override that return English only — on one measured company that is 30,081 of 45,738 reviews. Every company row lists each language with its exact count.
Will a daily schedule bill me for the same reviews twice?
No, with change tracking on. The Actor remembers the review ids it has already delivered under your tracking label and skips them, so you are charged for new reviews only. There is no run-start fee either, so a quiet day costs nothing.
Something wrong, or a field you need that is missing? Open an issue on the Issues tab — it is read and it gets fixed. If this saved you time, a rating on the Store page helps the next person find it.