# Trustpilot Reviews Scraper 🌟 \[No Login] — $0.40/1K 💰 (`viralanalyzer/trustpilot-reviews-scraper-pro`) Actor

Extract Trustpilot reviews in bulk for any company globally: ratings, full text, author, verified status, company replies, and dates. Only $0.40/1K reviews.

- **URL**: https://apify.com/viralanalyzer/trustpilot-reviews-scraper-pro.md
- **Developed by:** [viralanalyzer](https://apify.com/viralanalyzer) (community)
- **Categories:** Lead generation, Automation, SEO tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.25 / 1,000 review scrapeds

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
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?

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 Pro ⭐

> 🔗 [View on Apify Store](https://apify.com/viralanalyzer/trustpilot-reviews-scraper-pro) | 🇺🇸 English | [🇧🇷 Português](#português)

***

> ### ⚠️ Current status — source unreachable
>
> Trustpilot answers automated requests with **HTTP 403**, from a plain client, from a browser TLS fingerprint, and through both datacenter and residential proxies. Routing through a dedicated unlocking service returns the provider's own message: the domain requires KYC verification before it will serve this site.
>
> **No data is returned today, and nothing is charged.** Runs finish with a diagnostic explaining the block. The extractor itself is written and tested — it parses Trustpilot's `__NEXT_DATA__` payload — and starts producing reviews as soon as an unlocking route is available.
>
> *Status verified 2026-08-26.*

### 🇺🇸 English

#### Overview

Extract verified customer reviews, star ratings, review dates, reviewer usernames, and company responses from Trustpilot for any domain.

#### Features

- **Domain-Based Extraction**: Input any business domain (e.g. `revolut.com`, `shopify.com`) to extract all reviews
- **Sentiment & Complaint Tracking**: Full review text, review titles, and merchant response history
- **Verified Status**: Identifies verified purchase reviews and reviewer location

#### Input Example

```json
{
  "companyDomain": "revolut.com",
  "maxReviews": 50
}
```

#### Output Example

```json
{
  "reviewId": "tp_6512ab34cd...",
  "businessDomain": "revolut.com",
  "businessName": "Revolut",
  "businessTrustScore": 4.2,
  "businessReviewCount": 158234,
  "authorName": "David M.",
  "authorCountry": "GB",
  "authorReviewsCount": 3,
  "rating": 5,
  "reviewTitle": "Seamless international transfers",
  "reviewText": "I have used Revolut across 12 countries without a single hiccup...",
  "reviewLanguage": "en",
  "isVerified": true,
  "reviewDate": "2026-08-10T09:12:44.000Z",
  "reviewUrl": "https://www.trustpilot.com/reviews/6512ab34cd...",
  "dataSource": "trustpilot-review-page",
  "scrapedAt": "2026-08-27T21:00:00.000Z"
}
```

#### Input Parameters

| Parameter | Type | Description |
|-----------|------|-------------|
| `companyDomain` | string | **One** company domain per run (e.g. `"revolut.com"`) |
| `maxReviews` | number | Max matching reviews to return (default 10) |
| `starsFilter` | string | `all` or an exact star count `1`–`5` |

#### Tips

- Extract 1-star and 2-star reviews specifically to identify your competitors biggest customer pain points

#### Use Cases

- **Brand Reputation Audits** — Monitor customer satisfaction over time
- **Competitor Disruption** — Find dissatisfied customers looking for alternatives

### ✅ Capabilities & Limits

**Built here:** the actor reads **one** review page (`?sort=recency`) and does not paginate. `starsFilter` therefore filters *that page*, not the company's whole review history — asking for `1` star on a company with overwhelmingly positive recent reviews can legitimately return nothing. When that happens you get a labeled diagnostic explaining it, and you are not charged.

Stated up front, so you do not pay a run to find out. Derived from this Actor's own input schema.

| Input / feature | Supported | Notes |
|---|---|---|
| `companyDomain` — **required** | ✅ | Domain of the company (e.g. 'shopify.com', 'stripe.com', 'revolut.com') or full Trustpilot review URL. |
| `starsFilter` | ✅ | exact star count `1`–`5`, or `all`. Applied **before billing** — a filtered-out review is not charged |
| Multiple domains per run | ❌ | one `companyDomain` per run |
| Result volume (`maxReviews`) | ⚠️ | a ceiling on **matching** reviews, not a guarantee |
| Pagination | ❌ | one page of reviews per run, sorted by most recent — see below |
| Company reply to a review | ❌ | not emitted |
| Proxy | ⚠️ | Apify Proxy options. |

#### FAQ

**Q: Can I scrape any company on Trustpilot?**
A: Yes! Any domain indexed on Trustpilot can be scraped.

***

### 🇧🇷 Português

> ### ⚠️ Status atual — fonte inacessível
>
> O Trustpilot responde **HTTP 403** a requisições automatizadas, tanto de cliente simples quanto de navegador, por proxy datacenter e residencial. Roteando por serviço de desbloqueio dedicado, a resposta é do próprio provedor: o domínio exige verificação KYC.
>
> **Nenhum dado é retornado hoje, e nada é cobrado.** Os runs terminam com um diagnóstico explicando o bloqueio. O extrator está escrito e testado — lê o `__NEXT_DATA__` do Trustpilot — e passa a produzir avaliações assim que houver rota de desbloqueio.
>
> *Status verificado em 2026-08-26.*

#### Visão Geral

Extraia avaliações verificadas de clientes, notas de 1 a 5 estrelas, datas, usuários e respostas oficiais da empresa no Trustpilot para qualquer domínio.

#### Funcionalidades

- **Extração por Domínio**: Informe qualquer domínio (ex: `revolut.com`, `shopify.com`) para extrair avaliações
- **Rastreamento de Sentimento**: Título, texto completo da avaliação e respostas da empresa
- **Status de Verificação**: Identifica reviews verificados e localização do avaliador

#### Exemplo de Entrada

```json
{
  "companyDomain": "revolut.com",
  "maxReviews": 50
}
```

#### Exemplo de Saída

```json
{
  "reviewId": "tp_6512ab34cd...",
  "businessDomain": "revolut.com",
  "businessName": "Revolut",
  "businessTrustScore": 4.2,
  "businessReviewCount": 158234,
  "authorName": "David M.",
  "authorCountry": "GB",
  "authorReviewsCount": 3,
  "rating": 5,
  "reviewTitle": "Seamless international transfers",
  "reviewText": "I have used Revolut across 12 countries without a single hiccup...",
  "reviewLanguage": "en",
  "isVerified": true,
  "reviewDate": "2026-08-10T09:12:44.000Z",
  "reviewUrl": "https://www.trustpilot.com/reviews/6512ab34cd...",
  "dataSource": "trustpilot-review-page",
  "scrapedAt": "2026-08-27T21:00:00.000Z"
}
```

#### Parâmetros de Entrada

| Parâmetro | Tipo | Descrição |
|-----------|------|-----------|
| `companyDomain` | string | **Um** domínio por execução (ex: `"revolut.com"`) |
| `maxReviews` | number | Máximo de avaliações correspondentes (padrão 10) |
| `starsFilter` | string | `all` ou uma nota exata de `1` a `5` |

#### Dicas

- Analise avaliações de 1 e 2 estrelas para descobrir as principais falhas dos concorrentes

#### Casos de Uso

- **Auditoria de Reputação** — Monitore a satisfação dos clientes ao longo do tempo
- **Conquista de Clientes** — Identifique usuários insatisfeitos com concorrentes

#### Perguntas Frequentes

**P: Posso extrair qualquer empresa no Trustpilot?**
R: Sim! Qualquer domínio listado no Trustpilot é suportado.

***

### 💰 Pricing

This actor uses **Pay Per Event (PPE)** pricing — you pay per **review scraped** (`review-scraped`). Runs that end with a diagnostic record charge nothing.

Apify platform usage (compute units and proxy) is billed to your own account on top of the event price. See the current price on the **Pricing** panel of this actor's Apify Store page.

***

### 🔗 Related Actors

- [Reclame Aqui Scraper](https://apify.com/viralanalyzer/reclameaqui-scraper)
- [iFood Restaurant Intelligence](https://apify.com/viralanalyzer/ifood-restaurant-intelligence)
- [Instagram Reels Scraper](https://apify.com/viralanalyzer/instagram-reels-scraper)
- [TikTok Viral Scanner](https://apify.com/viralanalyzer/tiktok-viral-scanner)
- [Google Maps BR Scraper](https://apify.com/viralanalyzer/google-maps-br-scraper)
- [Mercado Livre Scraper](https://apify.com/viralanalyzer/mercadolivre-scraper)

***

### 📝 Changelog

- **v1.0.0** (2026-08-20) — Initial release: full extraction, Pay-Per-Event pricing, and automated proxy support

***

### License

ISC © 2026 Viral Analyzer Platform

***

💡 **Need AI analysis on top of this data — sentiment, trend detection and a dashboard, with no API keys to manage?**\
[ViralAnalyzer](https://viralanalyzer.com.br) runs this actor + 42 more data sources with built-in AI. JSON + insights in one call.

# Actor input Schema

## `companyDomain` (type: `string`):

Domain of the company (e.g. 'shopify.com', 'stripe.com', 'revolut.com') or full Trustpilot review URL.

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

Maximum number of reviews to extract.

## `starsFilter` (type: `string`):

Filter by rating star count (e.g. 'all', '1', '2', '3', '4', '5').

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

Apify Proxy options.

## `unlockerProxyUrl` (type: `string`):

URL de proxy de um serviço de desbloqueio (ex.: Bright Data Web Unlocker), no formato http://usuario:senha@host:porta. Quando preenchido, substitui o Apify Proxy. Necessário porque esta origem bloqueia os IPs do Apify Proxy — medido em 2026-08-26 com cliente HTTP e com navegador real, ambos HTTP 403.

## `brightDataApiToken` (type: `string`):

Token da API da Bright Data. Junto com a zona abaixo, roteia a requisição pelo Web Unlocker, que contorna o bloqueio de IP desta origem.

## `brightDataZone` (type: `string`):

Nome da zona Web Unlocker criada no painel da Bright Data (ex.: viralanalyzer\_unlocker).

## Actor input object example

```json
{
  "companyDomain": "shopify.com",
  "maxReviews": 20,
  "starsFilter": "all",
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `reviews` (type: `string`):

Dataset output for Trustpilot Reviews Scraper Pro Output

# 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 = {
    "companyDomain": "shopify.com"
};

// Run the Actor and wait for it to finish
const run = await client.actor("viralanalyzer/trustpilot-reviews-scraper-pro").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 = { "companyDomain": "shopify.com" }

# Run the Actor and wait for it to finish
run = client.actor("viralanalyzer/trustpilot-reviews-scraper-pro").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 '{
  "companyDomain": "shopify.com"
}' |
apify call viralanalyzer/trustpilot-reviews-scraper-pro --silent --output-dataset

```

## MCP server setup

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

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/RLGvfGxmPknFadGEq/builds/db44JIwZCrUyheoPH/openapi.json
