Trustpilot Reviews Scraper | $0.40/1K + Sentiment
Pricing
from $0.40 / 1,000 results
Trustpilot Reviews Scraper | $0.40/1K + Sentiment
Fast request-based Trustpilot scraper for reviews, replies, ratings, sentiment, company profiles, search discovery, and monitoring changes. Clean datasets for reputation and competitor tracking.
Pricing
from $0.40 / 1,000 results
Rating
0.0
(0)
Developer
Kelopr
Maintained by CommunityActor stats
0
Bookmarked
17
Total users
12
Monthly active users
4 days ago
Last modified
Categories
Share
⭐ Trustpilot Review Intelligence Scraper
Most Trustpilot scrapers hand you rows of text and leave the thinking to you. This one reads every review it collects and labels it — sentiment, the topics it talks about, how severe the problem is, and which risk flags it trips — so the dataset arrives already sorted into "praise", "noise", and "deal with this now."
Point it at a domain, a Trustpilot URL, a business unit ID, or a search query. No login, no browser, no cookies.
INPUT COLLECT ENRICH OUTPUT┌──────────────┐ ┌────────────┐ ┌──────────────────┐ ┌──────────────┐│ domain │ │ resolve │ │ sentiment +score │ │ Reviews ││ Trustpilot │ │ company │ raw │ topics │ │ Intelligence ││ URL │────▶│ profile, │───────▶│ riskSignals │────▶│ Companies ││ businessUnit │ │ then fetch │ review │ issueSeverity │ │ Changes ││ searchQuery │ │ reviews │ │ reviewLength │ │ Report │└──────────────┘ └────────────┘ └──────────────────┘ └──────────────┘🧭 AUTO picks SEARCH (discover first) or REVIEWS (known companies)
🧠 The intelligence layer (start here)
Every review row carries five derived fields on top of the raw text. They are computed by the Actor from the review's own rating and wording — nothing to configure, no external API.
sentiment + sentimentScore
A label and a signed score, anchored on the star rating and nudged by wording.
| Rating | sentiment | sentimentScore |
|---|---|---|
| 5 | positive | 1.0 |
| 4 | positive | 0.5 |
| 3 (positive wording) | mixed_positive | 0.25 |
| 3 (neutral) | neutral | 0.0 |
| 3 (negative wording) | mixed_negative | -0.25 |
| 2 | negative | -0.5 |
| 1 | negative | -1.0 |
When a rating is missing, sentiment falls back to the wording alone (positive / negative at ±0.35, otherwise unknown).
topics — what the review is about
Each review is scanned for eight recurring themes. A review can match several, or none:
delivery_shipping · customer_service · refund_billing · product_quality · trust_safety · pricing_value · app_website · staff
These roll up per company into topTopics, so you can see at a glance whether a brand's pain is shipping or billing.
riskSignals — the flags worth acting on
A list of concrete red flags, each raised by its own rule:
| Signal | Raised when |
|---|---|
low_rating | Rating is 1–2 |
strong_negative_language | Negative rating and harsh wording ("scam", "worst", "never again"…) |
trust_or_safety_issue | A negative review that touches the trust_safety topic |
unanswered_negative_review | Rating 1–2 with no company reply |
unverified_review | Review is explicitly unverified |
issueSeverity — one field to triage on
The signals collapse into a single priority you can sort by: none · low · medium · high.
- high — a 1-star review, or anything flagged with a trust/safety issue
- medium — a 2-star review, or two or more risk signals stacked together
- low — a lingering signal on an otherwise-fine review
- none — clean
Sort the Review intelligence tab by
issueSeveritydescending and your support queue writes itself.
Plus reviewLength (character count of the review body) for filtering out one-liners.
📤 What a single review row looks like
{"type": "review","reviewId": "6410f2c9a1b2c3d4e5f60718","companyName": "Amazon","companyDomain": "www.amazon.com","trustScore": 4.1,"rating": 1,"title": "Package never arrived","text": "Ordered two weeks ago, tracking dead, support ignored me...","language": "en","datePublished": "2026-07-25T09:12:00Z","isVerified": true,"hasCompanyReply": false,"sentiment": "negative","sentimentScore": -1.0,"topics": ["delivery_shipping", "customer_service"],"issueSeverity": "high","riskSignals": ["low_rating", "unanswered_negative_review"],"reviewLength": 214,"scrapedAt": "2026-08-07T18:30:02Z"}
The intelligence fields sit right beside the raw ones — filter, group, and sort them in a spreadsheet without any post-processing.
📚 Under the intelligence: the raw data
The labels are computed on top of full, faithful review and company data.
📝 Review body — reviewId · reviewUrl · rating · title · text · language · datePublished · dateExperienced · dateUpdated · isVerified · reviewSource · consumerName · consumerId · consumerCountry · consumerReviewCount · consumerImageUrl · reviewImageUrl · likes · reviewTags
💬 Company replies — hasCompanyReply · companyReplyText · companyReplyDate. Reviews that have a reply also surface in their own Replies tab.
🏢 Company profile (attached to reviews and collected in a Companies dataset) — companyId · companyName · companyDomain · companyUrl · companyWebsite · trustScore · companyRating · companyReviewCount · ratingDistribution · companyCategories · companyClaimed · companyVerified · companyDescription · companyAddress · companyCountry · companyLogo · companyHeroImage · companyEmail(s) · companyPhone(s)
📊 Per-company rollups — each company row also carries run-level stats derived from the labels above: reviewsScraped · averageScrapedRating · positiveReviews · neutralReviews · negativeReviews · replyRate · verifiedRate · topTopics.
📈 Watching for change over time
Turn on enableDeltaMonitoring and give the run a stable monitorKey. From the second run onward, each review is compared to the last run and tagged:
changeStatus— new, updated, or removed since last timechangedFields— exactly which fields moved
New / updated / removed reviews are written to a dedicated Changes dataset. Schedule the run and you get a running history of a brand's reputation instead of a one-off snapshot.
🖼️ The visual report
With htmlReport on (default), the run saves a shareable HTML report to the key-value store under report — TrustScore, sentiment split, rating distribution, top topics, complaints vs. praises, and a side-by-side brand comparison when you scrape several companies. The URL is printed in the log.
🚀 Running it
Feed it whatever you have. mode: "AUTO" figures out the flow; REVIEWS scrapes known companies; SEARCH discovers companies from a query first.
🎯 Triage the negatives on a brand — leads straight into issueSeverity sorting:
{"mode": "REVIEWS","companyDomains": ["www.amazon.com"],"stars": ["1", "2"],"maxReviewsPerCompany": 100,"enableDeltaMonitoring": true,"monitorKey": "amazon-negative-reviews"}
⚡ Quick multi-brand pull with the intelligence layer intact:
{"mode": "REVIEWS","companyDomains": ["trustpilot.com", "www.amazon.com", "www.apple.com"],"maxReviewsPerCompany": 50,"sort": "recency"}
🔎 Discover companies from a search term, then scrape them:
{"mode": "SEARCH","searchQueries": ["amazon", "shopify"],"scrapeReviews": true,"maxReviewsPerCompany": 25}
maxResultsis a global safety cap — for 10 companies × 50 reviews, set it to at least 500. Turn offscrapeReviewsfor a fast company-profiles-only run.
🎛️ Input at a glance
Provide at least one source: companyDomains, startUrls, businessUnitIds, or searchQueries.
| Input | Role |
|---|---|
mode | AUTO · REVIEWS · SEARCH |
companyDomains / startUrls / businessUnitIds / searchQueries | Where to start |
maxReviewsPerCompany · maxPagesPerCompany · maxResults | Volume + safety caps |
sort | recency (newest) or relevance |
stars · verified | Rating and verification filters |
scrapeReviews · includeCompanyProfile | Toggle review rows / attach profiles |
enableDeltaMonitoring · monitorKey | Change tracking across scheduled runs |
htmlReport · rawOutput | Visual report / keep raw fields |
maxConcurrency · maxRetries · proxyConfiguration | Request-only tuning |
🗂️ Where the data lands
- Reviews tab — every review with its sentiment, severity, verified and reply flags
- Review intelligence tab — sentiment, topics, risk signals, change status; sort here to triage
- Replies tab — reviews that got a company response
- Companies dataset — profiles + TrustScore + the per-company rollups
- Changes dataset — new / updated / removed reviews (when monitoring is on)
- Summary dataset — run counters (pages fetched/failed, duplicates, rates, runtime)
- Errors tab — anything skipped, with a reason and source URL, so your reviews never mix with blank rows
If this turned your review pile into something you could act on, a short ⭐ rating on the Apify Store is the best way to support it — it lifts the Actor in search and tells me which signals to sharpen next.
🏷️ Tags: trustpilot · trustpilot scraper · review intelligence · sentiment analysis · reputation monitoring · company reviews · risk signals · competitor analysis · customer feedback