Trustpilot Reviews Scraper
Pricing
from $0.69 / 1,000 results
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
16 hours ago
Last modified
Categories
Security
Limited permissionsShare
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.
| Field | Name in output | What it contains |
|---|---|---|
| ⭐ Rating | rating | Star rating from 1 to 5 |
| 📝 Review text | title, text | Review headline and body |
| 🔗 Review link | url, reviewUrl | Permalink of the review |
| 🆔 Review ID | id, reviewId | Trustpilot review identifier |
| 📅 Dates | publishedDate, updatedDate, experiencedDate, experienceDate, dates | Published, updated and experience dates in ISO format, plus a nested dates block with submittedDate |
| 👤 Reviewer | authorName, reviewerName, authorId, authorImage, authorReviewCount, reviewerNumberOfReviews, consumer | Reviewer name, ID, avatar link, review count and a nested profile block |
| 🌍 Reviewer country | country, reviewerCountry | Reviewer country code |
| ✅ Verification | isVerified, verificationLevel, labels | Verified flag, level and nested verification labels |
| 💬 Company reply | reply, replyMessage, replyPublishedDate, replyUpdatedDate | Reply text and dates, when the company answered |
| 👍 Engagement | numberOfLikes, likes | Likes on the review |
| 🌐 Language and source | language, source | Review language and source label |
| 📌 Review status | status, filtered, isPending, isLatestByConsumerOnBusinessUnit, isLatestByConsumerOnLocation, hasUnhandledReports, report | Status flags and report information |
| 📍 Location and extras | location, productReviews, consumersReviewCountOnSameDomain, consumersReviewCountOnSameLocation | Location label, product reviews and reviewer counts for the same company |
| 🏢 Company | businessName, companyName, companyDomain, businessUrl, companyUrl, businessUnitId | Company name, domain, Trustpilot page and ID |
| 🕒 Scrape time | scrapedAt | UTC timestamp of the run |
| 🧾 Original review | _raw | The full original review object |
Optional blocks, added only when you switch on the matching input:
| Field | Name in output | What it contains |
|---|---|---|
| 🏢 Company profile | company | Company ID, name, domain, website, country, review count, Trust Score, stars, categories, Trustpilot URL and contact info |
| 🛡 Extra company flags | company.subscription, company.consumerAlert, company.consumerAlerts, company.hasCollectedIncentivisedReviews, company.basiclinkRate | Claimed status, subscription details and consumer alerts, with includeCompanyAdditionalFields |
| 📈 Rating statistics | stats | totalReviews, trustScore, averageStars, ratingDistribution |
| 🔍 Transparency | transparency | collectingMethodDistribution, starsBreakdownByMethod, monthlyData |
| 📋 Flat company columns | companyName, companyDomain, companyWebsite, companyTrustScore, companyStars, companyTotalReviews, companyCountryCode, companyUrl, companyCategories | Company values as top-level columns for CSV and Excel |
| 📧 Contact enrichment | contactEmail, contactWebsite, emailEnrichment | Best-effort company contact email, website and details such as emailsFound, method, pagesScanned, confidence |
| 💳 Payment detection | takesPayments, paymentProcessors, stripeLiveKey, paymentConfidence | Whether the company site appears to take online payments and with which processors |
Note: Many fields can be
nullor empty, for examplereplyMessagewhen the company did not answer,locationorproductReviewswhen Trustpilot does not show them, andauthorImagewhen 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.
- Create a free Apify account with your email.
- Open Trustpilot Reviews Scraper in Apify Console.
- Add one or more company URLs, domains or company names in
startUrlsorsearchTerms. - Set
maxItemsand any filters such asfilterStars,filterLanguagesorfilterDateRange. - Click Start and wait for the run to finish.
- 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:
| Plan | Price per review | Price 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.
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
startUrls | array | Yes | none | Trustpilot company URLs, plain domains, company website URLs or reviewer profile URLs, one per row |
searchTerms | array | No | [] | Company names to look up instead of, or in addition to, URLs |
maxItems | integer | No | 40 | Max reviews per input; 0 means no limit |
sortBy | string | No | auto | auto, relevancy or recent |
filterStars | array | No | [] | Only these star ratings (1 to 5) |
sampling | string | No | balanced | balanced or proportional split across ratings |
filterLanguages | array | No | [] | Language codes such as en, de, fr |
filterDateRange | string | No | all | all, last30days, last3months, last6months, last12months |
startDate | string | No | none | Only reviews published on or after YYYY-MM-DD |
lastDays | integer | No | none | Only reviews from the last N days (1 to 3650) |
filterVerifiedOnly | boolean | No | false | Only verified reviews |
filterRepliesOnly | boolean | No | false | Only reviews with a company reply |
filterCountries | array | No | [] | Reviewer country codes such as US, GB, DE |
scrapeAllReviews | boolean | No | true | Collect all languages; off restricts to the company's local language when no language filter is set |
expandRegionalDomains | boolean | No | true | Include the same brand's regional Trustpilot pages |
strictNameMatch | boolean | No | false | Require a stronger match when looking up by name |
includeCompanyDetails | boolean | No | false | Add the company block to every row |
includeCompanyAdditionalFields | boolean | No | false | Add extra company flags; needs includeCompanyDetails on |
includeStats | boolean | No | false | Add the stats block to every row |
includeTransparency | boolean | No | false | Add the transparency block when published |
flattenCompanyData | boolean | No | false | Add flat company columns |
splitDatasets | boolean | No | false | Also save one roll-up record per company |
emitInputStatus | boolean | No | true | Save a record for every input with no results |
reviewInsights | boolean | No | false | Create a per-company insights summary |
painPointAnalysis | boolean | No | false | AI pain-point summary; needs aiProvider and aiApiKey |
aiProvider | string | No | none | anthropic or openai |
aiApiKey | string (secret) | No | none | Your own AI provider key, stored encrypted |
aiModel | string | No | provider default | Optional model name |
enrichEmails | boolean | No | false | Add a best-effort company contact email |
qualifyByPayment | boolean | No | false | Add payment detection; turn on together with enrichEmails |
maxConcurrency | integer | No | 10 | Inputs processed in parallel (1 to 50) |
minConcurrency | integer | No | 1 | Lowest parallelism when the run slows down |
maxRequestRetries | integer | No | 3 | Retries per request (1 to 10) |
requestDelay | number | No | 0 | Pause in seconds between page fetches for the same company |
requestTimeout | number | No | 30 | Seconds to wait for one request |
bypassProtection | boolean | No | true | Reliability Mode; keep on so runs complete consistently |
sessionRefreshSeconds | integer | No | 1200 | Advanced: how long the reliability setup is reused |
verificationTimeoutSecs | integer | No | 45 | Advanced: time allowed for the reliability setup |
verboseLogging | boolean | No | true | Detailed progress messages in the run log |
proxyConfiguration | object | No | {"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 reviewsinstartUrls; put company names insearchTermsinstead.
Warning: Name lookups accept the closest search result unless
strictNameMatchis 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: 200withsampling: balancedfor a mix of one to five stars. - ❌ Bad:
maxItems: 0on a company with tens of thousands of reviews for a first test run.
Warning:
maxItemsset to0collects 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"(useYYYY-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:
painPointAnalysison,aiProviderset,aiApiKeyfilled in. - ❌ Bad:
painPointAnalysison with noaiApiKey; 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 withinputsQueued,inputsProcessed,reviewsCollected,reviewsSaved,companiesWithNoReviews,sortBy,chargeLimitReachedandfinishedAt.OUTPUT_BUSINESS_UNITS: one company roll-up (profile and stats) per company, withsplitDatasets.OUTPUT_INSIGHTS: per-company insights, withreviewInsightsorpainPointAnalysis. Rows holdratingBreakdown,sentimentSplit,complaintThemes,topNegativeTermsandtotalReviewsAnalyzed; AI rows holdcomplaintThemes,missingFeatures,quickWins,overallSentiment,summaryandreviewsAnalyzed.OUTPUT_INPUT_STATUS: one record withinput,reason,detailandtimestampfor every input that returned no reviews, withemitInputStatus.
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
filterVerifiedOnlywhen you need trustworthy feedback. - Pull Trustpilot reviews by date range with
filterDateRange,startDateorlastDaysfor Trustpilot review monitoring over time. - Keep the Trustpilot star rating data in
ratingandstatsto chart changes after a product launch. - Collect Trustpilot reviews by language with
filterLanguagesbefore 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
maxItemssmall while testing, and set a spending limit on the run. - Use
filterStars,filterLanguages,filterDateRangeorlastDaysso you only pay for the reviews you need. - Leave the optional blocks off (
includeCompanyDetails,includeStats,includeTransparency) unless you use them. - Use
flattenCompanyDatawhen 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 ApifyClientclient = 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:
| Actor | What it does |
|---|---|
| 🔗 eBay Sold Listings Scraper | Scrape eBay sold listings: real sold prices, sale age, seller rating, condition and shipping. |
| 🔗 Whop Marketplace Data Scraper | Turn any Whop.com search, category, or listing link into clean marketplace data — pricing, plans, company profiles, growth metrics, affiliate... |
| 📧 Website Lead Intelligence | Turns company websites into send-ready B2B leads, with the right person and verified emails |
| 🔗 Facebook Review Scraper | Scrape reviews from public Facebook pages: reviewer, recommend or not, text, tags, photos, reactions, comments and owner replies. |
| 🔗 Trustpilot All Reviews Scraper | Scrape Trustpilot reviews and company insights: rating, text, reviewer, company reply, topics, plus trust score, rating split, trend and competitors. |
FAQ
Is it legal to scrape Trustpilot reviews?
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.