# Trustpilot Scraper: Reviews, Ratings & Company Data (`deepmine/trustpilot-scraper`) Actor

Trustpilot scraper for any company: all reviews with no 200-review cap (rating, text, dates, reviewer, verification, company reply) plus TrustScore, contacts and AI summary on every row. Filters, only-new mode, business search. No login.

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

## Pricing

from $0.18 / 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.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Trustpilot Scraper: reviews, ratings and company data

Trustpilot scraper for any company, with no 200-review cap: paste Trustpilot links, website domains or company names
and get every review as a row (rating, title, text, dates, reviewer, verification, the company's reply) with the
company's TrustScore, rating breakdown and contacts on every row. No login, no proxies to set up.

| Company | ⭐ | Title | Posted | Reviewer | Country | Verified | Company replied |
|---|---|---|---|---|---|---|---|
| Temu | 1 | [BUYER BEWARE](https://www.trustpilot.com/reviews/6ac9b1df6795a8b16c8f57d1) | 2026-10-10 | Marty Z. | US | no | no |
| Temu | 1 | [False Advertisement - No Business Integr…](https://www.trustpilot.com/reviews/6ac8b2599e9686a17ef0f824) | 2026-10-09 | Helen B. | US | no | yes |
| Booking.com | 1 | [I booked an international flight…](https://www.trustpilot.com/reviews/6ac9a123389a078e19aaabef) | 2026-10-10 | Qayam J. | AU | no | no |
| Booking.com | 1 | [Muy descontenta](https://www.trustpilot.com/reviews/6ac9878f40f5595cfccbc4d2) | 2026-10-10 | Blanca | ES | no | no |

<sub>Collected Oct 10, 2026 from the prefilled input (temu.com and www.booking.com, 50 reviews each; Temu replied to 20 of its 50); reviewer names shortened here, full in the data.</sub>

**$0.29 per 1,000 reviews on Starter ($0.34 Free, $0.23 Scale, $0.18 Business), no start fee. The prefilled run (100 reviews) costs about $0.03.**

### What you get

- **Thousands of reviews per company.** Trustpilot shows a logged-out visitor 200 reviews per listing. Above 200,
  this Actor splits the listing by star rating, language and words and reads each part, keeping every review once.
  The run's summary says how many of Trustpilot's reviews it reached for each company.
- **The whole brand, not one page.** Many brands have several Trustpilot pages (Apple: www.apple.com, apple.de,
  www.apple.dk, store.apple.com, ...). When a company's main page has fewer reviews than your limit, the run also
  reads the brand's other pages, most reviews first; each row's `companyDomain` says which page it came from.
- **Every review field Trustpilot shows**: rating, title, text, language, likes, posted / experience / updated dates,
  verified flag, verification source and time, reviewer name, country, photo and review count, the company's reply with
  its date and how many days it took.
- **Company columns on every row**: TrustScore, stars, total reviews, reviews in the last 12 months, the 1-5 star
  breakdown, categories, website, email, phone and address (when the company lists them), claimed status, reply
  rate and speed, inviting status and the Trustpilot features the company uses, Trustpilot's AI summary and topic
  summaries, review languages and similar companies.
- **Reviewer profiles**: paste a reviewer's link (`trustpilot.com/users/<id>`) to get every review they wrote, with
  the company each one is about.
- **Only new reviews**: turn on *Only new reviews since the last run* and schedule the run; each run gets only the
  reviews posted since the previous one, so you never pay twice for a review. Works for businesses found by search
  too. If a run stops early (review limit, spending limit, timeout, an error), the next run picks up the new reviews
  it didn't get. Trustpilot shows 200 reviews per filter to logged-out visitors: if more than that came in one
  language and star rating since the last run, the run says which period may be missing; run more often to avoid it.
- **Business search**: find businesses by keyword or Trustpilot category, with website, email, phone and address,
  then (optionally) read their reviews in the same run.
- **Filters**: star ratings, language, newest or most relevant, posted in the last 30 days to 12 months or after a
  date, verified only, with replies only, a word, topics, reviewer countries.
- **Transparency report** (optional): organic vs invited reviews, reports, reviews taken offline, monthly counts.

### Input

| Field | What it does |
|---|---|
| Companies | Trustpilot links (any country site), domains like `amazon.com`, company names, or reviewer links (`trustpilot.com/users/<id>`) |
| Max reviews per company | Default 100, up to 100,000 |
| Star ratings, language, sort, period | Trustpilot's own filters |
| Categories, Business search | Find businesses (one row each) |
| Only new reviews since the last run | Skip reviews an earlier run with the same companies and filters delivered |

Example:

```json
{
  "companies": ["www.amazon.com", "https://www.trustpilot.com/review/apify.com"],
  "maxReviewsPerCompany": 500,
  "stars": ["1", "2"],
  "publishedAfter": "2026-09-01"
}
```

### Output

One row per review (and one per business from a search or category). A review row, shortened:

```json
{
  "dataType": "review",
  "reviewId": "6ab90be978026c57dd548c50",
  "reviewUrl": "https://www.trustpilot.com/reviews/6ab90be978026c57dd548c50",
  "companyName": "Apple",
  "companyDomain": "www.apple.com",
  "rating": 2,
  "title": "iPhone unavailable",
  "language": "en",
  "publishedAt": "2026-09-27T14:28:25.000Z",
  "isVerified": false,
  "reviewerCountry": "US",
  "hasCompanyReply": false,
  "companyTrustScore": 1.7,
  "companyTotalReviews": 12804,
  "companyRating1Star": 9180
}
```

The Output tab has views for ⭐ Reviews, 💬 Replies, 👤 Reviewers, 📊 Ratings and 🏢 Companies; business and company rows
are also in their own 🏢 Businesses table. Every row of a run has the same columns, and lists (categories,
review languages, topic summaries, similar companies, monthly counts) are lists of text, so the data opens
cleanly in a spreadsheet. Every field has a description in the Output tab's schema.

### Pricing

Pay per result: each review (or business) is charged once per run, however many inputs or filter windows find it.
No start fee.

| Plan | Price per 1,000 results |
|---|---|
| Free | $0.34 |
| Starter | $0.29 |
| Scale | $0.23 |
| Business | $0.18 |

Your run's spending limit is respected: the run stops when it is reached and you keep everything collected.

### Tips

- **Track new reviews**: turn on *Only new reviews since the last run* and schedule the run (or set *Posted after*
  to `1 week`).
- **Only complaints**: stars `1` and `2`.
- **Leads**: search a category (e.g. `electronics_store`) with a country and a minimum TrustScore; each business
  row has its website, email and phone when listed.

### FAQ

**Do I need a Trustpilot account or proxies?** No. The Actor works logged out and brings its own datacenter proxy.

**Why fewer reviews than Trustpilot's total?** Trustpilot's total counts reviews in every language and some it
hides; a filter (language, stars, dates) narrows it further. For companies with many thousands of reviews the
Actor reads as many as Trustpilot's filters reach; the run's OUTPUT gives the count per company.

**Useful?** A short review on the Actor's page helps other people find it and tells us what to improve:
https://apify.com/deepmine/trustpilot-scraper/reviews. Something missing or wrong? Open an issue on the Actor's Issues tab:
we read every one.

# Actor input Schema

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

A Trustpilot page (<code>https://www.trustpilot.com/review/apple.com</code>, any country site), a website (<code>amazon.com</code>) or a name (<code>Booking.com</code>, best match used). One per line.

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

Up to 200 the run reads the listing as Trustpilot shows it; above 200 it splits the listing into smaller parts, so big companies give thousands. 0 = company details only.

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

Only reviews with these ratings, e.g. 1 and 2 stars for complaints. Empty = all ratings.

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

Newest first, or Trustpilot's most relevant first.

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

Only reviews posted in this period. For an exact date, use Posted after under Filters.

## `languages` (type: `string`):

One language's reviews, as an ISO code, e.g. <code>en</code>, <code>de</code>, <code>fr</code>. <code>all</code> = every language.

## `publishedAfter` (type: `string`):

Only reviews posted after this date, or a period like <code>2 weeks</code>. With Newest first, reading stops at older reviews: good for daily tracking. Empty = any date.

## `onlyNewReviews` (type: `boolean`):

Only reviews newer than the last run with the same companies and filters: a scheduled run never pays twice for a review. Reads newest first; a run cut short leaves the rest to the next.

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

Only reviews Trustpilot marks as verified.

## `withRepliesOnly` (type: `boolean`):

Only reviews the company replied to.

## `keyword` (type: `string`):

Only reviews containing this word (Trustpilot's own review search), e.g. <code>refund</code>. Empty = all reviews.

## `topics` (type: `array`):

Only reviews Trustpilot files under these topics, e.g. <code>customer_service</code>, <code>delivery_service</code>, <code>refund</code>, <code>product</code>. Empty = all topics.

## `reviewerCountries` (type: `array`):

Only reviews by people from these countries, as ISO codes, e.g. <code>US</code>, <code>GB</code>. Empty = all countries.

## `categories` (type: `array`):

Trustpilot categories: an id (<code>electronics_store</code>) or its page URL. Each business found is one row with its website, email, phone and address when listed.

## `searchTerms` (type: `array`):

Find businesses by name or keyword with Trustpilot's own search, e.g. <code>vpn</code>. One row per business.

## `maxBusinesses` (type: `integer`):

The most businesses saved per category or search term.

## `country` (type: `string`):

Categories only: businesses from this country, as an ISO code, e.g. <code>US</code>, <code>DE</code>. Empty = Trustpilot's default for the category.

## `minTrustScore` (type: `integer`):

Only businesses with at least this TrustScore, e.g. 4. Empty = any score.

## `scrapeReviewsOfFoundBusinesses` (type: `boolean`):

Reads the reviews of every business found (📊 Max reviews per company applies). You pay per review saved.

## `includeBrandPages` (type: `boolean`):

Brands often have several Trustpilot pages (Apple: www.apple.com, www.apple.dk, appletv.com...). On: when the main page runs out, the run reads them too, up to the limit. companyDomain says which page.

## `includeCompanyRows` (type: `boolean`):

One extra row per company with its profile only, charged like a review. Review rows already carry the company columns.

## `includeTransparency` (type: `boolean`):

Adds Trustpilot's transparency report to the company columns: organic vs invited reviews, reports, reviews removed, monthly counts. No extra charge.

## `flatRows` (type: `boolean`):

Every row with the same flat columns (lists as text).

## Actor input object example

```json
{
  "companies": [
    "temu.com",
    "www.booking.com"
  ],
  "maxReviewsPerCompany": 50,
  "stars": [],
  "sort": "newest",
  "dateRange": "",
  "languages": "all",
  "onlyNewReviews": false,
  "verifiedOnly": false,
  "withRepliesOnly": false,
  "topics": [],
  "reviewerCountries": [],
  "categories": [],
  "searchTerms": [],
  "maxBusinesses": 100,
  "scrapeReviewsOfFoundBusinesses": false,
  "includeBrandPages": true,
  "includeCompanyRows": false,
  "includeTransparency": false,
  "flatRows": true
}
```

# Actor output Schema

## `overview` (type: `string`):

No description

## `businesses` (type: `string`):

No description

## `summary` (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": [
        "temu.com",
        "www.booking.com"
    ],
    "maxReviewsPerCompany": 50
};

// Run the Actor and wait for it to finish
const run = await client.actor("deepmine/trustpilot-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": [
        "temu.com",
        "www.booking.com",
    ],
    "maxReviewsPerCompany": 50,
}

# Run the Actor and wait for it to finish
run = client.actor("deepmine/trustpilot-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": [
    "temu.com",
    "www.booking.com"
  ],
  "maxReviewsPerCompany": 50
}' |
apify call deepmine/trustpilot-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,deepmine/trustpilot-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/DSGhxtCyrpaf04Ji5/builds/Spt0PJAleYcKZegs4/openapi.json
