Trustpilot Reviews Scraper | $0.40/1K + Sentiment avatar

Trustpilot Reviews Scraper | $0.40/1K + Sentiment

Pricing

from $0.40 / 1,000 results

Go to Apify Store
Trustpilot Reviews Scraper | $0.40/1K + Sentiment

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

Kelopr

Maintained by Community

Actor stats

0

Bookmarked

17

Total users

12

Monthly active users

4 days ago

Last modified

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.

RatingsentimentsentimentScore
5positive1.0
4positive0.5
3 (positive wording)mixed_positive0.25
3 (neutral)neutral0.0
3 (negative wording)mixed_negative-0.25
2negative-0.5
1negative-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:

SignalRaised when
low_ratingRating is 1–2
strong_negative_languageNegative rating and harsh wording ("scam", "worst", "never again"…)
trust_or_safety_issueA negative review that touches the trust_safety topic
unanswered_negative_reviewRating 1–2 with no company reply
unverified_reviewReview 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 issueSeverity descending 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 bodyreviewId · reviewUrl · rating · title · text · language · datePublished · dateExperienced · dateUpdated · isVerified · reviewSource · consumerName · consumerId · consumerCountry · consumerReviewCount · consumerImageUrl · reviewImageUrl · likes · reviewTags

💬 Company replieshasCompanyReply · 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 time
  • changedFields — 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
}

maxResults is a global safety cap — for 10 companies × 50 reviews, set it to at least 500. Turn off scrapeReviews for a fast company-profiles-only run.


🎛️ Input at a glance

Provide at least one source: companyDomains, startUrls, businessUnitIds, or searchQueries.

InputRole
modeAUTO · REVIEWS · SEARCH
companyDomains / startUrls / businessUnitIds / searchQueriesWhere to start
maxReviewsPerCompany · maxPagesPerCompany · maxResultsVolume + safety caps
sortrecency (newest) or relevance
stars · verifiedRating and verification filters
scrapeReviews · includeCompanyProfileToggle review rows / attach profiles
enableDeltaMonitoring · monitorKeyChange tracking across scheduled runs
htmlReport · rawOutputVisual report / keep raw fields
maxConcurrency · maxRetries · proxyConfigurationRequest-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