# Trustpilot Scraper (`happitap/trustpilot-scraper`) Actor

Trustpilot Reviews Scraper  extracts customer reviews from any company's Trustpilot page. Simply provide the Trustpilot review page URL, and the Actor will automatically scrape all reviews with ratings, author information, dates, and review content.

- **URL**: https://apify.com/happitap/trustpilot-scraper.md
- **Developed by:** [HappiTap](https://apify.com/happitap) (community)
- **Categories:** Developer tools, Automation, Other
- **Features:** Limited permissions
- **Stats:** 170 total users, 4 monthly users, 100.0% runs succeeded, 3 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Trustpilot Reviews Scraper

### What does Trustpilot Reviews Scraper do?

**Trustpilot Reviews Scraper** is an Apify Actor that extracts customer reviews from any company's Trustpilot page. Simply provide the Trustpilot review page URL, and the Actor will automatically scrape all reviews with ratings, author information, dates, and review content. The Actor handles pagination automatically, so you can extract hundreds or thousands of reviews from a single company page with minimal configuration.

This Actor serves as a **Trustpilot API alternative** for businesses and researchers who need to collect review data at scale without manual copying or complex web scraping setups. Whether you're conducting market research, monitoring brand reputation, analyzing competitor reviews, or building a review aggregation system, this tool makes it easy to extract structured review data from Trustpilot.

### Why use Trustpilot Reviews Scraper?

#### 🚀 Platform Advantages

When you use Trustpilot Reviews Scraper on the Apify platform, you get more than just a scraper:

- **Monitoring & Scheduling** - Set up automated runs to track reviews over time
- **API Access** - Integrate review data directly into your applications via REST API
- **Proxy Rotation** - Built-in proxy support to avoid rate limiting and IP blocks
- **Scalable Infrastructure** - Handle large-scale scraping without worrying about server resources
- **Data Export** - Download results in JSON, CSV, Excel, or HTML formats
- **Integrations** - Connect with Zapier, Make, and other automation tools
- **Reliable Execution** - Automatic retries and error handling for robust scraping

#### 💼 Business Use Cases

- **Brand Monitoring** - Track customer sentiment and reviews for your business
- **Competitor Analysis** - Compare your reviews with competitors' reviews
- **Market Research** - Analyze customer feedback trends across industries
- **Review Aggregation** - Build review comparison platforms or dashboards
- **Sentiment Analysis** - Feed review data into NLP models for sentiment analysis
- **Customer Insights** - Identify common pain points and positive feedback patterns

### What data can Trustpilot Reviews Scraper extract?

The Actor extracts comprehensive review data from Trustpilot company pages. Here's what you can get:

| Data Field | Description | Example |
|------------|-------------|---------|
| **Author Name** | Name of the reviewer | "John Smith" |
| **Rating** | Star rating (1-5) | 5 |
| **Review Title** | Title of the review | "Great service!" |
| **Review Text** | Full review content | "I had an excellent experience..." |
| **Date** | When the review was posted | "2024-12-26T13:03:53.000Z" |
| **Location** | Reviewer's location | "United States" |
| **Verified Purchase** | Whether review is from verified purchase | true/false |
| **Company Name** | Name of the reviewed company | "Amazon" |
| **Company URL** | Trustpilot page URL | "https://www.trustpilot.com/review/..." |
| **Total Reviews** | Total number of reviews for company | "42,661" |
| **Average Rating** | Company's average rating | "4.5" |
| **Review ID** | Unique review identifier | "abc123" |

### How to scrape Trustpilot reviews?

Scraping Trustpilot reviews with this Actor is straightforward and requires no coding knowledge:

1. **Get Started** - Click "Try for free" to create an Apify account (no credit card required)
2. **Add Trustpilot URL** - Enter the Trustpilot company review page URL you want to scrape (e.g., `https://www.trustpilot.com/review/www.amazon.com`)
3. **Configure Settings** (Optional):
   - Set maximum number of reviews to scrape
   - Limit the number of pages to process
   - Configure proxy settings if needed
4. **Run the Actor** - Click "Start" and wait for the Actor to collect all reviews
5. **Download Results** - Once finished, download your data in JSON, CSV, Excel, or HTML format

The Actor automatically handles pagination, so you don't need to manually navigate through pages. It will follow "Next page" links until it reaches your specified limits or runs out of pages.

#### Video Tutorial

\[Add YouTube video URL here if you create a tutorial]

### How much does it cost to scrape Trustpilot reviews?

Trustpilot Reviews Scraper uses Apify's **consumption-based pricing model**, which means you only pay for the Compute Units (CUs) you actually use. This makes it cost-effective for both small and large-scale scraping projects.

**Free Plan**: Get started with free CUs to test the Actor and scrape a few hundred reviews.

**Paid Plans**: Scale up based on your needs. On average, you can scrape approximately:

- **100-500 reviews** for a few CUs
- **1,000-5,000 reviews** for moderate CU usage
- **10,000+ reviews** for larger datasets

The exact cost depends on factors like:

- Number of reviews to scrape
- Number of pages processed
- Website response times
- Proxy usage

Since Trustpilot pages typically contain 20 reviews per page, scraping 1,000 reviews would require processing about 50 pages. The Actor is optimized for efficiency, using CheerioCrawler for fast HTML parsing without the overhead of a full browser.

For the most accurate pricing estimate, run the Actor with a small test (e.g., 100 reviews) and check the CU consumption in your Apify dashboard.

### Input

Trustpilot Reviews Scraper has simple input options. Click on the **Input** tab for more information and to see the input interface.

#### Required Input

- **Trustpilot Review Page URLs** - One or more URLs of Trustpilot company review pages to scrape
  - Format: `https://www.trustpilot.com/review/[company-domain]`
  - Example: `https://www.trustpilot.com/review/www.amazon.com`
  - You can add multiple company URLs to scrape reviews from different companies in a single run

#### Optional Input

- **Max Reviews** - Limit the total number of reviews to scrape (leave empty to scrape all available)
- **Max Pages per URL** - Limit how many pages to process per company (default: 10 pages)
- **Proxy Configuration** - Configure proxy settings (default: Apify Proxy enabled)

#### Input Example

```json
{
  "startUrls": [
    {
      "url": "https://www.trustpilot.com/review/www.amazon.com"
    }
  ],
  "maxReviews": 1000,
  "maxPages": 50
}
```

### Output

You can download the dataset extracted by Trustpilot Reviews Scraper in various formats such as **JSON, HTML, CSV, or Excel**.

#### Output Example

Each review in the dataset contains the following fields:

```json
{
  "authorName": "Tim Bartek",
  "rating": 5,
  "reviewTitle": "",
  "reviewText": "I have been an Amazon and Quicken user forever. I can't understand why the Amazon data download to Quicken can't provide a little more information...",
  "date": "2025-12-26T13:03:53.000Z",
  "location": "",
  "isVerified": false,
  "companyName": "Amazon Reviews 42,661",
  "companyUrl": "https://www.trustpilot.com/review/www.amazon.com",
  "totalReviews": "",
  "averageRating": "",
  "reviewId": "",
  "pageUrl": "https://www.trustpilot.com/review/www.amazon.com",
  "scrapedAt": "2025-12-31T13:29:32.343Z"
}
```

The dataset is structured as a flat JSON array, making it easy to import into databases, spreadsheets, or data analysis tools.

### Tips for Best Results

#### 🎯 Optimizing Performance

- **Use Max Reviews Limit** - Set a reasonable limit to avoid unnecessary CU consumption
- **Start Small** - Test with a small number of reviews first to verify the output format
- **Proxy Settings** - Keep Apify Proxy enabled (default) to avoid rate limiting
- **Multiple Companies** - You can scrape multiple companies in one run by adding multiple URLs

#### 🔧 Advanced Usage

- **API Integration** - Use the Apify API to trigger runs programmatically and fetch results
- **Scheduling** - Set up scheduled runs to monitor reviews over time
- **Webhooks** - Configure webhooks to get notified when scraping completes
- **Data Transformations** - Use Apify's data transformation features to filter or modify results

#### ⚡ Speed Optimization

The Actor uses CheerioCrawler for fast HTML parsing. For even faster results:

- Set appropriate `maxPages` limits
- Use `maxReviews` to stop early when you have enough data
- Process multiple companies in parallel by running multiple Actor instances

### Is it legal to scrape Trustpilot reviews?

Our scrapers are ethical and do not extract any private user data, such as email addresses, phone numbers, or personal contact information. They only extract what users have chosen to share publicly on Trustpilot review pages. We therefore believe that our scrapers, when used for ethical purposes by Apify users, are safe.

However, you should be aware that your results could contain personal data (such as reviewer names). Personal data is protected by the **GDPR** in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers.

You can also read our blog post on the [legality of web scraping](https://blog.apify.com/is-web-scraping-legal/).

**Important**: Always respect Trustpilot's Terms of Service and robots.txt. Use reasonable request rates and avoid overloading their servers. The Actor includes built-in delays and proxy rotation to be respectful of Trustpilot's infrastructure.

### FAQ

#### How many reviews can I scrape?

There's no hard limit on the number of reviews you can scrape. However, Trustpilot typically displays 20 reviews per page. If a company has thousands of reviews, you may need to process many pages. Use the `maxPages` setting to control how deep you want to go.

#### Can I scrape reviews from multiple companies?

Yes! Simply add multiple Trustpilot URLs to the `startUrls` array. The Actor will process each company's review page independently.

#### What if I get blocked by Trustpilot?

The Actor uses Apify Proxy by default, which helps avoid IP blocking. If you encounter issues:

- Ensure proxy configuration is enabled
- Reduce the number of concurrent requests
- Add delays between requests if needed

#### Can I use this as a Trustpilot API?

Yes! This Actor serves as an alternative to a Trustpilot API. You can trigger runs via the Apify API and retrieve results programmatically. Check the **API** tab for integration examples.

#### How accurate is the extracted data?

The Actor extracts data directly from Trustpilot's HTML structure. The accuracy depends on Trustpilot's page structure remaining consistent. If you notice missing or incorrect data, please report it in the **Issues** tab.

#### Can I filter reviews by rating or date?

The Actor extracts all reviews as they appear on Trustpilot. You can filter the results after downloading using spreadsheet software, databases, or data processing tools.

#### Do I need coding skills to use this Actor?

No! The Actor is designed to be used through the Apify Console interface. Simply paste the Trustpilot URL and click "Start". However, if you want to integrate it programmatically, basic API knowledge is helpful.

#### How do I integrate this with my application?

You can integrate Trustpilot Reviews Scraper with your application using:

- **Apify API** - RESTful API for triggering runs and fetching results
- **Webhooks** - Get notified when scraping completes
- **Zapier/Make** - No-code automation platforms
- **Python/JavaScript SDKs** - Official Apify SDKs for programmatic access

Check the **Integrations** tab for more details.

#### Known Issues

- Some reviews may not have titles (the `reviewTitle` field may be empty)
- Location information may not always be available
- Company metadata (totalReviews, averageRating) extraction depends on page structure

If you encounter any issues or have suggestions for improvements, please use the **Issues** tab to report them. We're open to feedback and continuously improving the Actor.

#### Need a Custom Solution?

If you need a customized version of this Actor or additional features, feel free to reach out. We can create a tailored solution based on your specific requirements.

### Support

- **Documentation** - Check the Apify documentation for general Actor usage
- **Issues** - Report bugs or request features in the Issues tab
- **Community** - Join the Apify community for discussions and support
- **Blog** - Read our blog for tutorials and best practices on web scraping

***

**Ready to start scraping Trustpilot reviews?** Click "Try for free" to get started with your first run!

# Actor input Schema

## `startUrls` (type: `array`):

One or more URLs of Trustpilot company review pages to scrape. The Actor will extract all reviews from these pages and automatically follow pagination links to get additional reviews.

**Example URLs:**

- `https://www.trustpilot.com/review/example.com`
- `https://www.trustpilot.com/review/shop.example.com`

You can add multiple company pages to scrape reviews from different companies in a single run.

## `maxReviews` (type: `integer`):

The maximum number of reviews to scrape across all pages. The Actor will stop scraping once this limit is reached.

**Note:** Leave this field empty to scrape all available reviews from the specified pages.

## `maxPages` (type: `integer`):

The maximum number of pages to scrape per start URL. Trustpilot paginates reviews, and this setting limits how many pages the Actor will process for each company page.

**Note:** Setting this to 1 will only scrape the first page of reviews.

## `proxyConfiguration` (type: `object`):

Select proxies to be used by your scraper. By default, the Actor uses Apify's proxy pool to avoid rate limiting and IP blocking.

**Recommended:** Use Apify Proxy for better reliability and to avoid getting blocked by Trustpilot.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.trustpilot.com/review/example.com"
    }
  ],
  "maxPages": 10,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `reviews` (type: `string`):

All scraped reviews stored in the default dataset

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "startUrls": [
        {
            "url": "https://www.trustpilot.com/review/example.com"
        }
    ],
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("happitap/trustpilot-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "startUrls": [{ "url": "https://www.trustpilot.com/review/example.com" }],
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("happitap/trustpilot-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "startUrls": [
    {
      "url": "https://www.trustpilot.com/review/example.com"
    }
  ],
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call happitap/trustpilot-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,happitap/trustpilot-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/u2SpkHodh7Wd3mVi4/builds/VYrHiamsTLMXkx1IZ/openapi.json
