# Trustpilot Review Scraper - Ratings, Replies & Filters (`loongge/trustpilot-review-scraper`) Actor

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.

- **URL**: https://apify.com/loongge/trustpilot-review-scraper.md
- **Developed by:** [Wa Da](https://apify.com/loongge) (community)
- **Categories:** AI
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.01 / 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/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## Trustpilot Review Scraper — Reputation Intelligence Engine

> One-click Trustpilot review extraction: full review content, reviewer metadata, company replies, and sentiment signals — structured data for any business domain.

### Why This Actor?

Most Trustpilot scrapers grab stars and text. **This actor captures the full review context** — the signals you actually need for reputation analysis, lead scoring, and competitor benchmarking:

- ⭐ **Complete Review Data** — Star rating, title, full text, date, language, and direct review URL
- 👤 **Reviewer Intelligence** — Name, location, review history count, follower count, and verification status
- 🏢 **Company Replies** — Full reply text + reply date, when available
- 🔍 **Smart Filtering** — Filter by star rating, date range, language, and verified-only reviews
- 🛡️ **Anti-Detection** — Proxy-aware crawling with residential proxy support for reliable access
- 📤 **Multiple Exports** — JSON, CSV, or Excel-ready output; one record per review with full nesting
- 📊 **Batch Queries** — Scrape multiple businesses or domains in a single run

### Input

| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| **businessUrls** | string[] | One of two | `[]` | Direct Trustpilot business URLs (e.g., `https://www.trustpilot.com/review/example.com`) |
| **domains** | string[] | One of two | `[]` | Domain names to resolve to Trustpilot review pages automatically |
| **maxReviews** | integer | No | 100 | Maximum reviews to return per business (1–10000) |
| **starFilter** | select | No | `all` | Filter by star rating: `all`, `5`, `4`, `3`, `2`, `1` |
| **dateRange** | select | No | `all` | Date range: `all`, `last7days`, `last30days`, `last90days`, `lastYear` |
| **language** | string | No | `all` | Review language filter (e.g., `en`, `zh`, `ja`, `de`) |
| **verifiedOnly** | boolean | No | `false` | Only return reviews from verified reviewers |
| **includeReplies** | boolean | No | `true` | Include company reply text and date |
| **includeReviewerDetails** | boolean | No | `true` | Include reviewer name, location, review count, followers |
| **proxyConfig** | object | No | — | Proxy configuration for anti-detection |

> **Note:** `businessUrls` and `domains` — provide at least one. `domains` is useful when you know the brand but not the exact Trustpilot URL.

### Output Example

```json
{
  "reviewId": "abc123def456",
  "businessUrl": "https://www.trustpilot.com/review/example.com",
  "businessName": "Example Corp",
  "businessDomain": "example.com",
  "starRating": 5,
  "reviewTitle": "Excellent service and fast delivery",
  "reviewText": "I ordered on Monday and received it on Wednesday. Packaging was great and the product matched the description perfectly...",
  "reviewDate": "2025-03-15",
  "verified": true,
  "reviewerName": "Jane Smith",
  "reviewerLocation": "London, United Kingdom",
  "reviewerReviewCount": 23,
  "reviewerFollowersCount": 5,
  "companyReply": "Thank you for your kind words, Jane! We're thrilled you had a great experience.",
  "replyDate": "2025-03-16",
  "language": "en",
  "reviewUrl": "https://www.trustpilot.com/reviews/abc123def456",
  "helpfulVotes": 12
}
````

### Output Fields

| Field | Type | Description |
|---|---|---|
| `reviewId` | string | Unique Trustpilot review identifier |
| `businessUrl` | string | Canonical Trustpilot URL for the reviewed business |
| `businessName` | string | Business display name on Trustpilot |
| `businessDomain` | string | Extracted domain (e.g., `example.com`) |
| `starRating` | number | Star rating (1–5) |
| `reviewTitle` | string | Review headline |
| `reviewText` | string | Full review body text |
| `reviewDate` | string | Review date (YYYY-MM-DD) |
| `verified` | boolean | Whether the reviewer is verified by Trustpilot |
| `reviewerName` | string | Reviewer display name |
| `reviewerLocation` | string | Reviewer location (city, country) |
| `reviewerReviewCount` | number | Total reviews written by this user |
| `reviewerFollowersCount` | number | Followers of this reviewer on Trustpilot |
| `companyReply` | string | Company’s public reply, if any |
| `replyDate` | string | Date of company reply (YYYY-MM-DD) |
| `language` | string | Detected review language (ISO 639-1) |
| `reviewUrl` | string | Direct link to the review page |
| `helpfulVotes` | number | Number of “helpful” votes from other users |

### Use Cases

- **Reputation Monitoring** — Track review volume, sentiment, and response rates over time
- **Competitor Benchmarking** — Scrape rival businesses side-by-side for rating, review themes, and response quality
- **Lead Scoring** — Weight prospects by their Trustpilot rating and review recency
- **Customer Insights** — Mine review text for feature requests, complaints, and praise patterns
- **Local Business Research** — Build datasets of highly-rated (or poorly-rated) businesses by category and location

### Filtering Strategies

- **Verified only** — Use `verifiedOnly: true` to filter out potentially fake or low-trust reviews
- **Date range** — Combine `dateRange: "last30days"` with `starFilter: "1"` to surface recent complaints
- **Language** — Set `language: "en"` for English-only analysis; omit for multilingual datasets
- **High-volume businesses** — Set `maxReviews` to 1000+ for brands with thousands of reviews; the actor paginates automatically

### Tips

- Use **domains** when you have a list of brands but not their Trustpilot URLs — the actor resolves them automatically
- Use **businessUrls** for precise, fastest lookups when you already have the Trustpilot page
- Combine with **elsa-data-analysis** to aggregate review scores, compute average ratings by region, or detect review velocity spikes
- For sentiment analysis at scale, pair with an NLP pipeline — the output schema is designed for easy ingestion

### Pricing

This actor runs on the Apify platform. Usage is billed per compute unit based on your Apify plan. No third-party API keys required.

### Support

Found a bug or need a feature? Open an issue on the Actor page or contact the developer.

# Actor input Schema

## `productUrls` (type: `array`):

Trustpilot商家页面URL列表 (等同businessUrls)

## `businessUrls` (type: `array`):

Trustpilot商家页面URL列表

## `domains` (type: `array`):

商家域名列表（与businessUrls二选一）

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

要采集的最大评论数量

## `starFilter` (type: `string`):

按星级过滤评论

## `dateRange` (type: `string`):

按发布时间过滤

## `language` (type: `string`):

按语言过滤评论

## `verifiedOnly` (type: `boolean`):

只采集已验证的评论

## `includeReplies` (type: `boolean`):

是否包含公司回复

## `includeReviewerDetails` (type: `boolean`):

是否包含评论者详细信息

## `proxyConfig` (type: `object`):

Apify Proxy 配置

## Actor input object example

```json
{
  "productUrls": [
    "https://www.trustpilot.com/review/www.amazon.com"
  ],
  "businessUrls": [
    "https://www.trustpilot.com/example.com"
  ],
  "domains": [],
  "maxReviews": 100,
  "starFilter": "all",
  "dateRange": "all",
  "language": "all",
  "verifiedOnly": false,
  "includeReplies": true,
  "includeReviewerDetails": true,
  "proxyConfig": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `id` (type: `string`):

Unique review identifier

## `rating` (type: `string`):

Star rating (1-5)

## `title` (type: `string`):

Review headline/title

## `text` (type: `string`):

Full review content

## `consumer` (type: `string`):

No description

## `dates` (type: `string`):

No description

## `isVerified` (type: `string`):

Whether the review is verified

## `url` (type: `string`):

No description

## `companyReply` (type: `string`):

No description

## `helpfulVotes` (type: `string`):

Number of helpful votes

## `language` (type: `string`):

Review language code

## `businessName` (type: `string`):

No description

## `businessUrl` (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 = {
    "productUrls": [
        "https://www.trustpilot.com/review/www.amazon.com"
    ],
    "businessUrls": [
        "https://www.trustpilot.com/example.com"
    ],
    "proxyConfig": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("loongge/trustpilot-review-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 = {
    "productUrls": ["https://www.trustpilot.com/review/www.amazon.com"],
    "businessUrls": ["https://www.trustpilot.com/example.com"],
    "proxyConfig": { "useApifyProxy": True },
}

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

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

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

```

## CLI example

```bash
echo '{
  "productUrls": [
    "https://www.trustpilot.com/review/www.amazon.com"
  ],
  "businessUrls": [
    "https://www.trustpilot.com/example.com"
  ],
  "proxyConfig": {
    "useApifyProxy": true
  }
}' |
apify call loongge/trustpilot-review-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=loongge/trustpilot-review-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Trustpilot Review Scraper - Ratings, Replies & Filters",
        "description": "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.",
        "version": "0.2",
        "x-build-id": "M24mhYbCrVba0wOD2"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/loongge~trustpilot-review-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-loongge-trustpilot-review-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/loongge~trustpilot-review-scraper/runs": {
            "post": {
                "operationId": "runs-sync-loongge-trustpilot-review-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/loongge~trustpilot-review-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-loongge-trustpilot-review-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "productUrls": {
                        "title": "产品URL列表 (Product URLs)",
                        "type": "array",
                        "description": "Trustpilot商家页面URL列表 (等同businessUrls)",
                        "items": {
                            "type": "string"
                        }
                    },
                    "businessUrls": {
                        "title": "商家URL列表 (Business URLs)",
                        "type": "array",
                        "description": "Trustpilot商家页面URL列表",
                        "items": {
                            "type": "string"
                        }
                    },
                    "domains": {
                        "title": "域名列表 (Domains)",
                        "type": "array",
                        "description": "商家域名列表（与businessUrls二选一）",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxReviews": {
                        "title": "最大评论数 (Max Reviews)",
                        "minimum": 1,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "要采集的最大评论数量",
                        "default": 100
                    },
                    "starFilter": {
                        "title": "星级过滤 (Star Filter)",
                        "enum": [
                            "all",
                            "5",
                            "4",
                            "3",
                            "2",
                            "1"
                        ],
                        "type": "string",
                        "description": "按星级过滤评论",
                        "default": "all"
                    },
                    "dateRange": {
                        "title": "日期范围 (Date Range)",
                        "enum": [
                            "all",
                            "last7days",
                            "last30days",
                            "last90days",
                            "lastyear"
                        ],
                        "type": "string",
                        "description": "按发布时间过滤",
                        "default": "all"
                    },
                    "language": {
                        "title": "语言过滤 (Language)",
                        "enum": [
                            "all",
                            "en",
                            "de",
                            "fr",
                            "es",
                            "it",
                            "nl",
                            "pt",
                            "sv",
                            "da",
                            "fi",
                            "no",
                            "pl",
                            "cs",
                            "ro",
                            "hu",
                            "bg",
                            "hr",
                            "sk",
                            "sl",
                            "el",
                            "tr",
                            "ru",
                            "uk",
                            "ar",
                            "he",
                            "th",
                            "vi",
                            "id",
                            "ms",
                            "zh",
                            "ja",
                            "ko"
                        ],
                        "type": "string",
                        "description": "按语言过滤评论",
                        "default": "all"
                    },
                    "verifiedOnly": {
                        "title": "仅验证评论 (Verified Only)",
                        "type": "boolean",
                        "description": "只采集已验证的评论",
                        "default": false
                    },
                    "includeReplies": {
                        "title": "包含公司回复 (Include Replies)",
                        "type": "boolean",
                        "description": "是否包含公司回复",
                        "default": true
                    },
                    "includeReviewerDetails": {
                        "title": "包含评论者详情 (Include Reviewer Details)",
                        "type": "boolean",
                        "description": "是否包含评论者详细信息",
                        "default": true
                    },
                    "proxyConfig": {
                        "title": "代理配置 (Proxy Configuration)",
                        "type": "object",
                        "description": "Apify Proxy 配置"
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
