# Trustpilot Business Search: Domains & TrustScore (`themineworks/trustpilot-business-search`) Actor

Discover Trustpilot businesses by category or keyword: domain, TrustScore, review count, category and verification status. Feeds domains into the Trustpilot Reviews Scraper. Use as an MCP server in Claude & AI agents.

- **URL**: https://apify.com/themineworks/trustpilot-business-search.md
- **Developed by:** [The Mine Works](https://apify.com/themineworks) (community)
- **Categories:** Lead generation, Business, MCP servers
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.20 / 1,000 business 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 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 Business Search: Find Companies by Category or Keyword (No Login)

### Overview

Trustpilot Business Search discovers businesses on Trustpilot by category or keyword and returns each company as a clean record: domain, name, TrustScore, review count, star band, categories, verification and claim status, city, country, logo and profile URL. Browse a category like `electronics_technology` or run a free-text search.

It is the front of a search then reviews pipeline. Every result carries a `domain` field that feeds straight into the Trustpilot Reviews Scraper.

✅ No login required | ✅ No API key | ✅ Pay only for results | ✅ MCP-ready for AI agents

### Features

Two discovery modes. Browse Trustpilot categories or run a free-text keyword search.
Domain-first output. Every result carries the `domain` field the Reviews Scraper expects.
Full company metadata. TrustScore, review count, verification, claim status, city, country.
Real browser rendering. Clears Trustpilot's AWS WAF JavaScript challenge automatically.
Residential proxy by default. No datacenter-IP blocks, no third-party unblocker.

### How it works

Trustpilot fronts every page with an AWS WAF JavaScript challenge that TLS-fingerprints plain HTTP and blocks it. This actor uses a real Chromium browser (Crawlee's PlaywrightCrawler with a full fingerprint stack) through residential proxies, so the challenge resolves and the page renders.

It then reads the business list from the `__NEXT_DATA__` JSON island on legacy pages, or straight from the business-card links on modern App-Router pages. No account, no cookies, no API key, no third-party unblocker.

### 🧾 Input configuration

```json
{
  "query": "electronics_technology",
  "searchMode": "category",
  "maxResults": 50,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": ["RESIDENTIAL"],
    "apifyProxyCountry": "US"
  }
}
```

### 📤 Output format

```json
{
  "domain": "tadibrothers.com",
  "name": "TadiBrothers",
  "trustScore": 5,
  "reviewsCount": 3645,
  "stars": 5,
  "categories": ["auto_body_parts_supplier", "auto_repair_shop", "safety_equipment_supplier", "horsebox_specialist", "electronics_store", "truck_parts_supplier"],
  "city": "Reseda",
  "country": "United States",
  "logoUrl": "//s3-eu-west-1.amazonaws.com/tpd/screenshotlogo-domain/4bdc7d56000064000505cb54/198x149.png",
  "profileUrl": "https://www.trustpilot.com/review/tadibrothers.com",
  "scraped_at": "2026-07-15T04:17:15.073Z"
}
```

Every business record contains these fields. Trustpilot does not expose every field on every business, and any field the actor cannot find (for example `isVerified`, `isClaimed`, or `city` on a business that lists no city) is dropped from the record rather than sent as null, so real records will not always carry every field below:

| Field | Description |
| --- | --- |
| 🌐 `domain` | Business domain, feeds `trustpilot-reviews` |
| 🏢 `name` | Business display name |
| ⭐ `trustScore` | Trustpilot TrustScore (1 to 5) |
| 💬 `reviewsCount` | Total review count |
| 🌟 `stars` | Star rating band |
| 🗂️ `categories` | Trustpilot categories (array) |
| ✅ `isVerified` | Verified business flag, when Trustpilot exposes it |
| 🔖 `isClaimed` | Claimed profile flag, when Trustpilot exposes it |
| 🏙️ `city` | City, when listed |
| 🌍 `country` | Country |
| 🖼️ `logoUrl` | Logo URL |
| 🔗 `profileUrl` | Trustpilot review-page URL |
| 🕒 `scraped_at` | ISO timestamp of the scrape |

### 💼 Common use cases

**Lead generation**
Build lists of businesses in a category, ranked by TrustScore and review count.
Filter to verified, claimed, high-review-volume companies before outreach.

**Market mapping**
See every player in a niche and how they compare on reviews.
Track who is winning share of voice at scale.

**Review-target discovery**
Collect domains here, then bulk-scrape their reviews with the Reviews Scraper.
Turn any category into a ready feed of review sources.

**CRM enrichment**
Attach TrustScore, review volume, verification and location to company records.
Keep firmographic data current without a subscription database.

### 🚀 Getting started

1. Open the actor and enter a category or keyword (e.g. `electronics_technology` or `travel insurance`).
2. Choose a search mode: `category` browses a Trustpilot category page (more results), `keyword` runs a text search.
3. Set max businesses to control volume and cost.
4. Leave the residential proxy on. Trustpilot's WAF blocks datacenter IPs.
5. Click Start and download the results as JSON, CSV or Excel, or pull via API or MCP.

### FAQ

**Do I need a Trustpilot account or API key?**
No. The scraper reads publicly visible category and search pages with a real browser. No login, no cookie, no API key.

**Category mode or keyword mode, which should I use?**
Use category for the broadest results (it browses a Trustpilot category page and paginates). Use keyword for a targeted text search when you know a name or term.

**How do I then get the reviews for these businesses?**
Take the `domain` field from each result and pass it to the Trustpilot Reviews Scraper. The two actors share the `domain` key, so it is a clean search to reviews chain.

**Why are residential proxies required?**
Trustpilot's AWS WAF challenge blocks datacenter IPs. Residential proxies (the default) let the browser clear the challenge and render the page.

**How much does it cost?**
Pay per event at $2 per 1,000 businesses ($0.002 each) plus a tiny per-run start fee. You pay only for businesses actually delivered, and there is no free tier. Blocked pages and failures are never charged.

**Can I use it inside an AI agent?**
Yes. It is exposed as an MCP tool. See below.

### Use in Claude, ChatGPT & any MCP agent

```
https://mcp.apify.com/?tools=themineworks/trustpilot-business-search
```

Or call it programmatically with the Apify client, chaining into the Reviews Scraper:

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

const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });

