# Trustpilot Reviews Scraper ⭐ (no key) (`tagadanar/trustpilot-reviews`) Actor

Scrape Trustpilot reviews for any company by domain or URL: rating, title, text, experience date, verification, reviewer and the company's reply, plus a free TrustScore summary per business. No API key, no subscription: one flat price per review with platform usage included.

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

## Pricing

from $0.53 / 1,000 review scrapeds

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/platform/actors/running/actors-in-store#pay-per-event

## 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/docs.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.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/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 Reviews Scraper: Reviews, Ratings and TrustScore as JSON

Pull every Trustpilot review for a company into clean JSON. Give it a domain or a Trustpilot URL and it returns each review with the fields you actually use: rating, title, text, experience date, verification, reviewer, country and the company's public reply. Every company also gets one summary row with its TrustScore, star rating, total review count and categories.

It reads Trustpilot's own page data, so you get the same reviews the site shows, not a fragile copy scraped off the layout. Trustpilot's bot check is handled for you, and the per-review price is all you pay: platform usage is included, even for large pulls.

### What you get per review

| Field | Description |
| --- | --- |
| `rating` | Star rating, 1 to 5 |
| `title`, `text` | Review headline and body |
| `experiencedDate`, `publishedDate`, `updatedDate` | When the experience happened, when it was posted, when last edited |
| `isVerified`, `verificationLevel`, `source` | Whether the review is verified and how it was collected |
| `consumerName`, `consumerCountry`, `consumerReviewCount` | Reviewer name, country and how many reviews they have written |
| `replyText`, `replyDate` | The company's public reply, when present |
| `likes` | Number of "useful" votes |
| `reviewUrl`, `reviewId` | Link to the review and its ID |
| `businessDomain`, `businessName` | The company the review belongs to |

Each company also produces one `recordType: "business"` row: `trustScore`, `stars`, `numberOfReviews`, `numberOfReviewsLast12Months`, `categories`, `isClaimed`, `isClosed`.

### Who uses it

- **Reputation and CX teams** tracking their own and competitors' reviews over time.
- **Analysts** measuring TrustScore, review volume and sentiment across a set of companies.
- **Lead and risk research** checking how a vendor or supplier is rated before signing.
- **Data pipelines** that need Trustpilot reviews as clean JSON, no API key.

### Input examples

One company:

```json
{
  "domains": ["amazon.com"],
  "maxReviewsPerBusiness": 500
}
````

Several companies in one run (each is scraped independently):

```json
{
  "domains": ["nike.com", "adidas.com", "www.puma.com"],
  "maxReviewsPerBusiness": 2000
}
```

Paste a Trustpilot URL directly:

```json
{
  "domains": ["https://www.trustpilot.com/review/www.amazon.com"]
}
```

### How it works

Each domain becomes a Trustpilot review page, and the actor walks the pages newest-first, deduping by review ID. It stops a company when a page returns nothing new, when Trustpilot reports the last page, or when your `maxReviewsPerBusiness` is reached. After a company's reviews are in, one free summary row with its TrustScore and star rating is added.

### Pricing

You pay per review returned, and that is the whole bill: platform usage is included in the price. The per-company summary row is free. No subscription.

| Event | Price |
| --- | --- |
| Review scraped | $0.75 per 1,000 |
| Actor start | $0.005 per run |

The small start fee covers runs that return nothing; on any normal pull it is noise next to the per-review price.

### FAQ

**Do I need a proxy or an API key?** Neither. The actor handles Trustpilot's bot check on its own, and platform usage is included in the price, so nothing extra ever appears on your bill.

**What domain do I enter?** Use the domain as Trustpilot lists it, which is usually the company's site (e.g. `amazon.com` or `www.amazon.com`). If in doubt, open the company on Trustpilot and paste the full `/review/...` URL instead.

**Can I get the full review history?** Yes. Raise `maxReviewsPerBusiness`. The actor pages until it reaches that number or runs out of reviews.

**Do I get the company's replies?** Yes. When a company has replied to a review, `replyText` and `replyDate` are filled in; otherwise they are `null`.

**Is the TrustScore included?** Yes, as a separate `recordType: "business"` summary row per company, alongside stars, total reviews and categories.

***

### Something missing?

If you need an extra field, per-star filtering, or another review site, open an issue on this Actor and describe it. I read every request and small additions usually ship within days. More review and monitoring Actors are on [my profile](https://apify.com/tagadanar).

*Trustpilot scraper, Trustpilot reviews, scrape Trustpilot, TrustScore, customer reviews data, review monitoring, reputation management, competitor review analysis, Trustpilot API alternative, company reviews JSON.*

# Actor input Schema

## `domains` (type: `array`):

Which companies to scrape. One company domain per entry as Trustpilot lists it (e.g. <code>amazon.com</code>, <code>www.nike.com</code>), or paste a full Trustpilot review URL. Each company is scraped independently.

## `maxReviewsPerBusiness` (type: `integer`):

How many reviews to return per company, newest first. Trustpilot shows 20 per page. Set lower for a quick sample, higher to pull the full history.

## Actor input object example

```json
{
  "domains": [
    "amazon.com"
  ],
  "maxReviewsPerBusiness": 40
}
```

# Actor output Schema

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

One item per review, plus one summary row per business, in the default dataset.

# 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 = {
    "domains": [
        "amazon.com"
    ],
    "maxReviewsPerBusiness": 40
};

// Run the Actor and wait for it to finish
const run = await client.actor("tagadanar/trustpilot-reviews").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 = {
    "domains": ["amazon.com"],
    "maxReviewsPerBusiness": 40,
}

# Run the Actor and wait for it to finish
run = client.actor("tagadanar/trustpilot-reviews").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 '{
  "domains": [
    "amazon.com"
  ],
  "maxReviewsPerBusiness": 40
}' |
apify call tagadanar/trustpilot-reviews --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Trustpilot Reviews Scraper ⭐ (no key)",
        "description": "Scrape Trustpilot reviews for any company by domain or URL: rating, title, text, experience date, verification, reviewer and the company's reply, plus a free TrustScore summary per business. No API key, no subscription: one flat price per review with platform usage included.",
        "version": "0.1",
        "x-build-id": "0GnqCObuKTVxGhGJQ"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/tagadanar~trustpilot-reviews/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-tagadanar-trustpilot-reviews",
                "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/tagadanar~trustpilot-reviews/runs": {
            "post": {
                "operationId": "runs-sync-tagadanar-trustpilot-reviews",
                "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/tagadanar~trustpilot-reviews/run-sync": {
            "post": {
                "operationId": "run-sync-tagadanar-trustpilot-reviews",
                "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": [
                    "domains"
                ],
                "properties": {
                    "domains": {
                        "title": "Company domains or Trustpilot URLs",
                        "minItems": 1,
                        "type": "array",
                        "description": "Which companies to scrape. One company domain per entry as Trustpilot lists it (e.g. <code>amazon.com</code>, <code>www.nike.com</code>), or paste a full Trustpilot review URL. Each company is scraped independently.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxReviewsPerBusiness": {
                        "title": "Max reviews per company",
                        "minimum": 1,
                        "maximum": 100000,
                        "type": "integer",
                        "description": "How many reviews to return per company, newest first. Trustpilot shows 20 per page. Set lower for a quick sample, higher to pull the full history.",
                        "default": 500
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
