# Trustpilot Scraper (`fatihai-tools/trustpilot-scraper`) Actor

Extract Trustpilot company profiles with trust scores, review counts, and company responses. Quick overview scraper for brand reputation monitoring and competitive benchmarking.

- **URL**: https://apify.com/fatihai-tools/trustpilot-scraper.md
- **Developed by:** [fatih dağüstü](https://apify.com/fatihai-tools) (community)
- **Categories:** Business
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

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

## 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 Scraper - Extract Reviews, Ratings & Company Profiles

Scrape Trustpilot reviews and company data without API keys. Extract review text, star ratings, dates, reviewer info, and company replies from any business on Trustpilot.

### What can you scrape?

| Feature | Description |
|---------|-------------|
| **Company Reviews** | Get all reviews for any company with full text, ratings, and dates |
| **Company Profile** | Trust score, star rating, total reviews, rating distribution, categories |
| **Company Replies** | Extract business responses to customer reviews |
| **Search Companies** | Find businesses by name, category, or keyword |

### Why use this scraper?

- **No API key needed** — scrapes Trustpilot's public pages directly
- **Fast & lightweight** — HTTP-only, no browser required (256MB RAM)
- **Complete review data** — 20+ fields including verification status, likes, language
- **Smart pagination** — automatically handles multi-page review lists
- **Filter by stars** — scrape only 1-star or 5-star reviews
- **Sort options** — most recent or most relevant reviews first

### Output data fields

#### Reviews
| Field | Type | Description |
|-------|------|-------------|
| companyName | string | Business name |
| rating | number | Star rating (1-5) |
| title | string | Review headline |
| text | string | Full review text |
| reviewerName | string | Reviewer display name |
| reviewerCountry | string | Reviewer country code |
| datePublished | string | Review publish date (ISO) |
| dateExperienced | string | Date of experience |
| isVerified | boolean | Verified purchase/experience |
| hasReply | boolean | Company replied |
| replyMessage | string | Company's reply text |
| replyDate | string | Reply date |
| likes | number | Helpful votes |

#### Company Profile
| Field | Type | Description |
|-------|------|-------------|
| companyName | string | Business name |
| domain | string | Website domain |
| trustScore | number | Trustpilot score (0-5) |
| stars | number | Star rating |
| totalReviews | number | Total review count |
| ratingDistribution | object | Count per star (1-5) |
| categories | array | Business categories |

### How to use

#### 1. Scrape company reviews

Get the latest 200 reviews for Amazon:

```json
{
    "scrapeType": "company_reviews",
    "companyUrls": ["amazon.com"],
    "maxReviews": 200,
    "reviewSort": "recency"
}
````

#### 2. Scrape multiple companies

Compare reviews across competitors:

```json
{
    "scrapeType": "company_reviews",
    "companyUrls": ["amazon.com", "ebay.com", "walmart.com"],
    "maxReviews": 100
}
```

#### 3. Filter by star rating

Get only negative reviews (1-2 stars):

```json
{
    "scrapeType": "company_reviews",
    "companyUrls": ["amazon.com"],
    "filterStars": ["1", "2"],
    "maxReviews": 500
}
```

#### 4. Search for companies

Find all SaaS companies on Trustpilot:

```json
{
    "scrapeType": "search_companies",
    "searchQuery": "SaaS software",
    "maxSearchResults": 100
}
```

### Use cases

- **Reputation monitoring** — track your company's reviews over time
- **Competitor analysis** — compare review sentiment across competitors
- **Market research** — analyze customer satisfaction in any industry
- **Lead generation** — find companies with poor reviews (they need your help!)
- **Sentiment analysis** — feed reviews into NLP/AI models

### Pricing

This actor uses **Pay Per Result** pricing:

| Results | Cost |
|---------|------|
| 1,000 reviews | ~$1.50 |
| 10,000 reviews | ~$15 |

Each review or company profile counts as one result.

### Tips

1. **Use domain names** — just enter `amazon.com` instead of full Trustpilot URLs
2. **Start small** — test with `maxReviews: 10` first
3. **Filter stars** to focus on negative or positive reviews only
4. **Enable proxies** for scraping 1,000+ reviews to avoid rate limits

### Support

Found a bug or need a feature? Open an issue on this actor's page.

# Actor input Schema

## `scrapeType` (type: `string`):

Choose what data to extract from Trustpilot.

## `companyUrls` (type: `array`):

Trustpilot company URLs or domain names. Examples: 'amazon.com', 'https://www.trustpilot.com/review/amazon.com'

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

Maximum number of reviews to scrape per company.

## `reviewSort` (type: `string`):

How to sort reviews.

## `filterStars` (type: `string`):

Comma-separated star ratings to filter (e.g. '1,2' for negative reviews). Leave empty for all.

## `includeReplies` (type: `boolean`):

Also extract the company's reply to each review (if any).

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

Search for companies on Trustpilot.

## `maxSearchResults` (type: `integer`):

Maximum number of companies to return from search.

## `proxy` (type: `object`):

Use proxies for large scrapes to avoid rate limits.

## Actor input object example

```json
{
  "scrapeType": "company_reviews",
  "maxReviews": 100,
  "reviewSort": "recency",
  "filterStars": "",
  "includeReplies": true,
  "maxSearchResults": 50
}
```

# 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 = {
    "scrapeType": "company_reviews",
    "maxReviews": 100
};

// Run the Actor and wait for it to finish
const run = await client.actor("fatihai-tools/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 = {
    "scrapeType": "company_reviews",
    "maxReviews": 100,
}

# Run the Actor and wait for it to finish
run = client.actor("fatihai-tools/trustpilot-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 '{
  "scrapeType": "company_reviews",
  "maxReviews": 100
}' |
apify call fatihai-tools/trustpilot-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Trustpilot Scraper",
        "description": "Extract Trustpilot company profiles with trust scores, review counts, and company responses. Quick overview scraper for brand reputation monitoring and competitive benchmarking.",
        "version": "1.0",
        "x-build-id": "WjSNK1X7vrYXFE4nd"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/fatihai-tools~trustpilot-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-fatihai-tools-trustpilot-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/fatihai-tools~trustpilot-scraper/runs": {
            "post": {
                "operationId": "runs-sync-fatihai-tools-trustpilot-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/fatihai-tools~trustpilot-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-fatihai-tools-trustpilot-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": [
                    "scrapeType"
                ],
                "properties": {
                    "scrapeType": {
                        "title": "What to Scrape",
                        "enum": [
                            "company_reviews",
                            "search_companies"
                        ],
                        "type": "string",
                        "description": "Choose what data to extract from Trustpilot.",
                        "default": "company_reviews"
                    },
                    "companyUrls": {
                        "title": "Company URLs or Domains",
                        "type": "array",
                        "description": "Trustpilot company URLs or domain names. Examples: 'amazon.com', 'https://www.trustpilot.com/review/amazon.com'",
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxReviews": {
                        "title": "Maximum Reviews per Company",
                        "minimum": 1,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "Maximum number of reviews to scrape per company.",
                        "default": 100
                    },
                    "reviewSort": {
                        "title": "Sort Reviews By",
                        "enum": [
                            "recency",
                            "relevance"
                        ],
                        "type": "string",
                        "description": "How to sort reviews.",
                        "default": "recency"
                    },
                    "filterStars": {
                        "title": "Filter by Stars (Optional)",
                        "type": "string",
                        "description": "Comma-separated star ratings to filter (e.g. '1,2' for negative reviews). Leave empty for all.",
                        "default": ""
                    },
                    "includeReplies": {
                        "title": "Include Company Replies",
                        "type": "boolean",
                        "description": "Also extract the company's reply to each review (if any).",
                        "default": true
                    },
                    "searchQuery": {
                        "title": "Search Query",
                        "type": "string",
                        "description": "Search for companies on Trustpilot."
                    },
                    "maxSearchResults": {
                        "title": "Maximum Search Results",
                        "minimum": 1,
                        "maximum": 500,
                        "type": "integer",
                        "description": "Maximum number of companies to return from search.",
                        "default": 50
                    },
                    "proxy": {
                        "title": "Proxy Configuration",
                        "type": "object",
                        "description": "Use proxies for large scrapes to avoid rate limits."
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
