Trustpilot Reviews Scraper – Ratings, Reviews & Replies avatar

Trustpilot Reviews Scraper – Ratings, Reviews & Replies

Pricing

from $1.75 / 1,000 results

Go to Apify Store
Trustpilot Reviews Scraper – Ratings, Reviews & Replies

Trustpilot Reviews Scraper – Ratings, Reviews & Replies

Scrape Trustpilot business reviews at scale: rating, title, text, date, reviewer, verification and the company's reply, plus business profile (TrustScore, review count, category, contact). Search by company name or scrape by domain. Export to JSON, CSV or Excel.

Pricing

from $1.75 / 1,000 results

Rating

0.0

(0)

Developer

Haketa

Haketa

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

8 days ago

Last modified

Security

Limited permissions

Share

Trustpilot Reviews Scraper — Ratings, Reviews, Replies & TrustScore ⭐

The fastest way to scrape Trustpilot reviews without login or coding. This Trustpilot scraper turns any company page on Trustpilot into clean, structured data: every review (rating, title, full text, dates, reviewer, verification source), the company's reply, and the full business profile (TrustScore, total reviews, categories, website and public contact details). Give it a domain, a company name to search, or a Trustpilot review URL — the Trustpilot reviews scraper solves the anti-bot challenge, paginates, de-duplicates, and hands you tidy rows.

Export your Trustpilot data to JSON, CSV, Excel, or API.

Built for brand & reputation teams, market researchers, competitive-intelligence analysts, VoC and CX teams, data scientists training sentiment models, agencies, and lead-generation teams who need Trustpilot reviews and TrustScore data at scale.


🔎 Why scrape Trustpilot?

Trustpilot is one of the largest open consumer-review platforms in the world, hosting hundreds of millions of reviews across millions of businesses. Each review is a rich, first-party signal: a star rating, free-text feedback, a verification source, a date of experience, and — crucially — the company's public reply. Aggregated, this is a goldmine for understanding how a brand (or its competitors) is really perceived.

Collecting this manually is painful. Trustpilot paginates reviews 20 at a time, sits behind an AWS WAF anti-bot challenge that blocks plain scripts and datacenter IPs, and buries the data you actually want inside a React __NEXT_DATA__ payload. Copy-pasting hundreds of reviews by hand is slow, error-prone, and impossible to keep fresh. This Trustpilot reviews scraper automates all of it — solving the challenge once, paginating, de-duplicating by review ID, and returning rows you can drop straight into a spreadsheet, a database, or an LLM.

Common reasons people scrape Trustpilot:

  • 🛡️ Reputation monitoring — track a brand's TrustScore, new reviews and replies over time.
  • 🔍 Competitor analysis — benchmark TrustScores and mine rival companies' reviews side by side.
  • 📊 Voice-of-Customer (VoC) & CX — surface recurring complaints, feature requests and praise.
  • 🤖 AI & sentiment analysis — feed clean review text into LLMs or sentiment pipelines.
  • 📣 Marketing & social proof — pull positive reviews for landing pages and campaigns.
  • 🧭 Vendor & product research — evaluate suppliers and services before buying.
  • 📈 Lead generation & market mapping — identify businesses by category, TrustScore and public contact details.

✨ What this Trustpilot scraper does

  • ✅ Three ways to target businesses — scrape by domain (www.booking.com), search by company name (the Actor resolves the matching Trustpilot business), or paste Trustpilot review URLs directly.
  • ✅ Automatic pagination — walks every available review page for each business and returns de-duplicated reviews, capped by your maxReviewsPerBusiness setting (0 = all available via the public pages).
  • ✅ Full review data — rating, title, text, likes, language, publishedDate, experiencedDate, updatedDate, verification flag and source, plus the reviewer's name, country and total review count.
  • ✅ Company replies — companyReply and companyReplyDate capture the business's response to each review whenever one exists.
  • ✅ Business profile on every row — businessName, businessDomain, trustScore, stars, totalReviews, reviewsLast12Months, categories, websiteUrl, countryCode, isClaimed, isClosed, and public businessEmail / businessPhone / businessAddress.
  • ✅ Bulk runs — scrape many businesses (and many search queries) in a single run for side-by-side comparison.
  • ✅ Multi-country — pick the proxy country (US, GB, DE, FR, NL, CA, AU) to reach the right Trustpilot locale.
  • ✅ Reliable anti-blocking — a stealth browser solves Trustpilot's AWS WAF challenge once, then fast HTTP requests reuse the token; a fresh challenge triggers an automatic re-solve with session rotation.
  • ✅ Export anywhere — JSON, CSV, Excel, HTML or the Apify API, with ready-made integrations for Google Sheets, Make and Zapier.

