Trustpilot reviews scraper
Pricing
from $0.45 / 1,000 reviews
Trustpilot reviews scraper
Easily filter and extract thousands of reviews with data such as title, description, score, reviewer, country, company response, and much more from companies on Trustpilot.com and download them to multiple file formats.
Pricing
from $0.45 / 1,000 reviews
Rating
4.1
(12)
Developer
Scraper Labs
Maintained by CommunityActor stats
89
Bookmarked
3.1K
Total users
58
Monthly active users
1.6 days
Issues response
a day ago
Last modified
Categories
Share
Trustpilot Reviews Scraper: bypass the 200-review limit
While other scrapers often fail after 200 reviews (page 10), this actor is engineered to bypass those limits and scale with your needs.
37M+ reviews scraped · 650K+ runs · 98%+ success rate · 3,000+ users Not a new listing. This Actor has been maintained continuously for four years, and two thirds of everything it has ever scraped was collected in the last twelve months.
⚡ Why choose this Trustpilot scraper?
⭐ Proven at scale: Extracted 37M+ reviews across 650K+ runs, with a 98%+ success rate. Used by 3,000+ users and bookmarked by 89.
✅ Beyond the 200-review limit: Built to reliably extract large review histories beyond Trustpilot's standard pagination limit.
🛡️ Active Maintenance: Monitored for real-time error tracking. When Trustpilot changes, I update the scraper accordingly.
⚡ Smart Proxy Management: Supports both Datacenter and Residential proxies.
📊 Comprehensive Data: Extracts 20+ data points, including verified status, full company responses, and fields not available through the official Trustpilot API.
💰 Cost-Effective: A fraction of the cost of Trustpilot's Enterprise API.
🤖 AI-Ready: Structured JSON output perfect for sentiment analysis and LLM training.
💰 How much does the Trustpilot Reviews Scraper cost?
This Actor uses Pay Per Event pricing — you pay for the reviews you extract instead of paying a monthly rental fee.
| Apify plan | Price per 1,000 reviews |
|---|---|
| Free | $0.70 |
| Starter | $0.60 |
| Scale | $0.55 |
| Business | $0.45 |
Each run has a small $0.05 start fee. Apify platform usage is included in the price.
Example costs
Scraping 10,000 Trustpilot reviews costs approximately:
- Free: $7.00 + $0.05 run fee
- Starter: $6.00 + $0.05 run fee
- Scale: $5.50 + $0.05 run fee
- Business: $4.50 + $0.05 run fee
You are charged based on the number of reviews extracted, making the cost predictable whether you scrape a few hundred reviews or large datasets.
No Actor subscription required. Run it when you need it and pay based on the number of reviews collected.
🚀 What can you do with Trustpilot review data?
Use structured Trustpilot review data for monitoring, analysis, research, AI workflows, and your own applications.
- 💬 Display reviews on your website: Sync Trustpilot reviews on a schedule, store them in your own database, and display them in your application.
- 📉 Monitor negative reviews: Collect recent low-star reviews to identify recurring complaints and customer issues.
- 🏆 Competitor analysis: Compare ratings, customer feedback, verified reviews, and company responses across competitors.
- 🗣️ Brand monitoring: Track new reviews, sentiment, ratings, and customer feedback about your brand over time.
- 🧑💻 Response analysis: Analyze how quickly and how often companies respond to customer reviews.
- 📊 Market research: Collect reviews across companies to discover trends, customer expectations, and common pain points in an industry.
- 🤖 AI & sentiment analysis: Feed structured review data into LLMs, sentiment-analysis pipelines, or other machine-learning workflows.
- 👥 Customer research: Analyze reviewer countries, behavior, ratings, and feedback to better understand your audience.
- 📂 Company datasets: Collect TrustScore, review counts, categories, response metrics, and other company information across multiple businesses.
📊 What Trustpilot data can you extract?
Extract 20+ structured data points from Trustpilot reviews, reviewers, and company profiles.
| Reviews | Reviewers |
|---|---|
| ⭐ Rating (1–5 stars) | 👤 Reviewer name & ID |
| 📝 Title & full review text | 🌍 Reviewer country |
| 📅 Review & experience dates | ✅ Verified profile status |
| ✅ Verified review status | 📊 Number of reviews written |
| 🌐 Review language | |
| 💬 Full company response |
| Company data | Optional enrichment |
|---|---|
| 🏢 Company name & TrustScore | 👍 Review likes |
| 📊 Total review count | 📷 Review photos |
| ✅ Company verification status | 🔎 Review & verification source |
| 🗂️ Business category | ⏱️ Company reply dates |
| 💬 Response rate & average reply time | 🤖 AI-generated response detection |
Data is returned as structured datasets that can be exported as JSON, CSV, Excel, XML, HTML, or JSONL, or accessed directly through the Apify API.
Optional enrichment fields can be enabled when you need deeper reviewer, response, verification, or photo data.
📖 How to scrape Trustpilot reviews
Scrape public Trustpilot reviews by entering a company domain, choosing the data you need, and starting the Actor.
Quick start
- Click "Try for free" and open the Actor.
- Enter a company domain, such as
shopwagandtail.com— no Trustpilot URL is required. - Choose what to collect and optionally filter reviews by rating, language, country, date, or verified status.
- Click "Start". When the run finishes, preview the results or export them as JSON, CSV, Excel, XML, HTML, or JSONL.
That's it. The default settings collect both company information and reviews.
Example input
You can configure everything directly in the Actor's input form — no coding required.
The screenshot below shows an example configuration with filters applied:

