# Trustpilot Reviews Scraper & API – Export Trustpilot Reviews (`rowfeed/trustpilot-reviews-scraper`) Actor

Export the newest or most relevant Trustpilot reviews of any company: star rating, title, full text, date, language, verified flag, reviewer country and company reply, plus the company's TrustScore and review count. Paste Trustpilot links, websites or domains. About $0.25 per 1,000 reviews.

- **URL**: https://apify.com/rowfeed/trustpilot-reviews-scraper.md
- **Developed by:** [Rowfeed](https://apify.com/rowfeed) (community)
- **Categories:** E-commerce, Marketing, Lead generation
- **Security:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.20 / 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.

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 & API – Export Trustpilot Reviews

Export the Trustpilot reviews of any company as clean rows: star rating, title, full text, date, language, the verified flag, the reviewer's country and the company's reply, together with the company's TrustScore and review count.
Paste Trustpilot links (any country site), website links or just domains. Get the newest or the most relevant reviews first.
Built for reputation monitoring, competitor research, e-commerce and SaaS teams, sentiment analysis and AI agents that need Trustpilot reviews as JSON. No Trustpilot account, no API key, no browser.

### What you get

- **One row per review** in the order you chose: `rating`, `title`, `review_text`, `published_at`, `language`, `verified`, `reviewer_country` (two-letter code), `company_reply` and `company_replied_at`, `review_id` and `review_url`.
- **The company on every row:** `domain`, `company_name`, `company_address`, `company_rating` (TrustScore), `company_reviews_total` and `trustpilot_url`, so many companies export into one sheet.
- **Only reviews with text** with one switch (left-out reviews are not charged).
- **One fetch per company:** `www.booking.com`, `booking.com` and its Trustpilot link are the same company and are fetched once.

The reviewer's name, profile link and profile photo are left out on purpose: they are personal data. Only the country is kept. Email addresses and phone numbers inside review texts and replies are blanked out; names people write inside the texts ("Hi Ana") are not removed.

### Example output

```json
{
  "query": "https://www.trustpilot.com/review/www.booking.com",
  "domain": "booking.com",
  "company_name": "Booking.com",
  "company_address": "Herengracht 597 Amsterdam NL",
  "company_rating": 1.4,
  "company_reviews_total": 129860,
  "trustpilot_url": "https://www.trustpilot.com/review/booking.com",
  "review_id": "6aeac7ca0dbd709fa5967633",
  "position": 1,
  "rating": 5.0,
  "title": "M-am cazat intr-un apartament in…",
  "review_text": "M-am cazat intr-un apartament in Brașov. Apartamentul foarte fain (totul nou), zona liniștită,  m-am simțit foarte bine",
  "published_at": "2026-11-04 07:51:06 +00:00",
  "language": "ro",
  "verified": false,
  "reviewer_country": "RO",
  "company_reply": null,
  "company_replied_at": null,
  "review_url": "https://www.trustpilot.com/reviews/6aeac7ca0dbd709fa5967633",
  "sort": "newest",
  "checked_at": "2026-11-04T07:58:09+00:00"
}
```

### Input

| Field | What it does |
|---|---|
| `companies` | One per line: Trustpilot page (e.g. `https://www.trustpilot.com/review/www.booking.com`, any country site), website link (`https://www.zalando.de/`) or domain (`apify.com`). Up to 500 per run. |
| `maxReviews` | Reviews per company, 1 to 200. Default 20. |
| `sortBy` | `newest` (default) or `relevant` (Trustpilot's default order). |
| `onlyWithText` | Leave out reviews without text (not charged). |
| `newerThan` | Only reviews newer than a date (`2026-10-01`) or an age (`7 days`, `3 months`). Older ones are left out and not charged. |

### Pricing

Pay per event, no subscription. **About $0.25 per 1,000 reviews:**

- **$0.20 per 1,000 reviews** ($0.0002 per review row).
- $0.001 per company for every 20 reviews asked for. The first 20 are asked for first, and more only when the company has them, so a company with 7 reviews never pays for 200.
- $0.006 per run start (covers the server time while the reviews are fetched).
- Requests the data provider never accepted are free. An accepted request is charged its page fee even when it brings nothing back (the provider bills it), e.g. a domain that has no Trustpilot page costs $0.001.

Examples: 1 company with 20 reviews costs $0.011. 100 companies with 100 reviews each cost about $2.61 (the extra over $2.50 is the first 20 reviews, which are asked for twice, and the start).
Cap the cost of a run with the maximum charge setting; the Actor never asks for reviews the budget cannot pay for.
**Try it for $0.006:** the pre-filled example is answered from a saved snapshot of real reviews (rows carry `from_snapshot: true`). Change anything and it runs live.
Live runs need a paid Apify plan (any plan); the pre-filled example works on the free plan.

### Good to know

- **Monitoring:** schedule the Actor daily with `sortBy: newest` and `newerThan: 2 days`. Each run only pays for the first page of each company and the reviews that are actually new, because no further reviews are fetched once the cutoff is reached.
- Reviews come through a licensed data provider (DataForSEO) that reads Trustpilot, usually within 1 to 5 minutes per run. A company whose reviews have not arrived after 15 minutes gets an error row; its page fee stays charged, because the provider billed the request.
- **At most 200 reviews per company and order.** That covers monitoring and recent sentiment; run `newest` on a schedule (daily or weekly) to keep a growing history of every new review.
- Reviews in all languages are included; `language` tells them apart.
- When a review has no title of its own, Trustpilot shows the start of the text as its title, and so does `title`.
- With `newest`, the first 20 reviews of each company are in Trustpilot's order; when more are asked for, the rest come from a second fetch and can include a few reviews posted in between.

### More tools from Rowfeed

- [Google Reviews Scraper](https://apify.com/rowfeed/google-maps-reviews-scraper) – Google Maps reviews of any business, newest, best or worst first.
- [App Reviews Scraper](https://apify.com/rowfeed/app-reviews-scraper) – Google Play and App Store reviews of any app.
- [Tripadvisor Reviews Scraper](https://apify.com/rowfeed/tripadvisor-reviews-scraper) – Tripadvisor reviews of any hotel, restaurant or attraction.
- [AI Visibility Tool](https://apify.com/rowfeed/ai-search-visibility-tracker) – is your brand named and cited by ChatGPT, Gemini, Perplexity and Google AI Mode.
- [Website Traffic Checker](https://apify.com/rowfeed/website-traffic-checker) – estimated traffic of any website.

Not affiliated with Trustpilot.

# Actor input Schema

## `companies` (type: `array`):

One company per line: its Trustpilot page (any country site, e.g. https://www.trustpilot.com/review/www.booking.com), its website, or just its domain (booking.com). Up to 500 per run.

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

How many reviews to get per company, in the chosen order. Up to 200 (the most Trustpilot's data provider returns per company). Companies with fewer reviews only pay for what they have.

## `sortBy` (type: `string`):

Which reviews come first: the newest, or the most relevant (Trustpilot's default).

## `onlyWithText` (type: `boolean`):

Leave out reviews that have no text. Left-out reviews are not charged.

## `newerThan` (type: `string`):

Leave out older reviews: a date (2026-10-01) or an age (7 days, 2 weeks, 3 months). Left-out reviews are not charged. With "Newest first", no further reviews are fetched once the cutoff is reached, which makes scheduled monitoring cheap.

## Actor input object example

```json
{
  "companies": [
    "https://www.trustpilot.com/review/www.booking.com",
    "https://www.zalando.de/",
    "apify.com"
  ],
  "maxReviews": 20,
  "sortBy": "newest",
  "onlyWithText": false,
  "newerThan": "30 days"
}
```

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

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

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

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

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

```

## CLI example

```bash
echo '{
  "companies": [
    "https://www.trustpilot.com/review/www.booking.com"
  ]
}' |
apify call rowfeed/trustpilot-reviews-scraper --silent --output-dataset

```

## MCP server setup

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

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

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/DF7wZIkn6bhUesrdT/builds/5fkfWJwwC8m8BAEZK/openapi.json
