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

Scrape Trustpilot reviews in bulk with support for filters.

- **URL**: https://apify.com/curious\_coder/trustpilot-reviews-scraper.md
- **Developed by:** [Curious Coder](https://apify.com/curious_coder) (community)
- **Categories:** AI, Automation, Other
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.10 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

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 Reviews Scraper

Extract company reviews from [Trustpilot](https://www.trustpilot.com) — fast, structured, and ready to use. Point it at any company profile and get clean JSON, CSV or Excel with every review, rating, reviewer and company reply.

Great for monitoring your brand reputation, analysing competitors, tracking customer sentiment over time, or building review datasets for research.

### What you can do

- Scrape **all reviews** from one or many companies at once.
- **Filter** exactly like you would on the site — by star rating, time period, language, verified status, replied reviews, or a search keyword.
- **Cap** how many reviews you collect per company with *Limit per URL*.
- Export to **JSON, CSV, Excel, or HTML**, or pull results via the API.

### Input

Paste one or more Trustpilot company pages and choose your filters.

| Field | Description |
|-------|-------------|
| **Company review URLs** | The companies to scrape. Use full URLs (`https://www.trustpilot.com/review/happen.com`) or just the domain (`happen.com`). |
| **Limit per URL** | Maximum reviews to collect per company. Set `0` for no limit (all reviews). |
| **Star rating** | Keep only selected ratings, e.g. 4 and 5 stars. Leave empty for all. |
| **Time period** | Last 30 days, 3 / 6 / 12 months, or any time. |
| **Verified reviews only** | Return only verified reviews. |
| **Replied reviews only** | Return only reviews the company has replied to. |
| **Review language** | Language code such as `en`, `es`, `de`, or `all` for every language. |
| **Search within reviews** | Only reviews containing a keyword. |
| **Sort order** | Most recent or most relevant. |

#### Example input

```json
{
  "startUrls": ["https://www.trustpilot.com/review/happen.com"],
  "limitPerUrl": 200,
  "starRatings": ["4", "5"],
  "timePeriod": "last12months",
  "language": "en",
  "sort": "recency"
}
````

### Output

Each review is one record:

```json
{
  "id": "6a3cc427c25ae5b7bc5364b7",
  "url": "https://www.trustpilot.com/reviews/6a3cc427c25ae5b7bc5364b7",
  "title": "easy to apply",
  "text": "easy to apply...",
  "rating": 5,
  "language": "en",
  "experiencedDate": "2026-06-25T00:00:00.000Z",
  "publishedDate": "2026-06-25T08:01:11.000Z",
  "isVerified": false,
  "verificationLevel": "not-verified",
  "consumer": {
    "displayName": "Patience Pawaka",
    "countryCode": "ZA",
    "numberOfReviews": 2
  },
  "reply": null,
  "companyName": "Happen Bank",
  "companyBusinessUnit": "happen.com"
}
```

### Tips

- Add several company URLs in one run to compare competitors side by side.
- Combine **Star rating** + **Time period** to focus on recent negative or positive feedback.
- Use **Search within reviews** to find mentions of a specific product, feature, or issue.
- Schedule the actor to track new reviews and reputation changes automatically.

# Actor input Schema

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

Trustpilot company review pages to scrape. Accepts full URLs (e.g. https://www.trustpilot.com/review/happen.com) or bare domains (e.g. happen.com).

## `limitPerUrl` (type: `integer`):

Maximum number of reviews to collect per company URL. 0 = no limit (scrape all matching reviews).

## `starRatings` (type: `array`):

Only return reviews with these star ratings. Leave empty for all ratings.

## `timePeriod` (type: `string`):

Only return reviews published within this period.

## `verified` (type: `boolean`):

Only return verified reviews.

## `repliedOnly` (type: `boolean`):

Only return reviews that have a reply from the company.

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

ISO language code of reviews to return (e.g. en, es, de, fr). Use 'all' for every language. Default 'en'.

## `searchQuery` (type: `string`):

Free-text keyword to search for within the review content.

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

How to sort reviews.

## Actor input object example

```json
{
  "startUrls": [
    "https://www.trustpilot.com/review/happen.com",
    "amazon.com"
  ],
  "limitPerUrl": 100,
  "starRatings": [],
  "timePeriod": "",
  "verified": false,
  "repliedOnly": false,
  "language": "en",
  "searchQuery": "",
  "sort": "recency"
}
```

# 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": [
        "https://www.trustpilot.com/review/happen.com"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("curious_coder/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": ["https://www.trustpilot.com/review/happen.com"] }

# Run the Actor and wait for it to finish
run = client.actor("curious_coder/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": [
    "https://www.trustpilot.com/review/happen.com"
  ]
}' |
apify call curious_coder/trustpilot-reviews-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Trustpilot Reviews Scraper",
        "description": "Scrape Trustpilot reviews in bulk with support for filters.",
        "version": "1.0",
        "x-build-id": "ceTuoWZUZny6IXOp2"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/curious_coder~trustpilot-reviews-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-curious_coder-trustpilot-reviews-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/curious_coder~trustpilot-reviews-scraper/runs": {
            "post": {
                "operationId": "runs-sync-curious_coder-trustpilot-reviews-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/curious_coder~trustpilot-reviews-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-curious_coder-trustpilot-reviews-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",
                "required": [
                    "startUrls"
                ],
                "properties": {
                    "startUrls": {
                        "title": "Company review URLs",
                        "type": "array",
                        "description": "Trustpilot company review pages to scrape. Accepts full URLs (e.g. https://www.trustpilot.com/review/happen.com) or bare domains (e.g. happen.com).",
                        "items": {
                            "type": "string"
                        }
                    },
                    "limitPerUrl": {
                        "title": "Limit per URL",
                        "type": "integer",
                        "description": "Maximum number of reviews to collect per company URL. 0 = no limit (scrape all matching reviews).",
                        "default": 100
                    },
                    "starRatings": {
                        "title": "Star rating",
                        "type": "array",
                        "description": "Only return reviews with these star ratings. Leave empty for all ratings.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "1",
                                "2",
                                "3",
                                "4",
                                "5"
                            ],
                            "enumTitles": [
                                "1 star",
                                "2 stars",
                                "3 stars",
                                "4 stars",
                                "5 stars"
                            ]
                        },
                        "default": []
                    },
                    "timePeriod": {
                        "title": "Time period",
                        "enum": [
                            "",
                            "last30days",
                            "last3months",
                            "last6months",
                            "last12months"
                        ],
                        "type": "string",
                        "description": "Only return reviews published within this period.",
                        "default": ""
                    },
                    "verified": {
                        "title": "Verified reviews only",
                        "type": "boolean",
                        "description": "Only return verified reviews.",
                        "default": false
                    },
                    "repliedOnly": {
                        "title": "Replied reviews only",
                        "type": "boolean",
                        "description": "Only return reviews that have a reply from the company.",
                        "default": false
                    },
                    "language": {
                        "title": "Review language",
                        "type": "string",
                        "description": "ISO language code of reviews to return (e.g. en, es, de, fr). Use 'all' for every language. Default 'en'.",
                        "default": "en"
                    },
                    "searchQuery": {
                        "title": "Search within reviews",
                        "type": "string",
                        "description": "Free-text keyword to search for within the review content.",
                        "default": ""
                    },
                    "sort": {
                        "title": "Sort order",
                        "enum": [
                            "recency",
                            "relevance"
                        ],
                        "type": "string",
                        "description": "How to sort reviews.",
                        "default": "recency"
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
