# Trustpilot Reviews (`datasaurus/trustpilot-reviews`) Actor

Scrape reviews from Trustpilot. Works with all of the website's filters and sorting options. Fast and efficient. n8n-nodes-trustpilot-reviews. n8n node: n8n-nodes-trustpilot-reviews

- **URL**: https://apify.com/datasaurus/trustpilot-reviews.md
- **Developed by:** [datasaurus](https://apify.com/datasaurus) (community)
- **Categories:** E-commerce, Automation
- **Features:** Limited permissions
- **Stats:** 12 total users, 0 monthly users, 100.0% runs succeeded, 2 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.25 / 1,000 reviews

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

Extract **Trustpilot reviews** including **ratings, reviewer details, business replies and ai summary**, together with business profile information and review statistics where available.

Scrape multiple business review URLs in one run, preserve the filters and sorting options in each URL, and set a maximum number of reviews per URL. The Actor also saves **business/location details and review aggregations to the key-value store**.

Checkout our Tripadvisor Scraper [here](https://apify.com/datasaurus/tripadvisor-reviews).

n8n node: [n8n-nodes-trustpilot-reviews](https://www.npmjs.com/package/n8n-nodes-trustpilot-reviews)

### Features

- **Filters and sorting:** Apply filters and sorting on Trustpilot, then copy the resulting URL into the Actor. The URL settings carry through to the scrape.
- **Multiple URLs:** Collect reviews from multiple business pages in a single run.
- **Set limits:** Define the maximum number of reviews to scrape per URL.
- **Deduplication:** Enable `deduplicate_results_across_all_start_urls` to reduce repeated reviews across overlapping start URLs.
- **Request handling:** Uses residential proxies, dynamic request headers and session pooling to help reduce IP blocking.
- **Business details and aggregations:** Saves business profile information and review statistics separately from individual reviews in the run's key-value store.

### What data can be extracted?

| Data | Available information |
|---|---|
| Review | Business identifier, review ID, title, text, star rating and language |
| Dates | Experience, publication and update dates where available |
| Verification | Review verification status, source and verification metadata |
| Reviewer | Profile ID, display name, country code, image and number of reviews |
| Business reply | Reply text, publication date and update date where available |
| Other review fields | Likes, location information and review status flags where available |
| Business profile | Name, ID, website, TrustScore, review count, categories and contact details |
| Review statistics | Rating distribution, review-language counts, filter settings and pagination metadata |
| Business activity | Review collection status and reply behaviour, including response rate and average reply time where available |
| Source summary | Trustpilot's existing `aiSummary`, where returned by the website |

Fields depend on the business and information returned by Trustpilot. Replies, location details and other optional fields can be absent, empty or `null`. Any `aiSummary` is supplied by Trustpilot; the Actor does not generate it.

### Use cases

- **Customer feedback analysis** — examine review text and ratings.
- **Sentiment analysis** — research positive and negative customer experiences.
- **Reputation monitoring** — collect reviews and business responses.
- **Competitor research** — compare feedback, TrustScores and rating distributions.
- **Customer service research** — examine business replies and available response statistics.

### Supported URLs and filters

Supply **Trustpilot business review pages**, including regional website URLs and URLs containing filters or sorting options.

| Type | Example |
|---|---|
| Business reviews | `https://www.trustpilot.com/review/timports.co.uk` |
| Filtered reviews | `https://www.trustpilot.com/review/timports.co.uk?languages=all&topics=product&verified=true` |
| Regional website | `https://it.trustpilot.com/review/www.trenitalia.com` |

URL settings can include review language, stars, topics, verified reviews, reviews with replies and sorting. Use Trustpilot's page controls to construct the URL you want to scrape. A regional website URL selects the website locale; review language is controlled separately by the page's filters.

### Example input

```json
{
  "start_urls": [
    {
      "url": "https://www.trustpilot.com/review/timports.co.uk?languages=all&topics=product&verified=true"
    },
    {
      "url": "https://it.trustpilot.com/review/www.trenitalia.com"
    }
  ],
  "deduplicate_results_across_all_start_urls": true,
  "max_results": 50
}
```

This example uses two business URLs, enables deduplication across start URLs and sets a maximum of 50 reviews per URL. See the **Input** tab for all configuration options.

### Example output

Individual reviews are returned as structured JSON records. This shortened record preserves the source field names and nesting; the business reply is abbreviated from the original example.

```json
{
  "businessUnit": "timports.co.uk",
  "id": "676e5b71b0c4c4b72914c63e",
  "title": "Satisfied customer.",
  "text": "First time ordering from this company. Excellent. Quality product. Delivery as promised. Efficient and friendly driver . Nothing too much trouble. Would use again.",
  "rating": 4,
  "labels": {
    "merged": null,
    "verification": {
      "isVerified": true,
      "createdDateTime": "2024-12-27T09:46:57.000Z",
      "reviewSourceName": "AFSv2",
      "verificationSource": "invitation",
      "verificationLevel": "verified"
    }
  },
  "likes": 0,
  "source": "AFSv2",
  "dates": {
    "experiencedDate": "2024-12-16T00:00:00.000Z",
    "publishedDate": "2024-12-27T09:46:57.000Z",
    "updatedDate": null,
    "submittedDate": null
  },
  "consumer": {
    "id": "60d4cfb5d4b6b400118b0392",
    "displayName": "Elaine",
    "numberOfReviews": 19,
    "countryCode": "GB",
    "isVerified": false
  },
  "reply": {
    "message": "Hi Elaine, thank you so much for your lovely review.",
    "publishedDate": "2025-01-06T14:39:56.000Z",
    "updatedDate": null
  },
  "language": "en",
  "location": null,
  "filtered": false,
  "pending": false
}
```

Review verification under `labels.verification` and reviewer verification under `consumer.isVerified` are separate fields.

#### Business/location details and review aggregations

Open the run's **key-value store** to retrieve business details and review aggregations. A shortened example:

```json
{
  "pageUrl": "https://www.trustpilot.com/review/nordicpure.com?page=3&replies=true&stars=4&verified=true",
  "businessUnit": {
    "id": "5e35a41eecfa4e00014f3081",
    "displayName": "Nordic Pure",
    "identifyingName": "nordicpure.com",
    "numberOfReviews": 1345,
    "trustScore": 4.8,
    "websiteUrl": "https://nordicpure.com",
    "isClaimed": true,
    "activity": {
      "replyBehavior": {
        "averageDaysToReply": 0.39,
        "negativeReviewsWithRepliesCount": 28,
        "replyPercentage": 100,
        "totalNegativeReviewsCount": 28
      }
    }
  },
  "filters": {
    "hasActiveFilters": true,
    "totalNumberOfReviews": 1345,
    "totalNumberOfFilteredReviews": 58,
    "reviewStatistics": {
      "ratings": {
        "total": 1345,
        "one": 23,
        "two": 12,
        "three": 16,
        "four": 58,
        "five": 1236
      }
    }
  }
}
```

### AI agents and integrations

Connect chat clients such as **Claude and ChatGPT** to Apify through the [Apify MCP server](https://docs.apify.com/integrations/mcp) to discover and run eligible Actors.

Structured records let agents work directly with review text, ratings, business identifiers and replies.

Example requests for an agent configured to use this Actor:

> Collect up to 50 reviews from each of these Trustpilot business URLs.

> Collect reviews from this filtered Trustpilot URL, including available business replies.

#### Automation and resources

- [AI integrations](https://docs.apify.com/integrations/ai) — connect Actors with AI applications and agent frameworks.
- [Apify MCP server](https://docs.apify.com/integrations/mcp) — setup, authentication and Actor eligibility requirements.
- [n8n integration](https://docs.apify.com/integrations/n8n) — run Actors and retrieve their results in n8n workflows.
- n8n node: [n8n-nodes-trustpilot-reviews](https://www.npmjs.com/package/n8n-nodes-trustpilot-reviews)

### Notes

- **Output format:** JSON preserves nested verification, reviewer, reply and business data.
- **Field names:** Output field names follow those returned by Trustpilot, with the business identifier included in each review record.
- **Filters and limits:** URL filters restrict the requested reviews; `max_results` sets the maximum per URL.
- **Request blocking:** Proxies and session handling help reduce blocking but do not guarantee every request succeeds.

### Support

For bugs, additional fields or supported URL requests, use the Actor's **Issues** tab. New to Apify? See the [platform documentation](https://docs.apify.com/platform).

[Browse all Datasaurus scrapers](https://apify.com/datasaurus).

# Actor input Schema

## `start_urls` (type: `array`):

Review page urls

## `deduplicate_results` (type: `boolean`):

This may reduce the total number of results to less than max_results if there are duplicates found.

## `max_results` (type: `integer`):

Select the maximum number of reviews to scrape per url.

## Actor input object example

```json
{
  "start_urls": [
    {
      "url": "https://www.trustpilot.com/review/timports.co.uk?languages=all&replies=true&topics=product&verified=true"
    },
    {
      "url": "https://it.trustpilot.com/review/www.trenitalia.com"
    }
  ],
  "deduplicate_results": true,
  "max_results": 10
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# 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 = {
    "start_urls": [
        {
            "url": "https://www.trustpilot.com/review/timports.co.uk?languages=all&replies=true&topics=product&verified=true"
        },
        {
            "url": "https://it.trustpilot.com/review/www.trenitalia.com"
        }
    ],
    "max_results": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("datasaurus/trustpilot-reviews").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 = {
    "start_urls": [
        { "url": "https://www.trustpilot.com/review/timports.co.uk?languages=all&replies=true&topics=product&verified=true" },
        { "url": "https://it.trustpilot.com/review/www.trenitalia.com" },
    ],
    "max_results": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("datasaurus/trustpilot-reviews").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 '{
  "start_urls": [
    {
      "url": "https://www.trustpilot.com/review/timports.co.uk?languages=all&replies=true&topics=product&verified=true"
    },
    {
      "url": "https://it.trustpilot.com/review/www.trenitalia.com"
    }
  ],
  "max_results": 10
}' |
apify call datasaurus/trustpilot-reviews --silent --output-dataset

```

## MCP server setup

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

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/Fe56ixNMCZnWGDAAp/builds/9Vm8FwaD9zVobafAo/openapi.json