Everything above reflects exactly what the Actor does — no invented fields or modes.


🎯 Use cases

  • 🛡️ Brand & reputation managers — monitor TrustScore and new reviews, and audit how support replies to negative feedback.
  • 🔍 Competitive-intelligence analysts — compare TrustScores and review sentiment across a set of competitors in one run.
  • 📊 CX / Voice-of-Customer teams — quantify complaint themes and track satisfaction trends month over month.
  • 🤖 Data scientists & AI teams — build training/evaluation sets of labelled review text for sentiment and topic models.
  • 📣 Marketing & growth teams — collect positive reviews as social proof for ads and landing pages.
  • 🛒 E-commerce & product researchers — vet suppliers, marketplaces and services by rating before committing.
  • 🏢 Agencies & consultants — deliver reputation audits and competitor review reports to clients.
  • 📈 Lead-generation teams — build lists of businesses by category and TrustScore, enriched with public contact details.

📥 Input

Provide at least one of Business domains, Search by company name, or Trustpilot review URLs. Leave everything blank to run a small sample. All parameters are optional.

FieldTypeDescription
businessesarray of stringsCompany domains exactly as they appear on Trustpilot — e.g. www.booking.com, amazon.com. Their reviews are scraped.
searchQueriesarray of stringsCompany names to search on Trustpilot. Matching businesses are found automatically and their reviews scraped.
startUrlsarray of stringsTrustpilot review page URLs, e.g. https://www.trustpilot.com/review/www.booking.com.
maxReviewsPerBusinessintegerMax reviews to collect per business. Default 100. Set 0 to collect all reviews available on the public pages.
countrystring (enum)Residential proxy country used to reach Trustpilot: US, GB, DE, FR, NL, CA, AU. Default US.
proxyConfigurationobjectProxy settings. Trustpilot requires residential proxies; the default (Apify Residential) is recommended.

Example input

{
"businesses": ["www.booking.com", "amazon.com"],
"searchQueries": ["HelloFresh"],
"maxReviewsPerBusiness": 250,
"country": "US",
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"]
}
}

📤 Output

Each dataset row is a single review enriched with its parent business profile, so every record is self-contained and ready for analysis. The example below is a real row from a recent run (Booking.com):

{
"businessName": "Booking.com",
"businessDomain": "www.booking.com",
"trustScore": 1.4,
"stars": 1.5,
"totalReviews": 129724,
"reviewsLast12Months": 22092,
"categories": ["Hotel", "Travel Aggregator"],
"websiteUrl": "https://www.booking.com",
"countryCode": "NL",
"isClaimed": true,
"isClosed": false,
"businessEmail": "customer.service@booking.com",
"businessPhone": "+31 20 712 5600",
"businessAddress": "Herengracht 597, Amsterdam, NL",
"profileUrl": "https://www.trustpilot.com/review/www.booking.com",
"reviewId": "6ae7b651cb5f089891897403",
"rating": 1,
"title": "I paid for accommodation at The…",
"text": "I paid for accommodation at The Platinum Grand Horizon KLCC Suites … The property refused to refund me, and Booking.com offered me only €28.92 in travel credits instead of a full refund.",
"likes": 0,
"language": "en",
"publishedDate": "2026-11-01T23:59:45.000Z",
"experiencedDate": "2026-10-30T00:00:00.000Z",
"updatedDate": null,
"isVerified": false,
"verificationSource": "invitation",
"consumerName": "Consumer",
"consumerCountry": "MY",
"consumerReviewCount": 1,
"companyReply": null,
"companyReplyDate": null,
"reviewUrl": "https://www.trustpilot.com/reviews/6ae7b651cb5f089891897403",
"scrapedAt": "2026-11-02T00:31:14.624Z"
}

