# Trustpilot Search Scraper (Cheap) (`data_api/trustpilot-search-scraper-cheap`) Actor

Trustpilot search scraper that finds businesses by keyword or category and pulls trust scores, review counts, and domain data, so SEO teams and marketers can compare reputations without manual browsing.

- **URL**: https://apify.com/data\_api/trustpilot-search-scraper-cheap.md
- **Developed by:** [Data API](https://apify.com/data_api) (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 $3.99 / 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 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 Search Scraper

![Trustpilot Search Scraper](cover.jpg)

Trustpilot ranks thousands of companies in every category, but the site only ever shows you a handful at a time and gives you no way to pull the list into a spreadsheet. This scraper does that for you. Type a keyword like "car insurance" or a brand name, and it walks the search results and returns each company as a clean row: name, TrustScore, star rating, review count, domain, website, and the categories it sits under. Run one keyword or work through a list, then export the lot to JSON, CSV, or Excel.

### What you get

Every company in the search results comes back as one row with the same set of fields, so the data drops straight into a sheet or database. Each row covers:

- **Company identity** — `companyName`, `companyDomain`, `companyWebsite`, `reviewPageUrl`
- **Ratings and reviews** — `trustRating`, `starCount`, `reviewsTotal`, `ratingTier`
- **Classification** — `categoryNames`, `countryCode`
- **Run metadata** — `collectedAt`

### Quick start

1. Click **Try for free** to open the input form.
2. Type a keyword, brand, or category into **Search term** (for example `car insurance`).
3. Select **Residential** proxies — Trustpilot is behind Cloudflare, so datacenter IPs get blocked.
4. Set a **Results limit** if you want to cap the run, then press **Start**.
5. When it finishes, export to JSON, CSV, Excel, or XML.

![How it works](how-it-works.jpg)

### Use cases

- **Competitor benchmarking** — see how every company in your category scores and how many reviews each one has built up
- **Lead generation** — pull a list of businesses in a niche along with their domains and websites
- **Reputation tracking** — record TrustScores and review counts over time to watch how rivals move
- **Market research** — size up a category by how many companies compete in it and where they rank
- **Vendor shortlisting** — compare suppliers by rating tier before you reach out
- **Affiliate and review sites** — gather a ranked set of companies to feed comparison content

### Input

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `searchTerm` | string | Yes | Keyword, brand, or category to look up on Trustpilot. Example: `car insurance`. |
| `resultsLimit` | integer | No | Cap on how many company listings to collect before stopping. Default `50`. |
| `proxyConfiguration` | object | No | Proxies for each request. Use Residential — Cloudflare blocks datacenter IPs on Trustpilot. |

#### Example input

```json
{
    "searchTerm": "car insurance",
    "resultsLimit": 50,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": ["RESIDENTIAL"]
    }
}
```

### Output

Each company in the search results becomes one row, and every row carries the same fields, so your dataset stays rectangular and easy to load.

#### Example output

```json
{
    "companyName": "SafeDrive Insurance",
    "reviewPageUrl": "https://www.trustpilot.com/review/safedrive.com",
    "companyDomain": "safedrive.com",
    "companyWebsite": "https://www.safedrive.com",
    "trustRating": 4.6,
    "starCount": 5,
    "reviewsTotal": 18432,
    "ratingTier": "Excellent",
    "categoryNames": ["Insurance Agency", "Car Insurance Company"],
    "countryCode": "US",
    "collectedAt": "2026-06-30T12:00:00.000000+00:00"
}
```

#### Output fields

| Field | Type | Description |
|-------|------|-------------|
| `companyName` | string | Company name shown on its Trustpilot profile |
| `reviewPageUrl` | string | Link to the company's Trustpilot review page |
| `companyDomain` | string | Trustpilot identifier, usually the web domain such as `amazon.com` |
| `companyWebsite` | string | The company's own website address |
| `trustRating` | number | TrustScore on a 1.0 to 5.0 scale |
| `starCount` | integer | Whole-star rating from 1 to 5 |
| `reviewsTotal` | integer | Total number of reviews collected |
| `ratingTier` | string | Rating band: Excellent, Great, Average, Poor, or Bad |
| `categoryNames` | array | Trustpilot categories the company appears under |
| `countryCode` | string | Two-letter country code where the company is based |
| `collectedAt` | string | ISO 8601 timestamp of when the row was captured |

### Tips for best results

- **Use Residential proxies.** Trustpilot runs Cloudflare, which turns away datacenter IPs. If you see empty results or challenge warnings in the log, this is almost always the cause.
- **Keep test runs small.** Set `resultsLimit` to 20 or 30 while you confirm the output fits your pipeline, then raise it for the full batch.
- **Pick specific keywords.** A narrow term like `pet insurance` returns a tighter, more relevant set than a broad one like `insurance`.
- **Expect some blank fields.** Not every company lists a website or country on Trustpilot, so those values can come back empty — that is the source data, not a scrape failure.

### How can I use Trustpilot company data?

**How can I use the Trustpilot Search Scraper to benchmark competitors?**
Search your category — say `meal kits` or `web hosting` — and the scraper returns every listed company with its TrustScore, star rating, and review count. Sort the rows by rating or review volume to see who leads the category and where you sit against them.

**How can I pull a list of companies in a niche for lead generation?**
Enter a keyword for the niche and set `resultsLimit` to the number of businesses you want. Each result includes the company name, domain, and website, which gives you a ready contact list to enrich and reach out to.

**How can I track Trustpilot ratings over time?**
Run the same search term on a schedule and keep the dated exports. Because every row carries `trustRating`, `reviewsTotal`, and `collectedAt`, you can chart how scores and review counts shift week to week for a whole category at once.

**How do I export Trustpilot search results to a spreadsheet?**
Once the run finishes, use the export menu to download the dataset as CSV or Excel. Each company is one row and the fields stay consistent, so the file opens cleanly in Google Sheets, Excel, or any database import.

### Is it legal to scrape data?

Our actors are ethical and do not extract any private user data, such as email addresses or private contact information. They only extract what the user has chosen to share publicly. We therefore believe that our actors, when used for ethical purposes by Apify users, are safe.

However, you should be aware that your results could contain personal data. Personal data is protected by the GDPR in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers.

You can also read Apify's blog post on the [legality of web scraping](https://blog.apify.com/is-web-scraping-legal/).

### Support

Questions, feature requests, or a field you'd like added? Reach out at <data.apify@proton.me> and we'll get back to you.

# Actor input Schema

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

Keyword, business name, or category to search on Trustpilot. Example: 'web hosting', 'pizza delivery', 'Nike'.

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

Maximum number of business listings to extract. Caps the run to avoid unexpected costs.

## `timeoutSecs` (type: `integer`):

Maximum total runtime for the actor in seconds.

## Actor input object example

```json
{
  "searchQuery": "web hosting",
  "maxItems": 10,
  "timeoutSecs": 300
}
```

# 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 = {
    "searchQuery": "web hosting"
};

// Run the Actor and wait for it to finish
const run = await client.actor("data_api/trustpilot-search-scraper-cheap").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 = { "searchQuery": "web hosting" }

# Run the Actor and wait for it to finish
run = client.actor("data_api/trustpilot-search-scraper-cheap").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "searchQuery": "web hosting"
}' |
apify call data_api/trustpilot-search-scraper-cheap --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,data_api/trustpilot-search-scraper-cheap"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/XmXMMzdoCpRpNQ0Sy/builds/TwSMBMKpQUvc93HpD/openapi.json
