Trustpilot Reviews Scraper avatar

Trustpilot Reviews Scraper

Pricing

from $0.69 / 1,000 results

Go to Apify Store
Trustpilot Reviews Scraper

Trustpilot Reviews Scraper

Trustpilot Reviews Scraper extracts customer reviews, star ratings, company replies and Trustpilot data in bulk — scrape verified reviews from any company page for brand reputation, competitor research, online reputation and review analytics.

Pricing

from $0.69 / 1,000 results

Rating

0.0

(0)

Developer

Data Minds

Data Minds

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

16 hours ago

Last modified

Categories

Security

Limited permissions

Share

What is Trustpilot Reviews Scraper?

Trustpilot Reviews Scraper extracts customer reviews, star ratings, company replies and company details from Trustpilot business pages. Paste company URLs, domains or company names, set the filters you need, and get one clean dataset row per review. On the Gold plan, results cost $0.69 per 1,000 reviews, and the Free plan credit covers about 5,050 reviews.

Use this Trustpilot review scraper when you need review data without copy-pasting from the site:

  • Online reputation monitoring: collect the newest reviews of your brand on a schedule and keep a running record of what customers say, a simple way to schedule Trustpilot review scraping.
  • Trustpilot competitor review analysis: pull the reviews of several competitors in one run, compare ratings and praise, and find negative reviews of competitors.
  • Customer sentiment analysis: export review text and star ratings, or switch on the built-in review insights to get a rating breakdown, sentiment split and recurring complaint themes.
  • Market research: build review data for market research across a whole category of companies, filtered by language, country, date range or star rating.
  • Customer feedback analysis: turn thousands of reviews into a customer reviews dataset for AI analysis or your own dashboards.
  • Lead generation from reviews: add company contact details to every row and find businesses that receive low ratings or unanswered complaints.

Think of it as a Trustpilot review extractor and a Trustpilot review exporter in one: fill in a form, click Start, and download the results. It is a Trustpilot scraper with no code to write, and it also works as a Trustpilot reviews downloader when you need to download all Trustpilot reviews for a company.

Because it runs on Apify, you also get API access, scheduling, run monitoring, webhooks and integrations, and you can export the results as JSON, CSV, Excel, XML or HTML.

What can Trustpilot Reviews Scraper do?

  • 🔍 Scrape Trustpilot reviews in bulk for many companies per run, by Trustpilot URL, plain domain, the company's own website address or company name.
  • 🎯 Filter reviews by star rating, language, reviewer country, date range, verified status and reviews that received a company reply.
  • ⚖ Sample across ratings so a small review limit is not filled with only five-star reviews.
  • 🏢 Add company data to every row: profile, rating statistics, transparency data, flat company columns and optional contact details.
  • 🧠 Generate review insights per company, with an optional AI pain-point summary that uses your own AI provider key.
  • 📦 Export Trustpilot reviews to JSON, CSV, Excel, XML or HTML, or read them through the API.

What data can Trustpilot Reviews Scraper extract?

Each review becomes one dataset row. These are the fields you can use, named exactly as in the output.

FieldName in outputWhat it contains
⭐ RatingratingStar rating from 1 to 5
📝 Review texttitle, textReview headline and body
🔗 Review linkurl, reviewUrlPermalink of the review
🆔 Review IDid, reviewIdTrustpilot review identifier
📅 DatespublishedDate, updatedDate, experiencedDate, experienceDate, datesPublished, updated and experience dates in ISO format, plus a nested dates block with submittedDate
👤 ReviewerauthorName, reviewerName, authorId, authorImage, authorReviewCount, reviewerNumberOfReviews, consumerReviewer name, ID, avatar link, review count and a nested profile block
🌍 Reviewer countrycountry, reviewerCountryReviewer country code
✅ VerificationisVerified, verificationLevel, labelsVerified flag, level and nested verification labels
💬 Company replyreply, replyMessage, replyPublishedDate, replyUpdatedDateReply text and dates, when the company answered
👍 EngagementnumberOfLikes, likesLikes on the review
🌐 Language and sourcelanguage, sourceReview language and source label
📌 Review statusstatus, filtered, isPending, isLatestByConsumerOnBusinessUnit, isLatestByConsumerOnLocation, hasUnhandledReports, reportStatus flags and report information
📍 Location and extraslocation, productReviews, consumersReviewCountOnSameDomain, consumersReviewCountOnSameLocationLocation label, product reviews and reviewer counts for the same company
🏢 CompanybusinessName, companyName, companyDomain, businessUrl, companyUrl, businessUnitIdCompany name, domain, Trustpilot page and ID
🕒 Scrape timescrapedAtUTC timestamp of the run
🧾 Original review_rawThe full original review object

