# Trustpilot Enricher (`silentflow/trustpilot-enricher`) Actor

Enrich any domain with Trustpilot reputation data: trust score, star distribution, AI-generated review summary, reply behavior, verification status, contact info, and 20 recent reviews. Search by keyword or browse 22 industry categories to enrich entire sectors at once. No subscription needed.

- **URL**: https://apify.com/silentflow/trustpilot-enricher.md
- **Developed by:** [SilentFlow](https://apify.com/silentflow) (community)
- **Categories:** Lead generation, Marketing, Business
- **Stats:** 3 total users, 2 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.70 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/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.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 Enricher

**Turn any domain into a full Trustpilot reputation profile.** Trust score, star distribution, AI summary, reply behavior, contact info, and 20 recent reviews. One API call per domain.

### How it works

![How Trustpilot Enricher works, from domain to structured reputation data](https://api.apify.com/v2/key-value-stores/6Q3ISGw2oWN0WlT74/records/how-it-works-v2.png)

### ✨ Why teams use this enricher

Paying $339/month for Trustpilot's Business API just to check a competitor's score? Copy-pasting from browser tabs? Building spreadsheets manually?

- 🔍 **Full reputation profile in one call.** Trust score, star distribution, review count, AI summary, reply behavior, verification status, and contact info. Everything Trustpilot shows about a company, structured as JSON.
- 💰 **No Trustpilot subscription needed.** Trustpilot's Business API costs $339-1,229/month and only shows YOUR reviews. This enricher gives you data on ANY company for a fraction of the cost.
- ⚡ **50 domains in 10 seconds.** Parallel workers enrich your entire list while you wait. No rate limits, no failures.
- 📂 **Category mode.** Enrich an entire industry at once. Pass `bank` and get reputation data for all 1,580 banks on Trustpilot.
- 🔎 **Search mode.** Search by keyword ("cloud hosting", "fintech") and enrich every matching business automatically.
- 📊 **20 recent reviews included.** Each domain comes with its latest 20 reviews: rating, text, date, consumer name, and verification status.
- 🤖 **AI summary ready to use.** Trustpilot's own AI-generated summary of all reviews, included in every result.

### 🎯 What you can do with Trustpilot data

| Team | What they build |
|------|----------------|
| **Sales** | Enrich your CRM with trust scores to prioritize leads that have strong reputations |
| **Due Diligence** | Check any company's reputation before investing, partnering, or onboarding |
| **Competitive Intel** | Compare your trust score and reply rate against every competitor in your category |
| **Brand Monitoring** | Track your star distribution and reply percentage over time |
| **Market Research** | Analyze reputation across hundreds of companies in a sector with category mode |
| **Procurement** | Verify supplier reputation before signing contracts |

### 📥 Input parameters

| Parameter | Type | Description |
|-----------|------|-------------|
| `domains` | string[] | Domain names to look up (e.g., `stripe.com`, `revolut.com`, `backmarket.fr`) |
| `category` | string | Enrich all businesses in a Trustpilot category (e.g., `bank`, `shopping_fashion`) |
| `search` | string | Search by keyword and enrich all matching businesses (e.g., `fintech`, `cloud hosting`) |
| `maxItems` | integer | Maximum domains to enrich (default: 100, max: 10,000) |

You can combine `domains`, `category`, and `search` in the same run.

**Available categories:** `animals_pets`, `beauty_wellbeing`, `business_services`, `construction_manufactoring`, `education_training`, `electronics_technology`, `events_entertainment`, `food_beverages_tobacco`, `health_medical`, `hobbies_crafts`, `home_garden`, `home_services`, `legal_services_government`, `media_publishing`, `money_insurance`, `public_local_services`, `restaurants_bars`, `shopping_fashion`, `sports`, `travel_vacation`, `utilities`, `vehicles_transportation`

### 📊 Output data

```json
{
  "domain": "revolut.com",
  "displayName": "Revolut",
  "trustScore": 4.7,
  "stars": 4,
  "totalReviews": 385318,
  "profileImage": "https://...",
  "trustpilotUrl": "https://www.trustpilot.com/review/revolut.com",
  "categories": ["Financial Institution"],
  "isClaimed": true,
  "claimedDate": "2017-09-06T14:48:09.000Z",
  "isCollectingReviews": true,
  "hasSubscription": true,
  "verifiedPaymentMethod": true,
  "replyPercentage": 73.2,
  "averageDaysToReply": 1.5,
  "starDistribution": {
    "oneStar": 28292,
    "twoStar": 5459,
    "threeStar": 10843,
    "fourStar": 34765,
    "fiveStar": 305959
  },
  "contact": {
    "email": "formalcomplaints@revolut.com",
    "address": "7 Westferry Circus",
    "city": "London",
    "country": "GB"
  },
  "aiSummary": "Most customers report a positive experience...",
  "recentReviews": [
    {
      "id": "abc123",
      "title": "Great banking app",
      "text": "Very easy to use...",
      "rating": 5,
      "date": "2026-04-07T12:00:00Z",
      "consumer": "John D.",
      "verified": true,
      "hasReply": false
    }
  ],
  "scrapedAt": "2026-04-08T14:30:00Z"
}
````

### 🗂️ Data fields

| Category | Fields |
|----------|--------|
| **Reputation** | `trustScore` (1.0-5.0), `stars` (1-5), `totalReviews`, `starDistribution` |
| **Reply behavior** | `replyPercentage`, `averageDaysToReply` |
| **Business status** | `isClaimed`, `isCollectingReviews`, `hasSubscription`, `verifiedPaymentMethod` |
| **Contact** | `email`, `phone`, `address`, `city`, `country` |
| **AI Summary** | `aiSummary` (Trustpilot's own AI-generated summary) |
| **Recent reviews** | 20 reviews with `rating`, `title`, `text`, `date`, `consumer`, `verified`, `hasReply` |

### 🚀 Examples

#### Enrich a single domain

```json
{
  "domains": ["revolut.com"]
}
```

#### Bulk enrich 5 competitors

```json
{
  "domains": ["stripe.com", "wise.com", "revolut.com", "backmarket.fr", "amazon.com"]
}
```

#### Enrich every bank on Trustpilot

```json
{
  "category": "bank",
  "maxItems": 500
}
```

#### Search by keyword

```json
{
  "search": "cloud hosting",
  "maxItems": 200
}
```

#### Combine all modes

```json
{
  "domains": ["stripe.com"],
  "category": "money_insurance",
  "search": "neobank",
  "maxItems": 100
}
```

### 💻 Integrations

#### Python

```python
from apify_client import ApifyClient

client = ApifyClient("<YOUR_API_TOKEN>")

run = client.actor("silentflow/trustpilot-enricher").call(run_input={
    "domains": ["revolut.com", "stripe.com", "wise.com"],
})

for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(f"{item['displayName']}: {item['trustScore']}/5 ({item['totalReviews']} reviews)")
    print(f"  Reply rate: {item['replyPercentage']}%")
    print(f"  AI Summary: {item['aiSummary'][:100]}...")
```

#### JavaScript

```javascript
import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: '<YOUR_API_TOKEN>' });