// 1) Find businesses in a category
const search = await client.actor('themineworks/trustpilot-business-search').call({
  query: 'electronics_technology',
  searchMode: 'category',
  maxResults: 50,
});
const { items: businesses } = await client.dataset(search.defaultDatasetId).listItems();

// 2) Chain each domain into the Reviews Scraper
for (const b of businesses) {
  if (!b.domain) continue;
  await client.actor('themineworks/trustpilot-reviews').call({
    companyDomain: b.domain,
    maxResults: 100,
  });
}
```

### 🛠️ Complete your reviews pipeline

Pair Business Search with the rest of the reviews suite:

- **[Trustpilot Reviews Scraper](https://apify.com/themineworks/trustpilot-reviews)**: pull reviews and ratings for every domain you find here.
- **[Google Maps Reviews Scraper](https://apify.com/themineworks/google-maps-reviews)**: reviews and ratings from Google Maps listings.
- **[TripAdvisor Reviews Scraper](https://apify.com/themineworks/tripadvisor-reviews)**: reviews and ratings for hotels, restaurants and attractions.

Typical flow: trustpilot-business-search finds the companies, trustpilot-reviews pulls every review, google-maps-reviews and tripadvisor-reviews cross-check reputation across other platforms.

Found a bug or have a feature request? Open an issue on the actor's Apify Console page or reach out through the Apify profile.

# Actor input Schema

## `query` (type: `string`):

Trustpilot category slug (e.g. "electronics\_technology", "bank", "travel\_insurance") or a free-text keyword. See searchMode.

## `searchMode` (type: `string`):

"category" browses a Trustpilot category page (more results). "keyword" runs a text search.

## `maxResults` (type: `integer`):

Maximum number of businesses to return. First 25 lifetime are free.

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

Apify proxy. US residential required to pass the Trustpilot WAF.

## Actor input object example

```json
{
  "query": "electronics_technology",
  "searchMode": "category",
  "maxResults": 5,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "US"
  }
}
```

# Actor output Schema

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

No description

# 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 = {
    "query": "electronics_technology",
    "searchMode": "category",
    "maxResults": 5,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ],
        "apifyProxyCountry": "US"
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("themineworks/trustpilot-business-search").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 = {
    "query": "electronics_technology",
    "searchMode": "category",
    "maxResults": 5,
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
        "apifyProxyCountry": "US",
    },
}

# Run the Actor and wait for it to finish
run = client.actor("themineworks/trustpilot-business-search").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 '{
  "query": "electronics_technology",
  "searchMode": "category",
  "maxResults": 5,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "US"
  }
}' |
apify call themineworks/trustpilot-business-search --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/acts/hcecrkz3EQdKttNGN/builds/OMoNlBVICqIPBtZOf/openapi.json
