# Trustpilot Reviews Scraper (`fetch_cat/trustpilot-reviews-scraper`) Actor

Export Trustpilot reviews, ratings, verified status, company replies, reviewer data, and company metrics with date, star, language, and keyword filters.

- **URL**: https://apify.com/fetch\_cat/trustpilot-reviews-scraper.md
- **Developed by:** [Hanna Nosova](https://apify.com/fetch_cat) (community)
- **Categories:** Automation, E-commerce, Developer tools
- **Stats:** 2 total users, 1 monthly users, 93.1% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.25 / 1,000 review extracteds

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

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — 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 Reviews Scraper

Export public Trustpilot company reviews, ratings, replies, reviewer metadata, language filters, star filters, and dates.

Use this actor when you need a repeatable CSV, JSON, Excel, or API export of Trustpilot reviews for reputation monitoring, customer feedback analysis, competitor benchmarking, complaint triage, or AI-agent workflows.

### At a glance

- **Input:** Trustpilot company URLs, company domains, review limits, star filters, sort order, language filters, reply setting, and optional proxy.
- **Output:** Company profile data, TrustScore, review title/text/rating, published and experience dates, reviewer metadata, verification status, business replies, language, page, and scrape time.
- **Filters:** Stars, languages, sort order, and max reviews per company.
- **Best for:** Trustpilot review exports, reputation workflows, review analytics, and Trustpilot API alternative workflows.
- **Public data only:** Does not access private Trustpilot business dashboards.

### Ready-to-run examples

Use these saved Store examples as starting points. Open any example to prefill the Actor input, then adjust URLs, keywords, limits, or filters for your own run.

- **[Get a small Trustpilot review sample](https://apify.com/fetch_cat/trustpilot-reviews-scraper/examples/small-trustpilot-review-sample)**
- **[Export Trustpilot reviews with business replies](https://apify.com/fetch_cat/trustpilot-reviews-scraper/examples/trustpilot-reviews-with-business-replies)**
- **[Collect recent SaaS Trustpilot reviews](https://apify.com/fetch_cat/trustpilot-reviews-scraper/examples/recent-saas-trustpilot-reviews)**
- **[Export Shopify Trustpilot review data](https://apify.com/fetch_cat/trustpilot-reviews-scraper/examples/shopify-trustpilot-review-export)**
- **[Track Booking.com Trustpilot reviews](https://apify.com/fetch_cat/trustpilot-reviews-scraper/examples/booking-travel-reputation-reviews)**
- **[Compare delivery service Trustpilot reviews](https://apify.com/fetch_cat/trustpilot-reviews-scraper/examples/compare-delivery-service-trustpilot-reviews)**
- **[View all ready-to-run examples](https://apify.com/fetch_cat/trustpilot-reviews-scraper/examples)** (8 examples)

### What can it do?

- **Export Trustpilot reviews:** Save public review titles, text, ratings, dates, reviewer metadata, and review URLs.
- **Collect company context:** Add company name, domain, TrustScore, rating text, and total review count.
- **Filter feedback:** Use star and language filters for focused review analysis.
- **Capture business replies:** Include visible company replies when enabled.
- **Use as a Trustpilot reviews API alternative:** Run from the Apify UI, API, schedules, webhooks, or the official Apify MCP server.

### Who is it for?

This Actor is for reputation managers, customer support teams, ecommerce operators, review analysts, agencies, and data teams that need structured public Trustpilot review exports without building their own browser automation. It is also useful for AI-agent workflows that need fresh review evidence before summarizing sentiment, complaints, or competitor positioning.

### Common workflows

- **Reputation monitoring:** Track new public reviews and rating changes.
- **Complaint triage:** Export low-star reviews for tagging and escalation.
- **Competitor benchmarking:** Compare review volume, ratings, and themes across companies.
- **Reply coverage audit:** Find reviews that do or do not have visible business replies.
- **AI-agent summaries:** Let an agent collect reviews before summarizing sentiment and recurring issues.

### Input example

```json
{
  "startUrls": [
    { "url": "https://www.trustpilot.com/review/example.com" }
  ],
  "companyUrls": [],
  "maxReviewsPerCompany": 100,
  "stars": [1, 2, 3, 4, 5],
  "sort": "recency",
  "languages": ["en"],
  "includeReplies": true,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

### Output example

```json
{
  "companyUrl": "https://www.trustpilot.com/review/example.com",
  "companyDomain": "example.com",
  "companyName": "Example Company",
  "trustScore": 4.2,
  "companyRatingText": "Great",
  "totalReviewCount": 12500,
  "reviewId": "abc123",
  "reviewUrl": "https://www.trustpilot.com/reviews/abc123",
  "reviewTitle": "Fast delivery",
  "reviewText": "The order arrived quickly and support was helpful.",
  "rating": 5,
  "publishedDate": "2026-06-20",
  "experienceDate": "2026-06-18",
  "reviewerName": "Anna",
  "reviewerCountry": "PT",
  "reviewerReviewCount": 7,
  "isVerified": true,
  "replyText": "Thanks for your feedback.",
  "replyDate": "2026-06-21",
  "replyAuthor": "Example Company",
  "language": "en",
  "starsFilter": 5,
  "page": 1,
  "scrapedAt": "2026-07-03T10:00:00.000Z"
}
```

### Input configuration

| Setting | JSON key | What to enter |
| --- | --- | --- |
| Start URLs | `startUrls` | Trustpilot company review URLs or website domains. |
| Company URLs | `companyUrls` | Alias for users who think in company URLs/domains. |
| Maximum reviews per company | `maxReviewsPerCompany` | Review rows to save for each company. |
| Stars | `stars` | Optional star filters such as `[1]` or `[4,5]`. |
| Sort | `sort` | `recency` or `relevance`. |
| Languages | `languages` | Language filters such as `["en"]` or `["all"]`. |
| Include replies | `includeReplies` | Adds visible business reply fields. |
| Proxy configuration | `proxyConfiguration` | Optional proxy settings. |

### Output fields

| Field group | Fields |
| --- | --- |
| Company | `companyUrl`, `companyDomain`, `companyName`, `trustScore`, `companyRatingText`, `totalReviewCount` |
| Review identity | `reviewId`, `reviewUrl`, `reviewTitle`, `publishedDate`, `experienceDate`, `page` |
| Review content | `reviewText`, `rating`, `language`, `starsFilter` |
| Reviewer | `reviewerName`, `reviewerCountry`, `reviewerReviewCount`, `isVerified` |
| Replies | `replyText`, `replyDate`, `replyAuthor` |
| Metadata | `scrapedAt` |

### Pricing

This Actor uses Apify pay-per-event pricing. The prices below come from the current Actor pricing configuration. Apify public plans map to Store discount tiers, so the table shows both the user-facing plan context and the pricing tier name. The final price shown in Apify depends on the user account plan and any custom agreement.

| Event | What is charged | Price |
| --- | --- | ---: |
| `start` | One-time fee per run | $0.025 |

| Event | What is charged | Free / no discount | Starter / Bronze | Scale / Silver | Business / Gold | Custom / Platinum | Custom / Diamond |
| --- | --- | ---: | ---: | ---: | ---: | ---: | ---: |
| `review` | Per Trustpilot review saved to the dataset | $4.0395 / 1,000 | $3.5126 / 1,000 | $2.7398 / 1,000 | $2.1075 / 1,000 | $1.405 / 1,000 | $0.98352 / 1,000 |

Apify may also charge platform usage for compute, storage, proxies, or data transfer outside this Actor pricing. Check the Actor run and the Apify Pricing tab for the exact cost shown to your account.

### Tips for best results

- Use exact Trustpilot company URLs when possible.
- Use star filters to reduce cost for focused workflows like complaint triage.
- Keep `includeReplies` on only when reply fields matter.
- Use `languages` to avoid collecting review languages you do not need.
- Enable proxy if Trustpilot throttles or blocks direct traffic.

### Legality and responsible use

This Actor extracts publicly available Trustpilot review pages. Use it only for lawful purposes, respect Trustpilot's terms, follow applicable privacy and data-protection rules, and avoid collecting more personal data than your workflow requires. If you are unsure whether your intended use is allowed, consult your legal advisor before running large jobs.

### Limits and caveats

- The actor exports public Trustpilot review pages only.
- It does not access private Trustpilot Business data or private account dashboards.
- Some reviews may omit reviewer country, experience date, verification, reply author, or language context.
- Trustpilot can change pagination, filtering, and page structure.

### API usage

#### cURL

```bash
curl "https://api.apify.com/v2/acts/fetch_cat~trustpilot-reviews-scraper/runs?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "startUrls": [{ "url": "https://www.trustpilot.com/review/example.com" }],
    "maxReviewsPerCompany": 100,
    "stars": [1],
    "includeReplies": true
  }'
```

#### Node.js

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

const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('fetch_cat/trustpilot-reviews-scraper').call({
  startUrls: [{ url: 'https://www.trustpilot.com/review/example.com' }],
  maxReviewsPerCompany: 100,
  includeReplies: true,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
```

#### Python

```python
from apify_client import ApifyClient
import os

client = ApifyClient(os.environ['APIFY_TOKEN'])
run = client.actor('fetch_cat/trustpilot-reviews-scraper').call(run_input={
    'startUrls': [{'url': 'https://www.trustpilot.com/review/example.com'}],
    'maxReviewsPerCompany': 100,
    'includeReplies': True,
})
items = client.dataset(run['defaultDatasetId']).list_items().items
print(items)
```

### MCP and AI agents

You can run this actor through the official Apify MCP server at `https://mcp.apify.com`.

For Claude Desktop or another MCP client, add the Apify MCP server with a focused single-actor tool URL:

```bash
claude mcp add apify-trustpilot-reviews "https://mcp.apify.com?tools=fetch_cat/trustpilot-reviews-scraper"
```

You can also configure the server manually:

```json
{
  "mcpServers": {
    "apify-trustpilot-reviews": {
      "url": "https://mcp.apify.com?tools=fetch_cat/trustpilot-reviews-scraper",
      "headers": {
        "Authorization": "Bearer ${APIFY_TOKEN}"
      }
    }
  }
}
```

Example prompts for MCP usage:

- "Run the Trustpilot Reviews Scraper for `https://www.trustpilot.com/review/example.com` and summarize recurring complaints."
- "Collect 50 recent 1-star Trustpilot reviews for this company and return a table of issue themes."
- "Export Trustpilot reviews with business replies enabled and highlight unanswered reviews."

Agent-friendly inputs are `startUrls`, `companyUrls`, `maxReviewsPerCompany`, `stars`, `sort`, `languages`, `includeReplies`, and `proxyConfiguration`.

### FAQ

**Can I scrape multiple Trustpilot companies in one run?**\
Yes. Add multiple company URLs or domains to `startUrls` or `companyUrls`.

**Can I scrape only 1-star reviews?**\
Yes. Set `stars` to `[1]`.

**Can I capture business replies?**\
Yes, when replies are public and `includeReplies` is enabled.

**Can I export to CSV or Excel?**\
Yes. Download the Apify dataset as CSV, Excel, JSON, XML, RSS, or through the Dataset API.

### Related actors

- [Agoda Reviews Scraper](https://apify.com/fetch_cat/agoda-reviews-scraper)
- [Airbnb Reviews Scraper](https://apify.com/fetch_cat/airbnb-reviews-scraper)
- [ProductReview.com.au Scraper](https://apify.com/fetch_cat/productreview-com-au-scraper)
- [Shopify App Reviews Scraper](https://apify.com/fetch_cat/shopify-app-reviews-scraper)
- [Google News Scraper](https://apify.com/fetch_cat/google-news-scraper)

### Support

If a run fails, returns no data, or a field looks wrong, open an issue from the Actor page.

Please include the Apify run ID or run URL, input JSON, one example public URL, query, or input item, what you expected, and what the dataset returned. Small reproducible inputs make parsing or site-layout issues much faster to fix.

### Changelog

#### 0.2

- Added dataset field descriptions and clarified input settings, output fields, pricing, API usage, and Trustpilot public-data limits.

#### 0.1

- Initial public release.

### Privacy and data handling

This Actor runs with Apify limited permissions and only processes data needed for the documented run. It uses review lookup inputs and public review results to produce the output dataset and sends requests to public Trustpilot Reviews pages/endpoints; results are stored in Apify run storage for your account. FetchCat does not use your inputs or outputs for advertising, does not use them for model training, and does not retain them outside the Apify run except for transient support debugging when you explicitly share run details. You are responsible for using the Actor lawfully, respecting the target site's terms, and avoiding unnecessary personal or sensitive data in inputs.

# Actor input Schema

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

Trustpilot review pages (https://www.trustpilot.com/review/example.com) or plain company domains (example.com).

## `companyUrls` (type: `array`):

Optional plain company domains such as example.com. Use this when you do not have the Trustpilot URL yet.

## `maxReviewsPerCompany` (type: `integer`):

Maximum number of reviews to save for each company. Use a low number for test runs.

## `stars` (type: `array`):

Optional star ratings to scrape. Leave empty to scrape the default Trustpilot listing.

## `sort` (type: `string`):

Sort reviews by recency or Trustpilot's default relevance order.

## `languages` (type: `array`):

Optional Trustpilot language filters such as en, de, fr, or all. Leave empty for default page language.

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

Capture visible company reply text, date, and author when Trustpilot shows a reply.

## `maxRunSeconds` (type: `integer`):

Optional work budget from 45 to 600 seconds. The Actor stops admitting pages early and saves pending work before cleanup.

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

Optional network route. The Actor uses the selected route as-is and reports verification pages explicitly; no route is guaranteed to bypass Trustpilot verification.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.trustpilot.com/review/www.amazon.com"
    }
  ],
  "companyUrls": [],
  "maxReviewsPerCompany": 20,
  "stars": [],
  "sort": "recency",
  "languages": [],
  "includeReplies": true
}
```

# Actor output Schema

## `overview` (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 = {
    "startUrls": [
        {
            "url": "https://www.trustpilot.com/review/www.amazon.com"
        }
    ],
    "companyUrls": [],
    "stars": [],
    "languages": []
};

// Run the Actor and wait for it to finish
const run = await client.actor("fetch_cat/trustpilot-reviews-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/www.amazon.com" }],
    "companyUrls": [],
    "stars": [],
    "languages": [],
}

# Run the Actor and wait for it to finish
run = client.actor("fetch_cat/trustpilot-reviews-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 '{
  "startUrls": [
    {
      "url": "https://www.trustpilot.com/review/www.amazon.com"
    }
  ],
  "companyUrls": [],
  "stars": [],
  "languages": []
}' |
apify call fetch_cat/trustpilot-reviews-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/acts/bVDMVecCga8c6zRIS/builds/cLaE0ZLrcqlo2zhjQ/openapi.json
