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

Trustpilot Reviews Scraper extracts customer reviews, star ratings, company replies and Trustpilot data in bulk — scrape verified reviews from any company page for brand reputation, competitor research, online reputation and review analytics.

- **URL**: https://apify.com/citrine\_venus/trustpilot-reviews-scraper.md
- **Developed by:** [Data Minds](https://apify.com/citrine_venus) (community)
- **Categories:**
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.99 / 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/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: Extract Customer Reviews, Ratings & Company Replies

**Scrape Trustpilot reviews** in bulk — star ratings, review text, company replies, reviewer details, and company context from any **Trustpilot company page**, domain, or brand name. Build a structured set of **company reviews** ready for analysis.

🔗 **Paste a Trustpilot URL or domain → Start → watch a clean review dataset fill in real time.**

***

### 📑 Table of Contents

- [What Is Trustpilot Reviews Scraper?](#-what-is-trustpilot-reviews-scraper)
- [What Data Can You Extract From Trustpilot?](#-what-data-can-you-extract-from-trustpilot)
- [How It Works](#-how-it-works)
- [How to Use (Apify Console)](#-how-to-use-apify-console)
- [Input Parameters](#-input-parameters)
- [Output Example](#-output-example)
- [Related Actors & Workflows](#-related-actors--workflows)
- [Frequently Asked Questions](#-frequently-asked-questions)
- [Support & Contact](#-support--contact)

***

### 🎁 What Is Trustpilot Reviews Scraper?

**Trustpilot Reviews Scraper** is an [Apify Actor](https://apify.com/actors) that turns public **Trustpilot** business pages into structured **customer reviews** you can filter, export, and analyze. It is a purpose-built **Trustpilot reviews scraper** / **Trustpilot review extractor**: give it a **Trustpilot company page**, a plain domain, a company name, or even a reviewer profile URL, and it returns one clean row per review — with **star ratings**, optional **verified reviews**, **company replies**, and company context.

Use it for **brand reputation** tracking, **competitor reviews** research, **online reputation** monitoring, **review analytics**, and **customer feedback** pipelines. Because it runs on the **Apify platform**, you get scheduling, run monitoring, a REST API for every **review dataset**, webhooks, and export to JSON/CSV/Excel — so **bulk Trustpilot scraping** fits into Sheets, Airtable, Make, Zapier, or your own stack without manual copy-paste.

This is **not** a login-required dump and **not** a fuzzy screenshot tool. It is a practical way to **extract Trustpilot data** at scale when you need reliable **Trustpilot ratings**, review text, and company metadata in one place — a strong **Trustpilot API alternative** for teams that need structured exports today.

***

### 📊 What Data Can You Extract From Trustpilot?

For **review mining**, **sentiment**-oriented digests, and **brand reputation** work, one run can deliver:

- ⭐ **The review itself** — title, full text, **star ratings** (1–5), language, published / experience / updated dates.
- 🙋 **The reviewer** — name, country, and how many reviews they have written (useful signal for **customer feedback** quality).
- ✅ **Trust & replies** — **verified reviews** flags, verification level, plus **company replies** and reply dates when the business responded.
- 🔗 **Links & identity** — direct review URL, **Trustpilot company page** URL, company name, domain, and business-unit id.
- 🏢 **Optional company roll-up** — profile, **Trustpilot ratings** distribution, trust score, and transparency-style collection signals when enabled.
- 🧠 **Optional review insights** — deterministic per-company digest (rating mix, recurring complaint themes) with an optional AI pain-point add-on (bring your own key).
- 📧 **Optional lead enrichment** — best-effort contact email and payment-processor hints from public company pages.

Use **scrape Trustpilot reviews** runs for competitor monitoring, product research, agency reporting on **company reviews**, marketplace diligence, or feeding a **review analytics** warehouse.

***

### 🔧 How It Works

1. **Add your targets.** Paste **Trustpilot** URLs, plain domains, company names, or a reviewer profile link (bulk supported).
2. **Set limits & filters.** Cap reviews per company; optionally filter by stars, language, date window, verified-only, replies-only, or reviewer country.
3. **Companies are resolved.** Each input maps to the matching Trustpilot business (with optional regional sibling domains).
4. **Reviews are collected.** Matching **customer reviews** are gathered with your sort and sampling preferences.
5. **Optional enrichment runs.** Company details, stats, transparency, insights, email lookup, or payment detection can attach when enabled.
6. **Results stream live.** Every accepted review is saved to the dataset as it arrives — so you never lose partial progress.
7. **Export or automate.** Download JSON/CSV/Excel or pull the **review dataset** via the Apify API on a schedule.

***

### 🚀 How to Use (Apify Console)

1. Open this Actor in [Apify Console](https://console.apify.com/actors).
2. Paste one or more **Trustpilot company page** URLs or domains into **Company URLs / Domains** (or add **Company Names**).
3. Set **Max Reviews per Company** (or `0` for no limit).
4. Optionally narrow by **star ratings**, language, date range, **verified reviews**, or **company replies**.
5. Leave proxy on automatic escalation, or force your own proxy configuration.
6. Click **Start** and watch the log + **Output** tab fill with **Trustpilot data**.
7. Switch views (Overview / Full data / Company & enrichment) and export, or connect Sheets / Airtable / Make / Zapier.

#### 🤖 Quick API example

```bash
curl -X POST "https://api.apify.com/v2/acts/<ACTOR_ID>/run-sync-get-dataset-items" \
     -H "Authorization: Bearer $APIFY_TOKEN" \
     -H "Content-Type: application/json" \
     -d '{
       "startUrls": [{"url": "https://www.trustpilot.com/review/pipedrive.com"}],
       "maxItems": 100
     }'
```

***

### 🧩 Input Parameters

Only **Company URLs / Domains** (or **Company Names**) is required. Everything else has a sensible default.

#### 🚀 Start Here — What to Collect

| Field | Type | Description | Default |
|---|---|---|---|
| `startUrls` | array | **Trustpilot** company URLs, plain domains, company websites, or `/users/...` reviewer profiles — bulk supported. Core input for this **Trustpilot scraper**. | example prefill |
| `searchTerms` | array of strings | Company / brand names to look up when you do not know the exact domain. | `[]` |
| `maxItems` | integer | Max reviews per company (`0` = no limit). Controls **bulk Trustpilot scraping** depth. | `100` |
| `sortBy` | string (`auto` | `relevancy` | `recent`) | Order reviews are collected. | `auto` |
| `proxyConfiguration` | object | Optional. Auto-escalation starts direct; turn on to force your own proxy. | no proxy |

#### 📊 Review Filters

| Field | Type | Description | Default |
|---|---|---|---|
| `filterStars` | array (`1`–`5`) | Only these **star ratings**. Empty = all. | `[]` |
| `sampling` | string (`balanced` | `proportional`) | How a limit splits across ratings when no star filter is set. | `balanced` |
| `filterLanguages` | array | Language codes (e.g. `en`, `de`). | `[]` |
| `filterDateRange` | string | Rolling window: `all`, `last30days`, `last3months`, `last6months`, `last12months`. | `all` |
| `startDate` | string (YYYY-MM-DD) | Hard cutoff — only reviews on/after this date. | none |
| `lastDays` | integer | Only reviews from the last N days. | none |
| `filterVerifiedOnly` | boolean | Keep only **verified reviews**. | `false` |
| `filterRepliesOnly` | boolean | Keep only reviews with **company replies**. | `false` |
| `filterCountries` | array | Reviewer ISO country codes (e.g. `US`, `GB`). | `[]` |
| `scrapeAllReviews` | boolean | Collect all languages by default when no language filter is set. | `true` |

#### 🏳️ Discovery & Matching

| Field | Type | Description | Default |
|---|---|---|---|
| `expandRegionalDomains` | boolean | Include regional sibling domains (e.g. `.com` + `.co.uk`) for the same brand. | `true` |
| `strictNameMatch` | boolean | Stricter name matching when resolving search terms. | `false` |

#### 📦 Company Data & Output Options

| Field | Type | Description | Default |
|---|---|---|---|
| `includeCompanyDetails` | boolean | Attach nested company profile to every review. | `false` |
| `includeCompanyAdditionalFields` | boolean | Extra company flags (claimed / plan-style signals). | `false` |
| `includeStats` | boolean | Attach **Trustpilot ratings** distribution / trust score stats. | `false` |
| `includeTransparency` | boolean | Attach published transparency / collection-method data when available. | `false` |
| `flattenCompanyData` | boolean | Also add flat `companyName` / `companyDomain` / score columns for CSV. | `false` |
| `splitDatasets` | boolean | Also save a company roll-up section in Output. | `false` |
| `emitInputStatus` | boolean | Report inputs that returned zero reviews. | `true` |

#### 🧠 Insights & Enrichment

| Field | Type | Description | Default |
|---|---|---|---|
| `reviewInsights` | boolean | Deterministic per-company digest for **review analytics** (no AI required). | `false` |
| `painPointAnalysis` | boolean | Optional AI pain-point summary (your own API key). | `false` |
| `aiProvider` / `aiApiKey` / `aiModel` | string | Provider, key, and optional model override for AI analysis. | unset |
| `enrichEmails` | boolean | Best-effort company contact email enrichment. | `false` |
| `qualifyByPayment` | boolean | Detect payment / commerce processors on the company site. | `false` |

#### ⚙️ Performance & Reliability

| Field | Type | Description | Default |
|---|---|---|---|
| `maxConcurrency` / `minConcurrency` | integer | Parallelism range across inputs. | `10` / `1` |
| `maxRequestRetries` | integer | Retries per request. | `3` |
| `requestDelay` / `requestTimeout` | number | Polite delay (s) / timeout (s). | `0` / `30` |
| `bypassProtection` | boolean | Keeps access more reliable against bot protection. Recommended ON. | `true` |
| `verboseLogging` | boolean | Live progress in the run log. | `true` |

***

### 📦 Output Example

Each accepted review becomes **one JSON object** in your dataset as soon as it is collected.

```json
{
  "id": "6a9803f1574b106456ec6975",
  "title": "The meeting was really helpful",
  "text": "The meeting was really helpful and the team was very easy to talk to.",
  "rating": 5,
  "language": "en",
  "authorName": "Marian",
  "country": "SE",
  "authorReviewCount": 3,
  "publishedDate": "2026-09-02T13:09:37.000Z",
  "experienceDate": "2026-08-28T00:00:00.000Z",
  "isVerified": false,
  "replyMessage": "Thank you for sharing your feedback!",
  "replyPublishedDate": "2026-09-03T09:12:00.000Z",
  "companyName": "Pipedrive",
  "companyDomain": "pipedrive.com",
  "url": "https://www.trustpilot.com/reviews/6a9803f1574b106456ec6975",
  "businessUrl": "https://www.trustpilot.com/review/pipedrive.com"
}
```

#### 🗂️ Output sections (Output tab)

| Section | What you get |
|---|---|
| 🔎 **Reviews — Overview** | Key columns for fast scanning of **customer reviews** |
| 📋 **Reviews — Full data** | Every review field for deep **review mining** |
| 🏢 **Company & enrichment** | Company / stats / lead-enrichment fields |
| 📊 **Company roll-ups** | One row per business when `splitDatasets` is on |
| 🧠 **Review insights** | Per-company digests when insights / AI is on |
| 🧾 **Input status** | Inputs that returned zero matching reviews |
| 📝 **Run summary** | Totals for the run (inputs, reviews, final network tier) |

#### 🧩 Nested / optional blocks

| Block | Useful when | Notes |
|---|---|---|
| `company` | `includeCompanyDetails` | Profile for the **Trustpilot business** |
| `stats` | `includeStats` | Rating mix & trust score for **online reputation** dashboards |
| `transparency` | `includeTransparency` | Published collection-method signals |
| Insights KV record | `reviewInsights` / AI | Themes & pain points for **review analytics** |

***

### 🔗 Related Actors & Workflows

If you need to **scrape Trustpilot reviews**, build a **review dataset**, or track **competitor reviews** and **brand reputation**, this **Trustpilot reviews scraper** is the Actor to use.

| Goal | How this Actor helps |
|---|---|
| **Bulk Trustpilot scraping** for many brands | Paste many `startUrls` / `searchTerms` in one run |
| Monitor **Trustpilot ratings** over time | Schedule the **Apify Actor** and compare exports |
| Focus on **verified reviews** or replies | Use `filterVerifiedOnly` / `filterRepliesOnly` |
| Agency **customer feedback** reports | Enable insights + CSV/Excel export |
| Sales qualification from public sites | Optional email / payment enrichment flags |

If you only need a single screenshot of one Trustpilot page, the public site may be enough. This Actor is for teams that need structured **Trustpilot data**, repeatable **review analytics**, and automation — a practical **Trustpilot API alternative** without maintaining your own crawler.

***

### ❓ Frequently Asked Questions

#### ⭐ What is a Trustpilot reviews scraper?

A **Trustpilot reviews scraper** collects public **customer reviews**, **star ratings**, and related fields from **Trustpilot company page** listings into a structured **review dataset**. This Actor is built specifically to **extract Trustpilot data** for analysis and automation.

#### 📥 Can I scrape Trustpilot reviews with only a domain?

Yes. A plain domain like `pipedrive.com` works like a full `https://www.trustpilot.com/review/pipedrive.com` URL — handy for **bulk Trustpilot scraping** from CRM lists.

#### 🏢 Can I collect competitor reviews for brand reputation research?

Yes. Add competitor domains or names, filter by date or stars, and export. That is a common **competitor reviews** / **online reputation** workflow for product and marketing teams.

#### ✅ Does it support verified reviews and company replies?

Yes. Use `filterVerifiedOnly` for **verified reviews**, and `filterRepliesOnly` when you only want threads with **company replies** — useful for support-quality and **customer feedback** audits.

#### 📊 Can I use this for review analytics and sentiment-style research?

Yes. Export raw reviews for your own models, or enable built-in **review insights** for a per-company digest. Optional AI pain-point analysis deepens **review mining** when you supply your own key.

#### 🔌 Is there a Trustpilot API alternative on Apify?

Trustpilot’s public browsing experience does not replace a full private API for every workflow. This **Apify Actor** gives you API-style access (runs, datasets, webhooks, schedules) so your stack can **scrape Trustpilot reviews** and pull JSON/CSV on demand — a practical **Trustpilot API alternative** for many research and monitoring use cases.

#### 🏳️ What does regional domain expansion do?

When enabled, the Actor can include sibling regional Trustpilot listings for the same brand (for example `.com` and `.co.uk`), so your **Trustpilot ratings** picture is not limited to one country site.

#### 🚀 How do I run bulk Trustpilot scraping for many companies?

Paste many rows into `startUrls`, optionally add `searchTerms`, set `maxItems`, and raise concurrency as needed. Results stream live so long runs still produce a usable **review dataset** early.

#### 🚫 Why did an input return zero reviews?

The company may not exist on Trustpilot, filters may be too strict, or the listing may have no matching **customer reviews**. Enable `emitInputStatus` to see a diagnostic row per empty input.

#### 🛡️ Is scraping Trustpilot legal?

This Actor collects **publicly available** Trustpilot listings — the same pages a visitor can open without logging in. You remain responsible for Trustpilot’s terms, applicable laws, and how you use personal data (GDPR/CCPA and similar). This is not legal advice.

#### ⏱️ Can I schedule ongoing online reputation monitoring?

Yes. Apify Schedules let you re-run hourly, daily, or on any cron to refresh **Trustpilot data**, track new **customer reviews**, and keep **brand reputation** dashboards current.

#### 🧹 How do I keep only recent 1–2 star reviews?

Set `filterStars` to `1` and `2`, and choose a `filterDateRange` or `lastDays` window. That pattern is common for churn and complaint-focused **review analytics**.

***

### 🙋 Support & Contact

Found a bug, need a new field, or want a **custom solution** built around this **Trustpilot reviews scraper** / **Trustpilot review extractor** for your workflow?

Reach out via the **Issues** tab on this Actor’s Apify Store page, or email **<hello.dataminds@gmail.com>** for custom builds, integrations, and feature requests.

Feedback is welcome — this Actor is actively maintained for teams that need reliable **Trustpilot data**, **customer reviews**, and **online reputation** insights at scale.

# Actor input Schema

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

Paste one or more Trustpilot company URLs (e.g. https://www.trustpilot.com/review/pipedrive.com), plain company domains (e.g. pipedrive.com), or the company's own website URL — bulk supported, one per row. A Trustpilot reviewer profile URL (/users/...) is also accepted.

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

Optional. Add company/brand names to look up on Trustpilot instead of (or in addition to) URLs — handy when you don't know the exact domain.

## `maxItems` (type: `integer`):

Stop collecting once this many reviews have been gathered for a single company. Set to 0 for no limit. Pagination is handled automatically behind the scenes.

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

Choose the order reviews are returned in.

## `filterStars` (type: `array`):

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

## `sampling` (type: `string`):

When 'Max Reviews per Company' limits results and no star filter is set, choose how to sample across ratings: an even split across all ratings, or matching the company's real rating mix.

## `filterLanguages` (type: `array`):

Only collect reviews written in these language codes (e.g. en, de, fr). Leave empty for all languages.

## `filterDateRange` (type: `string`):

Only collect reviews posted within this rolling window.

## `startDate` (type: `string`):

Optional hard cutoff — only keep reviews published on or after this date (YYYY-MM-DD). If both this and 'Only reviews from the last N days' are set, the more recent cutoff wins.

## `lastDays` (type: `integer`):

Optional. Only keep reviews published within this many days of now.

## `filterVerifiedOnly` (type: `boolean`):

Only collect reviews Trustpilot marks as verified.

## `filterRepliesOnly` (type: `boolean`):

Only collect reviews that received a company reply.

## `filterCountries` (type: `array`):

Only collect reviews from reviewers in these ISO country codes (e.g. US, GB, DE). Leave empty for all countries.

## `scrapeAllReviews` (type: `boolean`):

When ON (recommended), reviews are collected in every language by default. Turn OFF to automatically restrict to the company's local language when no explicit language filter is set.

## `expandRegionalDomains` (type: `boolean`):

Automatically discover and include the same brand's regional Trustpilot domains (e.g. nike.com and nike.co.uk) alongside your requested company.

## `strictNameMatch` (type: `boolean`):

When looking up a company by name, require a stronger match instead of accepting the closest search result. Reduces false positives for generic company names.

## `includeCompanyDetails` (type: `boolean`):

Attach a nested company profile (name, domain, category, trust score, contact info) to every review row.

## `includeCompanyAdditionalFields` (type: `boolean`):

Also include extra company-plan flags (claimed status, subscription info, consumer alerts). Requires 'Include Company Details' to be ON.

## `includeStats` (type: `boolean`):

Attach a rating-distribution stats block (total reviews, average stars, trust score, per-star breakdown) to every review row.

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

Attach Trustpilot's review-collection transparency data (collection method breakdown) to every review row, when published for that company.

## `flattenCompanyData` (type: `boolean`):

Also add flat top-level companyName / companyDomain / companyTrustScore columns — handy for CSV/Excel exports.

## `splitDatasets` (type: `boolean`):

Also save one roll-up record per company (profile + stats) to its own downloadable section in the Output tab, in addition to the review rows.

## `emitInputStatus` (type: `boolean`):

Save a diagnostic record for every input that returned zero reviews (not found, blocked, or filtered out entirely) to its own section in the Output tab.

## `reviewInsights` (type: `boolean`):

Compute a per-company insights summary (rating breakdown, sentiment split, recurring complaint themes, top negative terms) — no AI required.

## `painPointAnalysis` (type: `boolean`):

Use an AI model to summarize customer pain points, missing features, and quick wins per company. Requires an AI Provider and API key below (your own key — not billed by Apify).

## `aiProvider` (type: `string`):

AI provider to use for AI Pain-Point Analysis. Only used when that option is ON.

## `aiApiKey` (type: `string`):

Your own API key for the selected AI Provider. Only used when AI Pain-Point Analysis is ON. Stored encrypted.

## `aiModel` (type: `string`):

Override the default model used for AI Pain-Point Analysis (e.g. claude-sonnet-5, gpt-4o-mini). Leave empty to use the provider's default.

## `enrichEmails` (type: `boolean`):

Look up a best-effort contact email for each company (from Trustpilot's own data, or a scan of the company's public website) and attach it to every review row.

## `qualifyByPayment` (type: `boolean`):

Detect which payment processors / e-commerce platforms a company's website appears to use — useful for sales/lead qualification.

## `maxConcurrency` (type: `integer`):

Maximum number of inputs processed in parallel. Higher is faster but more resource-intensive.

## `minConcurrency` (type: `integer`):

Minimum concurrency the run will throttle down to if Trustpilot starts pushing back.

## `maxRequestRetries` (type: `integer`):

How many times to retry a single request before giving up on it.

## `requestDelay` (type: `number`):

Polite pause between page fetches for the same company. Float seconds; a little jitter is added automatically.

## `requestTimeout` (type: `number`):

Maximum time to wait for a single request before treating it as failed.

## `bypassProtection` (type: `boolean`):

Keeps the run working reliably against Trustpilot's bot-protection so pages load consistently instead of failing. Strongly recommended to keep ON.

## `sessionRefreshSeconds` (type: `integer`):

Advanced. How long a verified access session is trusted before it's proactively refreshed.

## `verificationTimeoutSecs` (type: `integer`):

Advanced. Maximum time allowed for the access-verification step to complete.

## `verboseLogging` (type: `boolean`):

Show friendly, real-time progress logs (companies found, reviews collected, proxy events) while the run is in progress.

## `httpProfiles` (type: `array`):

Internal — rotation profiles for outgoing requests.

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

🛡️ Smart proxy strategy: requests start direct (no proxy) for maximum speed. If Trustpilot blocks or rate-limits a request, the Actor automatically escalates to an Apify Datacenter proxy, and finally to a Residential proxy — then sticks with Residential for the rest of the run. Leave this OFF to let the built-in auto-escalation handle everything, or turn it ON / choose specific groups to force your own proxy from the start.

## Actor input object example

```json
{
  "startUrls": [
    "https://www.trustpilot.com/review/pipedrive.com"
  ],
  "searchTerms": [],
  "maxItems": 40,
  "sortBy": "auto",
  "filterStars": [],
  "sampling": "balanced",
  "filterLanguages": [],
  "filterDateRange": "all",
  "filterVerifiedOnly": false,
  "filterRepliesOnly": false,
  "filterCountries": [],
  "scrapeAllReviews": true,
  "expandRegionalDomains": true,
  "strictNameMatch": false,
  "includeCompanyDetails": false,
  "includeCompanyAdditionalFields": false,
  "includeStats": false,
  "includeTransparency": false,
  "flattenCompanyData": false,
  "splitDatasets": false,
  "emitInputStatus": true,
  "reviewInsights": false,
  "painPointAnalysis": false,
  "enrichEmails": false,
  "qualifyByPayment": false,
  "maxConcurrency": 10,
  "minConcurrency": 1,
  "maxRequestRetries": 3,
  "requestDelay": 0,
  "requestTimeout": 30,
  "bypassProtection": true,
  "sessionRefreshSeconds": 1200,
  "verificationTimeoutSecs": 45,
  "verboseLogging": true,
  "httpProfiles": [],
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `reviewsOverview` (type: `string`):

The most useful fields for every collected review.

## `reviewsFull` (type: `string`):

Every field collected for every review.

## `reviewsCompany` (type: `string`):

Company profile, stats, and lead-enrichment fields attached to each review (populated when those input options are enabled).

## `businessUnits` (type: `string`):

One record per scraped company (profile + stats), when 'Save Company Rows Separately' is enabled.

## `insights` (type: `string`):

Per-company insight summaries, when 'Generate Review Insights' or 'AI Pain-Point Analysis' is enabled.

## `inputStatus` (type: `string`):

Diagnostic records for any input that returned zero reviews, when 'Report Inputs with No Results' is enabled.

## `runSummary` (type: `string`):

Totals for this run: inputs processed, reviews collected, and the proxy tier the run ended on.

# 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/pipedrive.com"
    ],
    "searchTerms": [],
    "filterLanguages": [],
    "filterCountries": []
};

// Run the Actor and wait for it to finish
const run = await client.actor("citrine_venus/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/pipedrive.com"],
    "searchTerms": [],
    "filterLanguages": [],
    "filterCountries": [],
}

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

```

## MCP server setup

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