Optional blocks, added only when you switch on the matching input:

FieldName in outputWhat it contains
🏢 Company profilecompanyCompany ID, name, domain, website, country, review count, Trust Score, stars, categories, Trustpilot URL and contact info
🛡 Extra company flagscompany.subscription, company.consumerAlert, company.consumerAlerts, company.hasCollectedIncentivisedReviews, company.basiclinkRateClaimed status, subscription details and consumer alerts, with includeCompanyAdditionalFields
📈 Rating statisticsstatstotalReviews, trustScore, averageStars, ratingDistribution
🔍 TransparencytransparencycollectingMethodDistribution, starsBreakdownByMethod, monthlyData
📋 Flat company columnscompanyName, companyDomain, companyWebsite, companyTrustScore, companyStars, companyTotalReviews, companyCountryCode, companyUrl, companyCategoriesCompany values as top-level columns for CSV and Excel
📧 Contact enrichmentcontactEmail, contactWebsite, emailEnrichmentBest-effort company contact email, website and details such as emailsFound, method, pagesScanned, confidence
💳 Payment detectiontakesPayments, paymentProcessors, stripeLiveKey, paymentConfidenceWhether the company site appears to take online payments and with which processors

Note: Many fields can be null or empty, for example replyMessage when the company did not answer, location or productReviews when Trustpilot does not show them, and authorImage when the reviewer has no avatar.

What data can't Trustpilot Reviews Scraper extract?

  • Reviews that Trustpilot does not publish on the company page.
  • The full review history of a reviewer: a reviewer profile URL returns only the reviews shown on the first page of that profile.
  • Data from other review sites. For business listings and leads, see Other Trustpilot scrapers below.

How to scrape Trustpilot reviews

Trustpilot Reviews Scraper is designed for an easy start, even if you have never extracted web data before.

  1. Create a free Apify account with your email.
  2. Open Trustpilot Reviews Scraper in Apify Console.
  3. Add one or more company URLs, domains or company names in startUrls or searchTerms.
  4. Set maxItems and any filters such as filterStars, filterLanguages or filterDateRange.
  5. Click Start and wait for the run to finish.
  6. Open the Output tab and download your Trustpilot reviews in JSON, CSV, Excel, XML or HTML.

How much does it cost to scrape Trustpilot reviews?

Trustpilot Reviews Scraper uses pay-per-event pricing: you pay for each review saved to the dataset, plus a small start event for each run. Platform usage is billed in addition. The price per review depends on your Apify plan:

PlanPrice per reviewPrice per 1,000 reviews
Free$0.00099$0.99
Bronze$0.00089$0.89
Silver$0.00079$0.79
Gold$0.00069$0.69

The start event costs $0.00005 per GB of memory, with a minimum of one event. This Actor runs with 4096 MB (4 GB) by default, so each run is charged 4 start events, which is $0.0002.

Example: scraping 1,000 reviews on the Gold plan costs $0.69 for the reviews plus $0.0002 for the start, with platform usage billed in addition. The same run on the Free plan costs $0.99 for the reviews.

See the pricing tab for all events.

Is scraping Trustpilot reviews free?

You can start for free. The Apify Free plan includes $5 in monthly credit, which covers about 5,050 reviews at the Free price of $0.00099 per review, before platform usage. A spending limit that you set for a run stops it cleanly with the results saved so far.


Input

Only startUrls is required: add at least one Trustpilot company URL, domain or website address. Everything else is optional, and the defaults work for most runs. Set the input in the Actor form or send it as JSON through the API.

This example collects up to 40 reviews of one company:

{
"startUrls": [
"https://www.trustpilot.com/review/pipedrive.com"
],
"maxItems": 40
}

See the input schema for all fields and their descriptions.

