Trustpilot Reviews Scraper | Batch & Filters avatar

Trustpilot Reviews Scraper | Batch & Filters

Pricing

from $1.49 / 1,000 review extracteds

Go to Apify Store
Trustpilot Reviews Scraper | Batch & Filters

Trustpilot Reviews Scraper | Batch & Filters

Extract Trustpilot reviews at scale. Supports multiple companies, star rating filters, date range, language filtering. LLM-ready output.

Pricing

from $1.49 / 1,000 review extracteds

Rating

0.0

(0)

Developer

Enos Melo

Enos Melo

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

2 days ago

Last modified

Share

Extract Trustpilot business reviews at scale with advanced filtering capabilities. This Actor supports batch processing of multiple companies, star rating filters, date range filtering, language filtering, and produces LLM-ready output with markdown format.

What does Trustpilot Reviews Scraper do?

Trustpilot Reviews Scraper extracts authentic customer reviews from Trustpilot.com at scale. It retrieves detailed review data including ratings, reviewer information, company replies, and full review content. Unlike competitors, this Actor supports multiple companies per run, date range filtering, language filtering, and verified-only mode.

Key Features:

  • Batch scraping: scrape multiple businesses in a single run
  • Filter by star rating: 1-5 stars
  • Filter by date range: start date, end date, or lookback days
  • Filter by language: target specific languages
  • Verified reviews only: focus on confirmed purchases
  • Company replies: extract business responses
  • Sort by: Newest, Oldest, Lowest Rated, Highest Rated
  • LLM-ready output with markdown format
  • HTTP-based (CheerioCrawler): fast and cost-effective

Why use Trustpilot Reviews Scraper?

Business Use Cases:

  • Brand Monitoring: Track your company's reputation on Trustpilot
  • Competitor Analysis: Analyze competitor sentiment and common complaints
  • Customer Insights: Aggregate customer pain points and praise points
  • Sales Intelligence: Find companies with negative reviews to offer alternatives
  • Investment Research: Evaluate company reputation for due diligence

Advantages over competitors:

  • Cheaper pricing: $1.49 per 1K reviews vs $1.99 for similar actors
  • Batch processing: scrape multiple companies in one run
  • HTTP-based scraping: 1K reviews in ~2 minutes (no browser needed)
  • Rich filtering: star rating, date range, language, verified-only
  • Company reply extraction: see how businesses respond to reviews

How to use Trustpilot Reviews Scraper

Step 1: Get Trustpilot Business URLs

Navigate to any business review page on Trustpilot. You can use:

  • Full URL: https://www.trustpilot.com/review/nordvpn.com
  • Just the domain: nordvpn.com

Step 2: Configure Input

Set your desired parameters in the Actor input:

  • Business URLs: Add one or more business review URLs or domains
  • Max Results: Set maximum reviews per business (default: 100)
  • Sort Order: Choose how reviews are ordered
  • Filters: Apply star rating, date range, language, or verified-only filters

Step 3: Run and Collect Data

Execute the Actor and download results from the Dataset tab.

Input

FieldTypeDefaultDescription
businessUrlsarrayrequiredList of Trustpilot business URLs or domains
maxResultsinteger100Maximum reviews per business (1-100000)
sortOrderstring"created_at:desc"Sort: created_at:desc, created_at:asc, stars:desc, stars:asc
starRatingarray[]Filter by star rating: ["1","2","3","4","5"]
startDatestring-Filter reviews from this date (YYYY-MM-DD)
endDatestring-Filter reviews until this date (YYYY-MM-DD)
lookbackDaysinteger0Only return reviews from last N days (0 = no limit)
languagearray[]Filter by language codes: ["en", "es", "de"]
verifiedOnlybooleanfalseOnly include reviews from verified purchasers
repliesOnlybooleanfalseOnly include reviews that have a company reply
maxConcurrencyinteger10Maximum concurrent requests (1-50)

Input JSON Examples

Example 1: Scrape recent reviews only

{
"businessUrls": ["https://www.trustpilot.com/review/nordvpn.com"],
"maxResults": 50,
"lookbackDays": 30,
"sortOrder": "created_at:desc"
}

Example 2: Get negative reviews for analysis

{
"businessUrls": ["nordvpn.com"],
"maxResults": 100,
"starRating": ["1", "2"],
"sortOrder": "stars:asc"
}

Example 3: Batch scrape multiple companies

{
"businessUrls": ["nordvpn.com", "expressvpn.com", "surfshark.com"],
"maxResults": 200,
"verifiedOnly": true,
"sortOrder": "created_at:desc"
}

Output

Reviews are stored in the default dataset. Each review contains:

FieldTypeDescription
reviewIdstringUnique Trustpilot review identifier
businessNamestringBusiness name
businessUrlstringTrustpilot business review page URL
starRatingnumberRating (1-5)
datestringReview date (ISO 8601)
reviewerNamestringReviewer name
reviewerCountrystringReviewer country
reviewerLinkstringReviewer Trustpilot profile URL
titlestringReview title
contentstringFull review text
companyReplystringCompany reply text (null if no reply)
companyReplyDatestringCompany reply date (null if no reply)
verifiedbooleanWhether reviewer is verified
numberOfReviewsnumberTotal reviews by this reviewer
locationstringReviewer location
markdownContentstringFull review in markdown format
scrapedAtstringTimestamp when review was scraped

