Trustpilot Reviews Scraper avatar

Trustpilot Reviews Scraper

Pricing

$6.99/month + usage

Go to Apify Store
Trustpilot Reviews Scraper

Trustpilot Reviews Scraper

Trustpilot Reviews Scraper is a powerful tool that extracts customer reviews from any Trustpilot company page. Perfect for sentiment analysis, competitor research, brand monitoring, and market intelligence.

Pricing

$6.99/month + usage

Rating

0.0

(0)

Developer

Scrape Pilot

Scrape Pilot

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

Apify Actor LICENSE Node.js CI npm version PRs Welcome

A high‑performance Trustpilot scraper that extracts customer reviews from any company page on Trustpilot. Whether you need data for sentiment analysis, competitor research, brand monitoring, or market intelligence – this actor delivers clean, structured JSON output at scale.

👉 Focus keyword: Trustpilot scraper – built for reliability, speed, and ease of integration.


✨ Features

  • 🎯 Target any company – Provide a Trustpilot company slug (e.g., amazon.com) or full URL.
  • 📊 Rich review data – Extracts title, text, rating, date, reviewer name, country, verified status, helpful count, and company replies.
  • 🔄 Sorting options – Choose to scrape reviews sorted by most recent, highest rating, lowest rating, or most relevant.
  • 🌐 Proxy support – Built‑in Apify proxy with residential groups to avoid IP blocking.
  • 📈 Scalable – Set max_results from 1 to 10,000+ (respects Trustpilot pagination limits).
  • 🧹 Clean output – Consistent schema with null values where data is missing.
  • ⚡ Fast & efficient – Uses concurrency and request queuing to maximise throughput.
  • 🔌 Easy integration – Run on Apify platform or use as a Node.js module.

🚀 How It Works

  1. Provide input – Specify the company you want to scrape (by slug or URL) and optionally set sorting, result limits, and proxy.
  2. Scraping process – The actor navigates to the company’s Trustpilot review pages, extracts all available reviews, and handles pagination automatically.
  3. Proxy rotation – For large jobs, residential proxies ensure you stay under Trustpilot’s radar.
  4. Output – Returns a clean JSON array of reviews, each with the fields described below.

📥 Input Schema

The actor accepts the following input fields. All fields except company_slug are optional.

FieldTypeDefaultDescription
company_slugStringrequiredThe company identifier as it appears in the Trustpilot URL (e.g., amazon.com, microsoft.com, trustpilot.com).
company_urlString""Alternative: full Trustpilot URL (e.g., https://www.trustpilot.com/review/amazon.com). If provided, overrides company_slug.
max_resultsInteger100Maximum number of reviews to return (1–10,000).
sortString"recent"How to sort reviews: "recent" (most recent first), "highest" (highest rating), "lowest" (lowest rating), or "relevant" (Trustpilot’s default).
proxyConfigurationObject{ "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }Proxy settings. See Proxy Configuration for details.
include_readmeBooleanfalse(Internal) If true, includes a copy of this README in the output – not needed for normal use.

Example Input (JSON)

{
"company_slug": "amazon.com",
"max_results": 1000,
"sort": "recent",
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"]
}
}

📤 Output Format

The actor returns an array of review objects. Each object contains the following fields:

FieldTypeDescription
review_titleStringTitle or headline of the review (often truncated).
review_textStringFull text content of the review.
ratingStringRating out of 5 (e.g., "5", "1").
dateStringDate of the review in YYYY-MM-DD format.
reviewer_nameStringDisplay name of the reviewer.
reviewer_countryString or nullTwo‑letter country code (e.g., "US", "GB") if available.
verifiedBoolean or nulltrue if the reviewer is verified as a customer, false otherwise, null if unknown.
helpful_countIntegerNumber of users who found the review helpful.
replyString or nullCompany’s public reply to the review, if any.
company_slugStringThe company slug used for the request (e.g., "amazon.com").

Example Output (JSON)

[
{
"review_title": "The Creepy cost of Alexa/Google and no, its not cash.",
"review_text": "If you want to use multiple Spotify accounts on a smart speaker, be warned: it’s a data-mining trap...",
"rating": "1",
"date": "2026-03-14",
"reviewer_name": "Allen S.",
"reviewer_country": "US",
"verified": null,
"helpful_count": 0,
"reply": null,
"company_slug": "amazon.com"
},
{
"review_title": "I like this app",
"review_text": "I like this app; I like its on-time deliveries.",
"rating": "5",
"date": "2026-03-14",
"reviewer_name": "Narcisa Deleg",
"reviewer_country": "US",
"verified": null,
"helpful_count": 0,
"reply": null,
"company_slug": "amazon.com"
}
// ... up to max_results
]

🛠️ Usage

▶️ Run on Apify Console

  1. Go to Apify Console and open the Actor page for Trustpilot Reviews Scraper.
  2. Click "Run".
  3. Fill in the required fields (at least company_slug or company_url).
  4. Click "Start" and wait for results.

🔌 Run via Apify API (cURL)

curl -X POST "https://api.apify.com/v2/acts/your-username~trustpilot-reviews-scraper/runs?token=<YOUR_API_TOKEN>" \
-H "Content-Type: application/json" \
-d '{
"company_slug": "amazon.com",
"max_results": 50,
"sort": "recent"
}'

📦 Use as a Node.js Module

Install the package:

$npm install trustpilot-reviews-scraper

Then use it in your code:

const { scrapeTrustpilot } = require('trustpilot-reviews-scraper');
(async () => {
const reviews = await scrapeTrustpilot({
company_slug: 'amazon.com',
max_results: 20,
sort: 'highest'
});
console.log(reviews);
})();

🌐 Proxy Configuration

To avoid IP‑based blocking, especially for large scraping jobs, you can configure proxies. The actor integrates seamlessly with Apify Proxy.

PropertyTypeDescription
useApifyProxyBooleanIf true, enables Apify Proxy. Default: true.
apifyProxyGroupsArrayProxy groups: ["RESIDENTIAL"], ["DATACENTER"], or ["SHADER"]. Residential is recommended for Trustpilot.
proxyUrlsArrayCustom proxy URLs (e.g., ["http://user:pass@proxy.example.com:8080"]). Ignored if useApifyProxy is true.

Example with custom proxies:

{
"proxyConfiguration": {
"useApifyProxy": false,
"proxyUrls": ["http://user:pass@123.45.67.89:8080"]
}
}

❓ FAQ / Troubleshooting

Q: Which Trustpilot pages are supported?

A: The actor works with any standard company review page, e.g., https://www.trustpilot.com/review/amazon.com. It does not support scraping category pages or search results.

Q: Why are some fields null?

A: Trustpilot does not always provide all metadata for every review. For example, country and verification status may be missing; the actor sets them to null in such cases.

Q: Can I scrape more than 10,000 reviews?

A: Trustpilot limits the number of pages available (usually up to 100 pages of 20 reviews each = 2000). However, for companies with many reviews, you can use max_results up to 10,000; the actor will stop when no more pages are available.

Q: I'm getting blocked / timeouts.

A: Enable residential proxies (apifyProxyGroups: ["RESIDENTIAL"]) and reduce max_results to stay under rate limits. You can also add delays (not yet configurable, but planned).

Q: Can I scrape reviews in a specific language?

A: Not directly. Trustpilot reviews are in the language the reviewer wrote in. Use the sort option to get the most recent ones.