Field reference

FieldDescription
businessNameCompany display name on Trustpilot
businessDomainCompany domain (Trustpilot's identifying name)
trustScore / starsOverall TrustScore (0–5) and rounded star rating
totalReviewsTotal number of reviews for the business
reviewsLast12MonthsReviews received in the last 12 months
categoriesTrustpilot business categories (array)
websiteUrlCompany website
countryCodeBusiness country code
isClaimed / isClosedWhether the profile is claimed / the business is marked closed
businessEmail / businessPhone / businessAddressPublic contact details, when the business lists them
profileUrlTrustpilot profile URL
reviewIdTrustpilot review ID (used for de-duplication)
ratingReview rating (1–5)
title / textReview title and full body text
likesNumber of likes (useful votes) on the review
languageReview language code
publishedDate / experiencedDate / updatedDateWhen the review was posted, the date of experience, last update (if edited)
isVerified / verificationSourceVerification flag and its source (invitation, organic, …)
consumerName / consumerCountry / consumerReviewCountReviewer name, country code, and total reviews written
companyReply / companyReplyDateThe business's reply and its date, when one exists
reviewUrlDirect link to the individual review
scrapedAtISO 8601 timestamp of collection

Honest note on data-dependent fields. Core/identity fields — businessName, businessDomain, trustScore, rating, title, text, publishedDate, experiencedDate, reviewUrl, and the business profile — populate at ~100%. Some fields are present only when the data exists on Trustpilot:

  • companyReply / companyReplyDate appear only for reviews the business has answered. In a fresh run, a responsive brand like HelloFresh returned replies on 72% of reviews; a brand that ignores recent reviews (e.g. Booking.com) returned 0% — this reflects the live site, not a scraping gap.
  • isVerified / verificationSource depend on how each review was collected (HelloFresh: 90% verified; Booking.com: 0%, all invitation-sourced).
  • businessEmail / businessPhone appear only when the business publishes them (Booking.com does; Amazon does not).
  • updatedDate is set only when a reviewer edits their review (typically a small percentage).

🔁 Pagination & scale

Trustpilot serves reviews 20 per page. This Trustpilot scraper paginates automatically for every business: it reads the totalPages value from Trustpilot's own pagination metadata, then walks pages (?page=1, ?page=2, …) until it reaches the last page or hits your maxReviewsPerBusiness cap. Every review is de-duplicated by reviewId — a recent 2-business run returned 400 reviews with 0 duplicates.

One important ceiling to know: Trustpilot's public review pages expose roughly the most recent ~200 reviews per business (about 10 pages), even for companies with tens of thousands of reviews total. So maxReviewsPerBusiness: 0 collects everything that is publicly paginated — in practice up to ~200 of the newest reviews for a large business — not the entire lifetime archive, which Trustpilot does not serve on its public pages. To gather more, scrape multiple businesses (or re-run on a schedule to capture new reviews as they arrive and build your own growing archive).

Under the hood the scraper uses a hybrid strategy for speed and reliability. Trustpilot is protected by an AWS WAF proof-of-work challenge that blocks plain HTTP — even over residential IPs. So the Actor:

  1. Uses a stealth browser over a residential IP to solve the AWS WAF challenge once and obtain the aws-waf-token cookie.
  2. Fetches every subsequent page with fast, cheap pure-HTTP requests reusing that token over the same residential session — preferring Trustpilot's lightweight _next/data JSON endpoint and falling back to full-HTML __NEXT_DATA__ parsing.

One browser solve therefore covers many pages and many businesses (the fresh 2-business run solved the WAF in ~10 seconds and reused the token for both). If the token expires or the WAF re-challenges mid-run, the Actor automatically rotates the proxy session and re-solves (up to a few attempts) before continuing.


⚙️ How to use

  1. Open the Actor on Apify Console and click Try for free / Start.
  2. Add one or more Business domains, Search by company name, or paste Trustpilot review URLs.
  3. Set Max reviews per business (e.g. 100, or 0 for everything publicly available) and pick a proxy country.
  4. Click Save & Start.
  5. When the run finishes, open the Dataset tab and export to JSON, CSV, Excel or HTML — or pull results via the API.
  6. Automate it: schedule recurring runs for reputation monitoring, or integrate with Make, Zapier, Google Sheets or a webhook to push new reviews into your own stack.

💡 Tips

  • ✅ Use the exact domain as it appears on Trustpilot (www.booking.com, not booking.com) for a direct match — otherwise use Search by company name.
  • ✅ Scrape competitors together in one run to compare TrustScores and sentiment side by side (one WAF solve covers them all).
  • ✅ Cap maxReviewsPerBusiness to control run size and cost; set it to 0 to grab everything publicly available (~200 newest).
  • ✅ Schedule it to track rating, new reviews and reply behaviour over time — this is also the way to build an archive beyond the ~200-per-business public ceiling.
  • ✅ Match the country to the business's primary market (e.g. GB for a UK brand) for the most relevant locale.
  • ✅ Analyse rating + text + experiencedDate together to spot sentiment trends and recent spikes in complaints.

❓ FAQ

Is scraping Trustpilot legal? This Trustpilot scraper collects only publicly available review and business information for legitimate research, monitoring and analysis. Review content and trademarks remain the property of their owners and Trustpilot — respect copyright and terms of service, and ensure you have a lawful basis for processing any personal data (such as reviewer names) and honour opt-out requests. You are responsible for how you use the data.

How many reviews can I scrape, and how fast? You can collect up to the most recent ~200 reviews per business that Trustpilot exposes on its public pages; set Max reviews per business to 0 to grab them all. After the one-time WAF solve (~10 seconds), pages are fetched over fast HTTP — a recent 2-business run collected 400 reviews in under 3 minutes. Scrape many businesses in one run to scale horizontally.

Do I need proxies or a login? No login is required. Residential proxies are required to reach Trustpilot and are enabled by default (Apify Residential). You can plug in your own residential proxies via the proxy input if you prefer.

Why are residential proxies needed? Trustpilot is protected by an AWS WAF challenge that blocks datacenter traffic and plain scripts. A stealth browser on a residential IP solves the challenge once, after which lightweight HTTP requests reuse the token.

What export formats are supported? Results are stored in a standard Apify dataset and export to JSON, CSV, Excel and HTML, or you can pull them via the Apify API.

Is there a Trustpilot API I can call? Every run's dataset is available through the Apify API, and the Actor itself can be started via API or on a schedule — so you can treat this scraper as your own Trustpilot API for reviews and TrustScore data.

Can I search by company name instead of entering a domain? Yes. Add names under Search by company name and the Actor resolves each to the matching Trustpilot business, then scrapes its reviews.

Does it include the company's replies? Yes — companyReply and companyReplyDate capture the business's response whenever one exists. On a responsive brand that can be the majority of reviews; on a brand that ignores feedback it may be none.

How fresh is the data? Data is collected live at run time, so it reflects Trustpilot at the moment of the run (the sample above captured reviews posted the same day). Schedule the Actor to keep a continuously updated dataset.

Can I filter which businesses or how many reviews I get? Yes — target specific businesses via businesses, searchQueries or startUrls, limit volume with maxReviewsPerBusiness, and choose the locale with country.


Building a review-intelligence or lead-gen pipeline? Pair this Trustpilot scraper with other review and ratings Actors:


Ready to scrape Trustpilot? Hit ▶️ Start and export your first reviews in minutes. ⭐