Output JSON Example

{
"reviewId": "69c3d3eb8ee1019dcabca2d1",
"businessName": "Nordvpn.Com",
"businessUrl": "https://www.trustpilot.com/review/nordvpn.com?page=1",
"starRating": 4,
"date": "2026-03-25T14:24:12.000Z",
"reviewerName": "Bru",
"reviewerCountry": "",
"reviewerLink": "https://www.trustpilot.com/users/69c3d3eb8ee1019dcabca2d1",
"title": "No title",
"content": "Although getting an AI bot as first line of response is annoying, the overall support is good. The time and attention provided was detailed and dedicated.",
"companyReply": null,
"companyReplyDate": null,
"verified": true,
"numberOfReviews": 1,
"location": "",
"markdownContent": "# Nordvpn.Com Review: No title\n\n**Rating:** 4/5 stars | **Date:** 2026-03-25T14:24:12.000Z\n**Reviewer:** Bru\n**Verified:** Yes\n**Total Reviews:** 1\n\n## Review\nAlthough getting an AI bot as first line of response is annoying, the overall support is good. The time and attention provided was detailed and dedicated.\n\n---\n_reviewId: 69c3d3eb8ee1019dcabca2d1 | business: Nordvpn.Com_",
"scrapedAt": "2026-04-04T16:54:17.064Z"
}

You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.

Data Table

FieldExample Value
reviewId69c3d3eb8ee1019dcabca2d1
businessNameNordvpn.Com
starRating4
date2026-03-25T14:24:12.000Z
reviewerNameBru
verifiedtrue
contentAlthough getting an AI bot as first line...
companyReplynull

Pricing

This Actor uses Apify's pay-per-result pricing. You only pay for the compute units actually used.

How much does it cost to scrape Trustpilot reviews?

  • 100 reviews: ~$0.15
  • 1,000 reviews: ~$1.49
  • 10,000 reviews: ~$14.90
  • 100,000 reviews: ~$149.00

Actor uses HTTP-based scraping (CheerioCrawler), which is significantly cheaper than browser-based alternatives.

Tips & Advanced Options

Optimize Your Runs

  1. Use lookbackDays: Set to 30 or 90 days to reduce unnecessary scraping and costs
  2. Apply filters early: Use starRating and verifiedOnly to get only relevant data
  3. Batch wisely: Scrape multiple companies in one run to save on actor startup costs
  4. Adjust concurrency: Raise maxConcurrency (up to 50) for faster scraping

Troubleshooting

  • No reviews returned: Check that URLs are correct Trustpilot review pages
  • Incomplete data: Some reviews may have limited fields - this is per Trustpilot's display settings
  • Rate limiting: Lower concurrency if you encounter blocks

Accessing Business Info

The Actor saves business information (trust score, total reviews) to the Key-Value Store under key business-info-{domain}. Access it via:

const info = await Actor.getValue('business-info-nordvpn.com');

FAQ

Web scraping Trustpilot reviews for personal, non-commercial analysis is generally acceptable. Review Trustpilot's Terms of Service before use. Do not resell or republish scraped content without permission.

Why don't I need a proxy?

This Actor uses HTTP-based scraping with CheerioCrawler, which is faster and less likely to be blocked than browser-based approaches. Proxies are optional for high-volume runs.

Can I scrape reviews from any Trustpilot business?

Yes, as long as the business has a public reviews page on Trustpilot.com.

How accurate is the lookbackDays filter?

The filter compares the review date against your cutoff. Reviews are filtered after each page is scraped, so some extra requests may be made before stopping.

What's the maximum reviews I can scrape?

The maxResults field supports up to 100,000 reviews per business URL. Larger datasets may require multiple runs.

Can I get reviews from multiple companies in one run?

Yes! Add multiple URLs or domains to the businessUrls array. Each company will be scraped up to your maxResults limit.

How do I verify reviewer authenticity?

The verified field indicates whether Trustpilot verified the reviewer's purchase.

API Integration

JavaScript / Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });
const input = {
businessUrls: ['https://www.trustpilot.com/review/nordvpn.com'],
maxResults: 100,
lookbackDays: 30,
};
const run = await client.actor('your-actor-id').call(input);
const dataset = await client.dataset(run.defaultDatasetId).listItems();
console.log(dataset.items);

Python

from apify_client import ApifyClient
client = ApifyClient('YOUR_API_TOKEN')
input = {
'businessUrls': ['https://www.trustpilot.com/review/nordvpn.com'],
'maxResults': 100,
'lookbackDays': 30,
}
call = client.actor('your-actor-id').call(input)
dataset = client.dataset(call['defaultDatasetId']).list_items()
print(dataset['items'])

cURL

curl -X POST https://api.apify.com/v2/acts/YOUR_ACTOR_ID/runs \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"businessUrls": ["https://www.trustpilot.com/review/nordvpn.com"],
"maxResults": 100,
"lookbackDays": 30
}'

Support

  • Report issues: Open a GitHub issue
  • Request features: Open a GitHub issue with your use case
  • Custom development: Contact for enterprise needs

Built with Apify SDK + Crawlee + Cheerio