For example, you can collect recent, verified 5-star reviews from US reviewers by selecting the corresponding filters.
JSON example
If you're using the API or prefer JSON input, the same configuration looks like this:
{"companyWebsite": "shopwagandtail.com","contentToExtract": "companyInformationAndReviews","startFromPageNumber": 1,"endAtPageNumber": 12,"sortBy": "recency","filterByCountryOfReviewers": "US","filterByDatePeriod": "last3months","filterByLanguage": "en","filterByStarRating": "5","filterByVerifiedReviews": true}
Most users only need to enter companyWebsite. The remaining settings are optional and can be selected directly in the Actor input form.
📄 Output examples
The Actor returns structured data that is ready for analysis, export, APIs, databases, and AI workflows.
Review data
A typical review looks like this:
{"companyName": "Wag + Tail","reviewId": "65fd6a055de8c560404349e1","reviewUrl": "https://www.trustpilot.com/reviews/65fd6a055de8c560404349e1","reviewTitle": "Great product looks so cute on my girl…","reviewDescription": "Great product looks so cute on my girl and fits so well","reviewRatingScore": 5,"reviewDate": "2024-03-22T13:22:45.000Z","reviewDateOfExperience": "2024-01-27T00:00:00.000Z","isReviewVerified": true,"reviewer": "Angela Rosalie","reviewersCountry": "US","reviewLanguage": "en","reviewCompanyResponse": ""}
Company data
Company information is stored separately:
{"company": "Wag + Tail","rating": "4.8","OfficialTotalReviewCount": 194,"isCompanyVerified": "yes","category": "Pet Store"}
These examples show the core fields only. Additional reviewer metadata, reply analysis, verification details, likes, photos, and company response metrics can be enabled through the optional enrichment settings.
See the Complete output field reference below for every available field.
⚙️ Input reference
Core settings
| Input | Description |
|---|---|
companyWebsite | Company domain, e.g. shopwagandtail.com. Multiple domains are supported with bulkCompanyInformation. |
contentToExtract | Choose companyInformationAndReviews (default), reviews, companyInformation, or bulkCompanyInformation. |
sortBy | Sort reviews by recency (default) or relevance. |
Review filters
| Input | Description |
|---|---|
filterByStarRating | Collect reviews with a specific rating from 1–5 stars. |
filterByDatePeriod | Filter reviews using Trustpilot's native date periods. |
filterByLanguage | Filter by language code, e.g. en, da, or es. |
filterByCountryOfReviewers | Filter by reviewer country using an ISO Alpha-2 code, e.g. US or DK. |
filterByVerifiedReviews | Set to true to collect only verified reviews. |
Filters are applied at the Trustpilot source rather than after extraction, helping you collect more of the reviews you actually need.
Pagination & proxies
| Input | Description |
|---|---|
startFromPageNumber | Page to start scraping from. Defaults to page 1. |
endAtPageNumber | Last page to scrape. Set to 0 to continue until the final available page or run timeout. |
proxies | Optional list of custom proxy URLs from your own proxy provider. |
apifyProxyCountry | Force Apify proxy requests through a specific country using a two-letter ISO code. |
Optional data enrichment
The following options are disabled by default and add extra data when enabled.
| Input | Adds |
|---|---|
includeReviewerMetadata | Reviewer review count and verified-profile status |
includeReplyAnalysis | Company reply published and updated dates |
includeExtendedMetadata | Review source, verification source, and likes |
includeCompanyResponseMetrics | Response rate, average reply time, AI-response detection, and related company metrics |
includeReviewPhotos | URLs of photos attached to reviews |
extractExperienceDate | Controls whether reviewDateOfExperience is included. Default: true |
Scrape multiple Trustpilot companies
There are two ways to collect data from multiple companies:
- Company statistics in bulk: Use
bulkCompanyInformationand provide multiple company domains to quickly collect company-level data such as TrustScore, review count, verification status, and category. - Reviews from multiple companies: Create an Apify Task for each company and run or schedule them independently.
Using separate Tasks is recommended when collecting reviews because each company can have its own filters, schedule, timeout, and proxy settings.
Learn more about Apify Tasks.
📂 Where to find your extracted data
When the run finishes, your results are automatically saved in Apify.
Quick preview
Open the Output tab on the run page to immediately preview the extracted reviews.
The Output tab uses the Actor's default dataset, which contains review data only.
Download and permanent storage
For long-term access, open Storage → Datasets.
Your data is stored like this:
| Data | Dataset | Purpose |
|---|---|---|
| Trustpilot reviews | Default dataset | Quick preview in the Output tab |
| Trustpilot reviews | reviews | Named dataset for exporting and integrations |
| Company information | companyInformation | Company-level data such as TrustScore, review count, verification status, and category |
The named reviews and companyInformation datasets can be downloaded directly from the Apify Console in formats such as JSON, CSV, Excel, HTML, RSS, XML and JSONL — no coding required.
Developers can also access both datasets through the Apify API.
Recommended: Use the named
reviewsandcompanyInformationdatasets for exports and integrations rather than relying on the default Output dataset since it expires the data after 7 days.
📚 Complete output field reference
The Actor stores data in two named datasets:
reviews— individual Trustpilot reviewscompanyInformation— company-level information and metrics
Reviews dataset
| Field | Description | Type |
|---|---|---|
companyName | Company name | String |
companyPageUrl | Trustpilot company page URL used for the run | String |
businessUnitId | Unique Trustpilot business ID | String |
reviewId | Unique review ID | String |
reviewUrl | Direct URL to the review | String |
reviewTitle | Review title | String |
reviewDescription | Full review text | String |
reviewRatingScore | Star rating from 1–5 | Integer |
reviewDate | Date and time the review was published | ISO Date |
reviewDateOfExperience | Date of the customer's experience | ISO Date |
reviewLabel | Trustpilot review label, e.g. verified | String |
isReviewVerified | Whether the review is verified | Boolean |
reviewer | Reviewer name | String |
reviewerId | Unique reviewer profile ID | String |
reviewersCountry | Reviewer country as ISO code | String |
reviewLanguage | Review language code, e.g. en | String |
reviewCompanyResponse | Company's response to the review | String |
scrapedDateTime | Date and time the review was extracted | ISO Date |
scrapedAtReviewPageNumber | Trustpilot page where the review was found | Integer |
Optional review fields
These fields are only included when the corresponding enrichment option is enabled.
| Field | Requires | Description | Type |
|---|---|---|---|
reviewerNumberOfReviews | includeReviewerMetadata | Number of reviews written by the reviewer | Integer |
reviewerProfileIsVerified | includeReviewerMetadata | Whether the reviewer profile is verified | Boolean |
companyReplyPublishedDate | includeReplyAnalysis | Date the company reply was first published | ISO Date |
companyReplyUpdatedDate | includeReplyAnalysis | Date the company reply was last updated | ISO Date |
reviewSource | includeExtendedMetadata | Source used to collect the review, e.g. InvitationApi | String |
reviewVerificationSource | includeExtendedMetadata | How the review was verified, e.g. invitation | String |
reviewLikes | includeExtendedMetadata | Number of likes received by the review | Integer |
reviewPhotoUrls | includeReviewPhotos | URLs of photos attached to the review | String[] |
Company information dataset
| Field | Description |
|---|---|
company | Official company name |
rating | Average TrustScore |
isCompanyVerified | Whether the company is verified by Trustpilot |
category | Primary business category |
OfficialTotalReviewCount | Total review count reported by Trustpilot |
replyAverageDaysToReply | Average time to reply to negative reviews when company response metrics are enabled |
replyPercentage | Percentage of negative reviews receiving a reply when company response metrics are enabled |
companyUsesAIResponses | Whether AI-generated responses are detected when company response metrics are enabled |
Company not found: If a domain does not exist on Trustpilot, the Actor saves a minimal record to the
companyInformationdataset withisCompanyFound: false. No review data is collected.
🔌 API access & integrations
Use the Trustpilot scraper manually, automate it on a schedule, or connect it to your existing tools and applications.
No-code automation
No programming is required.
You can:
- Schedule recurring runs directly in Apify
- Export results to Google Sheets
- Send notifications to Slack
- Connect workflows through Zapier or Make
- Trigger your own systems using webhooks
API & developer access
For automated applications and custom integrations, use:
- REST API: Start runs, check their status, and retrieve datasets from any programming language.
- JavaScript / TypeScript: Use the official
apify-clientnpm package. - Python: Use the official
apify-clientPyPI package. - AI agents & MCP: Call the Actor as a tool through the Apify MCP server.
Ready-made code examples are available directly in the Actor's API tab.
For large extractions, start runs asynchronously and retrieve the results afterward instead of waiting for a synchronous API response.
❓ Frequently asked questions
Can I scrape more than 200 reviews from one company?
Yes. Trustpilot's public website stops normal pagination at roughly 200 reviews, but this Actor is specifically designed to continue beyond that limit and collect the available review history.
Can I scrape competitors or companies I don't own?
Yes. The Actor works with public Trustpilot company pages and can be used for competitor research, market analysis, monitoring, and historical data collection.
Can I filter the reviews I collect?
Yes. You can filter by:
- Star rating
- Language
- Reviewer country
- Date period
- Verified reviews
Filtering is applied at the Trustpilot source rather than after extraction.
Do I need proxies?
Not necessarily for small runs.
For larger or repeated extractions, Datacenter or Residential proxies are recommended because Trustpilot may temporarily restrict IPs with high request activity.
Start with Datacenter proxies and switch to Residential proxies if you encounter blocking.
How long does a run take?
It depends mainly on the number of reviews being collected.
Small runs may finish in a few minutes, while companies with tens of thousands of reviews can take significantly longer.
The default Actor timeout is 3,600 seconds (1 hour) and can be increased for very large runs.
Why can the extracted review count differ from Trustpilot's displayed total?
Trustpilot's displayed review count can include reviews that are no longer publicly visible because of moderation, deletion, or other filtering.
The Actor collects the reviews that Trustpilot actually makes publicly available.
What happens if a company is not found?
The run finishes normally.
A record with isCompanyFound: false is saved to the companyInformation dataset, and no review data is collected.
Can I use the Actor to show reviews on my website?
Yes, but it should normally be used as a scheduled data sync, not called every time a visitor loads your webpage.
A common setup is:
- Run the Actor on a schedule.
- Store the resulting reviews in your own database.
- Display the cached data on your website.
- Update it automatically using Apify schedules, webhooks, or the API.
How does this compare with Trustpilot's official API?
This Actor is designed for collecting publicly available Trustpilot data across companies, including competitor and market research use cases.
It also exposes additional review, reviewer, verification, reply, and enrichment fields depending on the enabled settings.
How do I report a bug or request a feature?
Open an issue.
The Actor is actively maintained, and bug reports and feature requests are used to prioritize improvements.
🧑⚖️ Legal disclaimer
This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Trustpilot.
It is designed to collect publicly available data from Trustpilot. Users are responsible for ensuring that their use of the Actor and the collected data complies with applicable laws, regulations, privacy requirements, and Trustpilot's terms.
Do not use the Actor to collect or process data in ways that violate applicable law or the rights of third parties.