const run = await client.actor('silentflow/trustpilot-enricher').call({
    domains: ['revolut.com', 'stripe.com', 'wise.com'],
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach(item => {
    console.log(`${item.displayName}: ${item.trustScore}/5 (${item.totalReviews} reviews)`);
});
```

### 📈 Performance

| Metric | Value |
|--------|-------|
| Speed | ~50 domains in 10 seconds |
| Reviews per domain | 20 most recent |
| Category mode | Up to 10,000 businesses |
| Search mode | Automatic pagination |
| Data freshness | Real-time from Trustpilot |

### 💡 Tips for best results

1. **Use the exact domain.** `backmarket.fr` and `backmarket.com` can be different Trustpilot pages. Use the one your target company actually uses.
2. **Star distribution tells the real story.** A 3.5 score with mostly 1s and 5s means a polarizing company. A 3.5 with even distribution means consistently mediocre.
3. **Reply percentage signals customer care.** Companies replying to 90%+ of negative reviews are actively managing their reputation.
4. **Category mode for market research.** Pass `bank` to get reputation data for every bank on Trustpilot. Then sort by trust score in your spreadsheet.
5. **Domains not found return a clear error.** No crash, no charge. You only pay for successful enrichments.

### ❓ FAQ

**Q: What if a domain isn't on Trustpilot?**
A: You get a result with an `error` field saying "not found on Trustpilot". No charge for failed lookups.

**Q: How is this different from Trustpilot's own API?**
A: Trustpilot's Business API ($339-1,229/month) only shows YOUR reviews. This enricher gives you public data for ANY company.

**Q: Can I get more than 20 reviews per domain?**
A: This enricher is built for the "1 domain = 1 reputation profile" use case. 20 recent reviews give a snapshot. For full review extraction, use a dedicated Trustpilot review scraper.

**Q: How fresh is the data?**
A: Live data, every run. Trust scores and reviews are fetched directly from Trustpilot.

**Q: Can I combine domains, category, and search?**
A: Yes. All three modes can be used in the same run. Results are combined and deduplicated.

### 📬 Support

Need something this enricher doesn't do yet? We ship features fast.

- 💡 **Feature requests** go straight to our backlog
- ⚙️ **Enterprise needs?** We do custom integrations and high-volume setups

Response time: usually under 24 hours.

Check out our other scrapers: [SilentFlow on Apify](https://apify.com/silentflow)

# Actor input Schema

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

List of domain names to look up on Trustpilot (e.g., stripe.com, revolut.com)

## `category` (type: `string`):

Enrich all businesses in a Trustpilot category. Use a category slug (e.g., 'bank', 'money\_insurance') or full URL (e.g., 'https://www.trustpilot.com/categories/bank'). Combines with domains if both are provided.

## `search` (type: `string`):

Search Trustpilot by keyword (e.g., 'fintech', 'delivery app', 'cloud hosting'). Enriches all matching businesses.

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

Maximum number of domains to enrich (applies to both domains and category)

## Actor input object example

```json
{
  "domains": [
    "stripe.com"
  ],
  "maxItems": 100
}
```

# Actor output Schema

## `results` (type: `string`):

Complete Trustpilot enrichment data.

## `resultsCSV` (type: `string`):

Data in CSV format.

## `resultsExcel` (type: `string`):

Data in Excel format.

# 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": [
        "stripe.com"
    ],
    "category": "",
    "search": ""
};

// Run the Actor and wait for it to finish
const run = await client.actor("silentflow/trustpilot-enricher").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": ["stripe.com"],
    "category": "",
    "search": "",
}

# Run the Actor and wait for it to finish
run = client.actor("silentflow/trustpilot-enricher").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": [
    "stripe.com"
  ],
  "category": "",
  "search": ""
}' |
apify call silentflow/trustpilot-enricher --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Trustpilot Enricher",
        "description": "Enrich any domain with Trustpilot reputation data: trust score, star distribution, AI-generated review summary, reply behavior, verification status, contact info, and 20 recent reviews. Search by keyword or browse 22 industry categories to enrich entire sectors at once. No subscription needed.",
        "version": "1.0",
        "x-build-id": "ZzfgmdP29HPb2adVb"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/silentflow~trustpilot-enricher/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-silentflow-trustpilot-enricher",
                "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/silentflow~trustpilot-enricher/runs": {
            "post": {
                "operationId": "runs-sync-silentflow-trustpilot-enricher",
                "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/silentflow~trustpilot-enricher/run-sync": {
            "post": {
                "operationId": "run-sync-silentflow-trustpilot-enricher",
                "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",
                "properties": {
                    "domains": {
                        "title": "Domains",
                        "type": "array",
                        "description": "List of domain names to look up on Trustpilot (e.g., stripe.com, revolut.com)",
                        "items": {
                            "type": "string"
                        }
                    },
                    "category": {
                        "title": "Trustpilot category",
                        "type": "string",
                        "description": "Enrich all businesses in a Trustpilot category. Use a category slug (e.g., 'bank', 'money_insurance') or full URL (e.g., 'https://www.trustpilot.com/categories/bank'). Combines with domains if both are provided."
                    },
                    "search": {
                        "title": "Search keyword",
                        "type": "string",
                        "description": "Search Trustpilot by keyword (e.g., 'fintech', 'delivery app', 'cloud hosting'). Enriches all matching businesses."
                    },
                    "maxItems": {
                        "title": "Max domains",
                        "minimum": 1,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "Maximum number of domains to enrich (applies to both domains and category)",
                        "default": 100
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