FieldTypeRequiredDefaultDescription
startUrlsarrayYesnoneTrustpilot company URLs, plain domains, company website URLs or reviewer profile URLs, one per row
searchTermsarrayNo[]Company names to look up instead of, or in addition to, URLs
maxItemsintegerNo40Max reviews per input; 0 means no limit
sortBystringNoautoauto, relevancy or recent
filterStarsarrayNo[]Only these star ratings (1 to 5)
samplingstringNobalancedbalanced or proportional split across ratings
filterLanguagesarrayNo[]Language codes such as en, de, fr
filterDateRangestringNoallall, last30days, last3months, last6months, last12months
startDatestringNononeOnly reviews published on or after YYYY-MM-DD
lastDaysintegerNononeOnly reviews from the last N days (1 to 3650)
filterVerifiedOnlybooleanNofalseOnly verified reviews
filterRepliesOnlybooleanNofalseOnly reviews with a company reply
filterCountriesarrayNo[]Reviewer country codes such as US, GB, DE
scrapeAllReviewsbooleanNotrueCollect all languages; off restricts to the company's local language when no language filter is set
expandRegionalDomainsbooleanNotrueInclude the same brand's regional Trustpilot pages
strictNameMatchbooleanNofalseRequire a stronger match when looking up by name
includeCompanyDetailsbooleanNofalseAdd the company block to every row
includeCompanyAdditionalFieldsbooleanNofalseAdd extra company flags; needs includeCompanyDetails on
includeStatsbooleanNofalseAdd the stats block to every row
includeTransparencybooleanNofalseAdd the transparency block when published
flattenCompanyDatabooleanNofalseAdd flat company columns
splitDatasetsbooleanNofalseAlso save one roll-up record per company
emitInputStatusbooleanNotrueSave a record for every input with no results
reviewInsightsbooleanNofalseCreate a per-company insights summary
painPointAnalysisbooleanNofalseAI pain-point summary; needs aiProvider and aiApiKey
aiProviderstringNononeanthropic or openai
aiApiKeystring (secret)NononeYour own AI provider key, stored encrypted
aiModelstringNoprovider defaultOptional model name
enrichEmailsbooleanNofalseAdd a best-effort company contact email
qualifyByPaymentbooleanNofalseAdd payment detection; turn on together with enrichEmails
maxConcurrencyintegerNo10Inputs processed in parallel (1 to 50)
minConcurrencyintegerNo1Lowest parallelism when the run slows down
maxRequestRetriesintegerNo3Retries per request (1 to 10)
requestDelaynumberNo0Pause in seconds between page fetches for the same company
requestTimeoutnumberNo30Seconds to wait for one request
bypassProtectionbooleanNotrueReliability Mode; keep on so runs complete consistently
sessionRefreshSecondsintegerNo1200Advanced: how long the reliability setup is reused
verificationTimeoutSecsintegerNo45Advanced: time allowed for the reliability setup
verboseLoggingbooleanNotrueDetailed progress messages in the run log
proxyConfigurationobjectNo{"useApifyProxy": false}Optional network settings; the defaults work for most runs

Company URLs and names

startUrls accepts several formats, one per row. Reviewer profile URLs are also accepted.

  • ✅ Good: https://www.trustpilot.com/review/pipedrive.com
  • ✅ Good: pipedrive.com
  • ✅ Good: https://www.pipedrive.com (the company's own website)
  • ❌ Bad: Pipedrive reviews in startUrls; put company names in searchTerms instead.

Warning: Name lookups accept the closest search result unless strictNameMatch is on. For generic company names, turn it on or use the exact domain.

Max reviews and sampling

maxItems limits the reviews collected for each input, shared across a company and its regional pages when expandRegionalDomains is on. sampling only applies when maxItems limits the result and no filterStars is set.

  • ✅ Good: maxItems: 200 with sampling: balanced for a mix of one to five stars.
  • ❌ Bad: maxItems: 0 on a company with tens of thousands of reviews for a first test run.

Warning: maxItems set to 0 collects every matching review, so the cost can grow quickly. Start with a small number and set a spending limit on the run.

Date filters

filterDateRange is a rolling window. startDate and lastDays are hard cutoffs; if both are set, the more recent cutoff wins.

  • ✅ Good: "startDate": "2026-01-01"
  • ❌ Bad: "startDate": "01/01/2026" (use YYYY-MM-DD)

AI analysis and enrichment

painPointAnalysis uses your own AI provider account, so those costs are not billed by Apify. qualifyByPayment only adds data together with enrichEmails.

  • ✅ Good: painPointAnalysis on, aiProvider set, aiApiKey filled in.
  • ❌ Bad: painPointAnalysis on with no aiApiKey; the analysis is skipped.

Output

Results appear in the Output and Storage tabs of the run. View them as a table or JSON, pick the fields you need, and download them in JSON, CSV, Excel, XML or HTML. The dataset has three views: Reviews Overview, Full Review Data and Company and Enrichment.

Each review is saved as soon as it is collected, so you can open partial results while the run is still going.

JSON example

Results for the input example above:

