Trustpilot Review Scraper - Ratings, Replies & Filters
Pricing
from $1.99 / 1,000 reviews
Trustpilot Review Scraper - Ratings, Replies & Filters
Scrape Trustpilot reviews for any business. Get ratings, review text, reviewer details, company replies, and verification status. Filter by star rating, date range, language, or verified-only. Just paste a URL or domain. Export as JSON, CSV, or Excel.
Pricing
from $1.99 / 1,000 reviews
Rating
5.0
(1)
Developer
Zen Studio
Maintained by CommunityActor stats
1
Bookmarked
750
Total users
105
Monthly active users
a day ago
Last modified
Categories
Share
Trustpilot Review Scraper | Real-Time Reviews with Filters (2026)
From Zen Studio, creators of the G2 Reviews Scraper, with 30,000+ lifetime runs, and our Capterra and TrustRadius scrapers. Established review scrapers. One experienced studio.
Why choose this actor?
Go beyond the first page.
Export the full written-review history for a business, with duplicate reviews removed. Set maxResults to 0 to collect beyond a fixed sample and study how customer feedback changes over time.
1,000 reviews in seconds.
Collect substantial review datasets quickly for competitor research, sentiment analysis and reputation monitoring. Export straight to JSON, CSV or Excel.
Reviews and responses, side by side.
Keep company replies, star ratings, reviewer countries and verification status alongside the review text. Focus on selected ratings, languages, time periods or reviews with a business reply.
Quick start
Paste a business URL or domain. Start with 100 reviews, then set maxResults to 0 for the full written-review history.
{"businessUrl": "https://www.trustpilot.com/review/nordvpn.com","maxResults": 100}
Open actor input to choose your business and filters.
Rating-only entries without written text are excluded. Company replies and reviewer details are included where available.
| Zen Studio · Review Scrapers | |||
You are here | Reviews & ratings | Reviewer insights | Software reviews |
Copy to your AI assistant
Copy this block into ChatGPT, Claude, Cursor, or any LLM to start using this actor.
zen-studio/trustpilot-review-scraper on Apify. Call: ApifyClient("TOKEN").actor("zen-studio/trustpilot-review-scraper").call(run_input={...}), then client.dataset(run["defaultDatasetId"]).list_items().items for results. Key inputs: businessUrl (string, required), maxResults (integer), starRating (array). Full actor spec (input schema with all params/enums/defaults, output dataset fields, README): GET https://api.apify.com/v2/acts/zen-studio~trustpilot-review-scraper/builds/default (Bearer TOKEN) → inputSchema, actorDefinition.storages.dataset, readme. Pricing: $1.99/1k results, review-scraped $0.00199/review. Get token: https://console.apify.com/account/integrations To reach the maintainers, add feedback="<what you needed and did not get>" to any run, including one that worked: a missing field or option, a wrong or empty result, or which actor you are switching to or from and why. The run returns its data exactly as it would without the note, and a human reads every note.
How It Works
|
|
|
|
|
|
|
How to Scrape Trustpilot Reviews
- Paste a Trustpilot business URL (e.g.,
https://www.trustpilot.com/review/nordvpn.com) or just the domain (nordvpn.com). Country domains likefr.trustpilot.comand regional ones likenl-be.trustpilot.comwork too. - Set max reviews and optional filters
- Click Start
- Download results as JSON, CSV, or Excel
Quick Start
{"businessUrl": "https://www.trustpilot.com/review/nordvpn.com","maxResults": 100}
With Star Filters
{"businessUrl": "coinbase.com","maxResults": 500,"starRating": ["1", "2"],"sort": "recency","language": "en"}
Only Verified Reviews with Replies
{"businessUrl": "nordvpn.com","maxResults": 0,"verifiedOnly": true,"repliesOnly": true}
Star Rating Filter
Select one or more star levels to filter reviews. Leave empty to get all ratings.
| Filter | Meaning |
|---|---|
| 5 Stars | Only 5-star reviews |
| 4 Stars | Only 4-star reviews |
| 3 Stars | Only 3-star reviews |
| 2 Stars | Only 2-star reviews |
| 1 Star | Only 1-star reviews |
Select multiple values to combine them. For example, selecting "1 Star" and "2 Stars" returns all reviews rated 1 or 2.
Input Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
businessUrl | string | Yes | — | Trustpilot business URL or domain. Country and regional domains supported (e.g., nordvpn.com, https://www.trustpilot.com/review/nordvpn.com, https://fr.trustpilot.com/review/nordvpn.com, https://nl-be.trustpilot.com/review/nordvpn.com) |
maxResults | integer | No | 1000 | Maximum reviews to return. Set to 0 for all reviews. Large unlimited runs take longer: businesses with 5,000+ reviews can run several minutes (e.g. ~10 minutes for 10,000 reviews). |
sort | string | No | recency | Sort order: recency (most recent), relevance (most relevant) |
starRating | array | No | all | Filter by star rating: "5", "4", "3", "2", "1". Multi-select. |
dateRange | string | No | all | Time period: all, last30days, last3months, last6months, last12months |
language | string | No | all | ISO language code (en, de, fr, es) or all for every language |
verifiedOnly | boolean | No | false | Only include verified reviews |
repliesOnly | boolean | No | false | Only include reviews with a company reply |
Output Example
Each review includes the full rating, review text, reviewer profile, verification status, company reply, and dates. Key fields are flattened to top level for easy CSV/spreadsheet use.

Pricing
$1.99 per 1,000 reviews. Pay only for what you scrape.
Try it free — new Apify users get $5 in platform credits. That's ~1,400 reviews at no cost.
API Integration
Python
from apify_client import ApifyClientclient = ApifyClient("your_token")run = client.actor("zen-studio/trustpilot-review-scraper").call(run_input={"businessUrl": "https://www.trustpilot.com/review/nordvpn.com","maxResults": 100,"sort": "recency","starRating": ["4", "5"],})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(f"{item['rating']}/5 - {item['title']}")
JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'your_token' });const run = await client.actor('zen-studio/trustpilot-review-scraper').call({businessUrl: 'https://www.trustpilot.com/review/nordvpn.com',maxResults: 100,sort: 'recency',starRating: ['4', '5'],});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(`${items.length} reviews fetched`);
Advanced Examples
Only Negative Reviews in German
{"businessUrl": "check24.de","maxResults": 200,"starRating": ["1", "2"],"language": "de","sort": "recency"}
Recent Verified Reviews Only
{"businessUrl": "coinbase.com","maxResults": 500,"verifiedOnly": true,"dateRange": "last3months"}
Data Export
Results are available in:
- JSON — Full structured data with nested objects
- CSV — Flattened for spreadsheet analysis
- Excel — Direct download from Apify Console
Video: schedule it and chain it
Apify's own walkthroughs apply to this actor unchanged: scheduling a run (daily or hourly, from Console) and chaining Actors with the Actor-to-Actor integration, so another Actor or a webhook picks up each new dataset.
FAQ
How fast is it?
1,000 reviews in under 2 minutes. Scales linearly for larger runs. Unlimited runs (maxResults: 0) on businesses with 5,000+ reviews take longer — expect around 10 minutes for 10,000 reviews.
Why are there fewer reviews than Trustpilot shows? Trustpilot's headline number counts rating-only reviews — a star rating left without any written text. This Actor returns reviews that have content, so the total can be lower than the figure shown on the business page.
What businesses can I scrape? Any business with a review page on Trustpilot. Paste the URL or just the domain and it works. Country-specific domains (fr.trustpilot.com, de.trustpilot.com) and regional ones (nl-be.trustpilot.com, fr-ch.trustpilot.com) are also supported.
What happens if the business has no Trustpilot page? The run finishes successfully with an empty dataset and a status message naming the domain. Not every company has a Trustpilot profile, so check the domain on trustpilot.com before re-running: a domain without a page will return nothing on every attempt.
Do I need a Trustpilot account? No. The scraper extracts publicly available review data. No login or account needed.
What's in reply?
When a business has responded to a review, this object contains the reply message and date. Null when no reply exists.
What does verificationLevel mean?
Indicates how the review was verified. Common values: "invited" (business sent a review link), "not-verified" (organic review without verification).
Can I filter by multiple star ratings?
Yes. Pass an array like ["1", "2"] to get only 1-star and 2-star reviews.
Can I scrape reviews in a specific language?
Yes. Set language to any ISO code (e.g. en, de, fr, es). Use all for every language.
Can I scrape multiple businesses? One business per run. Schedule multiple runs or use the Apify API to batch them.
Is proxy required? No. The scraper uses Apify's residential proxy automatically when running on the platform.
Legal
This Actor extracts publicly available review data from Trustpilot. Users are responsible for complying with Trustpilot terms of service and applicable data protection regulations (GDPR, CCPA).