[
{
"id": "6650a1b2c3d4e5f6a7b8c9d0",
"reviewId": "6650a1b2c3d4e5f6a7b8c9d0",
"title": "Easy to set up",
"text": "Example review text about the product and support.",
"rating": 5,
"language": "en",
"source": "Organic",
"isVerified": true,
"verificationLevel": "verified",
"status": null,
"numberOfLikes": 0,
"likes": 0,
"filtered": false,
"isPending": false,
"dates": {
"publishedDate": "2026-10-01T09:30:00.000Z",
"updatedDate": null,
"experiencedDate": "2026-09-28T00:00:00.000Z",
"submittedDate": null
},
"publishedDate": "2026-10-01T09:30:00.000Z",
"updatedDate": null,
"experiencedDate": "2026-09-28T00:00:00.000Z",
"experienceDate": "2026-09-28T00:00:00.000Z",
"authorName": "Example Reviewer",
"authorId": "5f0000000000000000000001",
"authorImage": "https://example.com/avatar.png",
"authorReviewCount": 3,
"country": "US",
"reply": {
"message": "Thank you for your feedback.",
"publishedDate": "2026-10-02T08:00:00.000Z",
"updatedDate": null
},
"replyMessage": "Thank you for your feedback.",
"replyPublishedDate": "2026-10-02T08:00:00.000Z",
"replyUpdatedDate": null,
"url": "https://example.com/reviews/6650a1b2c3d4e5f6a7b8c9d0",
"reviewUrl": "https://example.com/reviews/6650a1b2c3d4e5f6a7b8c9d0",
"businessUrl": "https://www.trustpilot.com/review/pipedrive.com",
"companyUrl": "https://www.trustpilot.com/review/pipedrive.com",
"businessName": "Pipedrive",
"companyName": "Pipedrive",
"companyDomain": "pipedrive.com",
"businessUnitId": "5f0000000000000000000002",
"scrapedAt": "2026-10-26T12:00:00.000Z"
}
]

The example is shortened: real rows also contain labels, consumer, reviewerName, reviewerCountry, reviewerNumberOfReviews, report, hasUnhandledReports, productReviews, location, the two consumersReviewCountOn... counts and _raw.

Company records and run files

Besides the dataset, the run saves these records to the key-value store, each only when the matching option applies:

  • OUTPUT: run summary with inputsQueued, inputsProcessed, reviewsCollected, reviewsSaved, companiesWithNoReviews, sortBy, chargeLimitReached and finishedAt.
  • OUTPUT_BUSINESS_UNITS: one company roll-up (profile and stats) per company, with splitDatasets.
  • OUTPUT_INSIGHTS: per-company insights, with reviewInsights or painPointAnalysis. Rows hold ratingBreakdown, sentimentSplit, complaintThemes, topNegativeTerms and totalReviewsAnalyzed; AI rows hold complaintThemes, missingFeatures, quickWins, overallSentiment, summary and reviewsAnalyzed.
  • OUTPUT_INPUT_STATUS: one record with input, reason, detail and timestamp for every input that returned no reviews, with emitInputStatus.

Notes and limitations

  • Rows are saved one by one, and each saved review is one charged result.
  • A reviewer profile URL returns only the reviews shown on the first page of that profile.
  • If paging stops early for a company, the run keeps what it already collected and continues with the next input.
  • The number of reviews you can get depends on how many matching reviews the company has and on your filters.

Tips and advanced usage

How many reviews can you scrape with Trustpilot Reviews Scraper?

The Actor pages through a company's reviews until maxItems, your filters or the end of the reviews is reached. The exact number depends on how many reviews the company has and which filters you set. The best way to know for your case is a quick test run with a small maxItems.

What can you do with the data?

  • Use verified Trustpilot reviews only with filterVerifiedOnly when you need trustworthy feedback.
  • Pull Trustpilot reviews by date range with filterDateRange, startDate or lastDays for Trustpilot review monitoring over time.
  • Keep the Trustpilot star rating data in rating and stats to chart changes after a product launch.
  • Collect Trustpilot reviews by language with filterLanguages before you send them to your team or to an AI model.
  • Use the Actor as a Trustpilot reviews data extractor behind your own Trustpilot review scraping API workflow, with runs started from code.

How to get faster or cheaper results

  • Keep maxItems small while testing, and set a spending limit on the run.
  • Use filterStars, filterLanguages, filterDateRange or lastDays so you only pay for the reviews you need.
  • Leave the optional blocks off (includeCompanyDetails, includeStats, includeTransparency) unless you use them.
  • Use flattenCompanyData when you plan to open the results in Excel or Google Sheets.
  • For many companies in one run, raise maxConcurrency; lower it if you see many retries in the log.

Integrations and API

Can I use Trustpilot Reviews Scraper as an API?

Yes. The Apify API gives you programmatic access to Trustpilot Reviews Scraper: start runs, schedule them and fetch results. Use the apify-client package for Node.js or Python. The API tab has ready-to-use code for the Trustpilot reviews API.

How to scrape Trustpilot reviews with Python

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("data_minds/trustpilot-reviews-scraper").call(run_input={
"startUrls": ["https://www.trustpilot.com/review/pipedrive.com"],
"maxItems": 40,
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["rating"], item["title"])

Can I integrate Trustpilot Reviews Scraper with other apps?

Yes. Connect it with Make, Zapier, Google Sheets, Slack and other tools through Apify integrations, or use webhooks to trigger an action when a run finishes. Combine a schedule with a webhook to send new Trustpilot reviews to a spreadsheet or chat channel.

Can I use Trustpilot Reviews Scraper with AI agents (MCP)?

Yes. Apify Actors can be used by AI assistants through the Apify MCP server. Open the MCP tab for setup steps.


Other Trustpilot scrapers

Turn review data into outreach and research with these Actors from the same team:

ActorWhat it does
🔗 eBay Sold Listings ScraperScrape eBay sold listings: real sold prices, sale age, seller rating, condition and shipping.
🔗 Whop Marketplace Data ScraperTurn any Whop.com search, category, or listing link into clean marketplace data — pricing, plans, company profiles, growth metrics, affiliate...
📧 Website Lead IntelligenceTurns company websites into send-ready B2B leads, with the right person and verified emails
🔗 Facebook Review ScraperScrape reviews from public Facebook pages: reviewer, recommend or not, text, tags, photos, reactions, comments and owner replies.
🔗 Trustpilot All Reviews ScraperScrape Trustpilot reviews and company insights: rating, text, reviewer, company reply, topics, plus trust score, rating split, trend and competitors.

FAQ

Scraping publicly available data is generally legal, but you should respect personal data rules such as GDPR, copyright and Trustpilot's terms of service. Reviewer names are personal data, so only collect what you need for a legitimate purpose. This is not legal advice. Read more in Is web scraping legal?

How does Trustpilot Reviews Scraper work?

You give it company URLs, domains or names, plus optional filters. It finds the matching Trustpilot company pages, collects the public reviews that fit your filters up to your limit, and saves each review to the dataset as it goes. You pay per saved review, and you can download the results when the run ends.

Why scrape Trustpilot reviews for sentiment analysis?

Reviews contain honest customer feedback in the customers' own words. With ratings, dates, languages and company replies in one table, you can track sentiment over time, compare competitors and spot recurring complaints. The built-in review insights give you a rating breakdown, sentiment split and common complaint themes without extra tools.

Why am I getting fewer reviews than expected?

Check four things: the company may have fewer matching reviews than you expect, your filters may be too narrow, maxItems defaults to 40, and a spending limit may have stopped the run. Open the Output tab and the input status record to see inputs that returned no reviews, then widen your filters and run again.

How do I export Trustpilot reviews to Excel or CSV?

Run the Actor, open the Output or Storage tab, and choose Excel or CSV in the export options. You can select only the fields you need first. For spreadsheet-friendly columns, switch on flattenCompanyData so company name, domain and Trust Score appear as top-level columns next to each review.

Can I scrape reviews from many companies at once?

Yes. Add as many company URLs, domains or names as you need to startUrls and searchTerms. Each input is handled separately with its own maxItems limit, and inputs run in parallel up to maxConcurrency. Rows carry the company name and domain, so you can filter the combined dataset afterwards.

Can I get only negative Trustpilot reviews?

Yes. Set filterStars to 1 and 2 to collect only low-rated reviews, and add filterRepliesOnly if you want to see how companies answered. This is a quick way to find complaints about a competitor. Combine it with lastDays to focus on recent problems.

What should I do if Trustpilot Reviews Scraper is not working?

First check the run log and your input: the URL or domain should point to a real Trustpilot company. If a run still fails or returns nothing, open an issue on the Issues tab with your run link and input. The data_minds team reads every report on that tab.


Support and feedback

Found a bug or have a feature request? Please create an issue on the Issues tab.

Need a custom solution or more data? Contact us at hello.dataminds@gmail.com.

Built and maintained by the data_minds team on Apify.

This Actor is an independent tool and is not affiliated with or endorsed by Trustpilot. You are responsible for using the collected data in line with applicable laws and the website's terms.