# Trustpilot Business Extractor (`schnellscrapers/trustpilot-business-snapshot`) Actor

Extract Trustpilot business profiles for rating and competitor monitoring: TrustScore, stars, review counts, 1–5-star distribution, languages, reply behavior, categories, status, alerts, and public contact fields. One snapshot per business with local thresholds and no review-page backfill.

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

## Pricing

from $5.00 / 1,000 business snapshots

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#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

### What does Trustpilot Business Extractor do?

Trustpilot Business Extractor reads public Trustpilot business pages and returns one compact business snapshot per URL. Use it to compare competitors, feed a rating dashboard, or schedule a profile check without downloading a page of individual reviews for every business.

### What data can you extract from Trustpilot?

- Rating snapshot — TrustScore, stars, total reviews, reviews from the last 12 months, and the 1–5-star distribution.
- Language and category signals — review language counts, Trustpilot categories, business country, locations, and the public profile URL.
- Company profile — business name, domain, website, profile image, public email, phone, address, city, country, and postal code when listed.
- Reputation operations — claimed, closed, merged, collecting-reviews, verification flags, consumer alerts, and incentivised-review status.
- Response behavior — reply percentage, average days to reply, negative reviews with replies, and total negative reviews when Trustpilot reports them.

### How to use Trustpilot Business Extractor

1. Open the actor and add one or more Trustpilot review URLs or company domains in the Business URLs field.
2. Set Maximum businesses to cap pages opened and rows considered. The default is 20.
3. Optionally set a minimum TrustScore, minimum review count, country codes, or Include closed businesses.
4. Click Run. Keep Dry run enabled when you want to check matches without writing rows.
5. Download the dataset as JSON, CSV, or Excel, or read it through the Apify dataset API.

### How much does it cost?

The launch plan is pay per event: `$0.03` per business snapshot (`$30 / 1,000` snapshots) plus a `$0.05` actor-start event. The start event covers fixed browser and proxy usage even when thresholds match zero businesses; Apify may charge one start event per GB of run memory, with a minimum of one. The planned free tier allows up to 20 business snapshots per run. Filtered profiles and dry-run matches are not written or charged as business events. For lower cost, batch several business URLs in one run and keep only the fields needed by your dashboard.

### Input

Business URLs accepts canonical Trustpilot review pages or bare domains. The actor normalizes domains to Trustpilot profile URLs, removes duplicates, and skips invalid entries. Use the threshold fields to keep only profiles that fit your monitoring list.

```json
{
  "businessUrls": [
    { "url": "https://www.trustpilot.com/review/apify.com" },
    { "url": "nike.com" }
  ],
  "maxBusinesses": 20,
  "minimumTrustScore": 4,
  "minimumReviewCount": 100,
  "countryCodes": ["US", "GB"]
}
```

### Output

Each dataset item is one business snapshot. The row includes Trustpilot identity, rating and review volume, star counts, language counts, categories, public contact fields, status flags, response behavior, consumer alerts, and `scrapedAt`.

```json
{
  "businessId": "62ac9c3177fbadc00785d7fe",
  "businessUrl": "https://www.trustpilot.com/review/apify.com",
  "businessDomain": "apify.com",
  "businessName": "Apify",
  "trustScore": 4.8,
  "stars": 5,
  "totalReviewCount": 707,
  "reviewsLast12Months": 527,
  "oneStarCount": 13,
  "twoStarCount": 3,
  "threeStarCount": 4,
  "fourStarCount": 51,
  "fiveStarCount": 636,
  "reviewLanguageCounts": [{ "language": "en", "count": 661 }],
  "categories": ["Software Company", "Computer Software Store"],
  "countryCode": "CZ",
  "contactEmail": "hello@apify.com",
  "isClaimed": true,
  "isClosed": false,
  "replyPercentage": 0,
  "consumerAlert": null,
  "scrapedAt": "2026-08-30T12:00:00.000Z"
}
```

### Integrations

Connect the dataset to Make, n8n, Zapier, webhooks, or scheduled Apify runs. You can also start the actor and iterate over its dataset with the [Apify API](https://docs.apify.com/api/v2) or the official [Python and Node.js clients](https://docs.apify.com/api/client).

### Related actors

- [Trustpilot Reviews Scraper](https://apify.com/schnellscrapers/trustpilot-review-monitor) — collect recent review rows with text, ratings, dates, replies, and new-review flags.
- [Shopify Store Contact Extractor](https://apify.com/schnellscrapers/shopify-store-contact-extractor) — enrich known storefronts with public emails, phones, social profiles, and store names.
- [Trustpilot All Reviews Scraper](https://apify.com/memo23/trustpilot-scraper-ppe) — export deeper review history when a profile snapshot is not enough.

### FAQ

#### How does Trustpilot Business Extractor work?

It opens each supplied public Trustpilot business page, reads the structured profile state exposed after the page loads, normalizes the profile fields, applies your thresholds, and writes one row for each matching business.

#### Can I use Trustpilot Business Extractor as an API?

Yes. Start the actor through the Apify API, then read the default dataset URL returned by the run. The Output tab includes ready-to-use API examples.

#### Can I use Trustpilot Business Extractor in Python or Node.js?

Yes. Use the official `apify-client` package to start the actor and iterate over its dataset.

```js
const run = await apifyClient.actor('YOUR_USERNAME/trustpilot-business-snapshot').call(input);
for await (const business of apifyClient.dataset(run.defaultDatasetId).iterateItems()) console.log(business);
```

#### What does this actor access?

It accesses the public Trustpilot business review pages named in your input. It does not request a Trustpilot login or API key. A Residential Apify Proxy is enabled by default because the public site can present a browser challenge.

#### Is it legal to scrape Trustpilot?

This actor reads publicly displayed business profile data. Whether collection and reuse are permitted depends on your jurisdiction, agreements, and intended use, so review the rules that apply to your project before running it.

#### Why did a business return no row?

The profile may be closed and excluded by default, its TrustScore or review count may be below your thresholds, the URL may be invalid, or Trustpilot may have returned a browser challenge. The run log identifies skipped pages; try the default Residential proxy setting and the unfiltered inputs.

### Your feedback

If a profile field changes or you need another monitoring filter, report it through the Issues tab on the actor page. Feature requests with a sample public Trustpilot URL make fixes faster to verify.

# Actor input Schema

## `businessUrls` (type: `array`):

Add Trustpilot review URLs or company domains, one per row. Examples: `https://www.trustpilot.com/review/amazon.com` or `nike.com`.

## `maxBusinesses` (type: `integer`):

Set the hard cap on Trustpilot business pages opened and snapshot rows considered. The default 20 is the planned free-tier allowance.

## `minimumTrustScore` (type: `number`):

Keep businesses at or above this TrustScore from 0 to 5. Leave at 0 to keep every open profile.

## `minimumReviewCount` (type: `integer`):

Keep businesses with at least this many total Trustpilot reviews. Leave at 0 to keep every profile.

## `countryCodes` (type: `array`):

Keep businesses whose Trustpilot profile country matches a code such as `US`, `GB`, or `DE`. Leave empty for all countries.

## `includeClosedBusinesses` (type: `boolean`):

Write profiles marked closed or temporarily closed by Trustpilot. Leave off for active businesses only.

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

Residential Apify Proxy is used by default because Trustpilot can present a browser challenge. Set `useApifyProxy` to false to try a direct browser session; platform usage is billed according to your Apify plan.

## `dryRun` (type: `boolean`):

Fetch and filter business profiles without writing dataset rows. Logs report matched and would-write counts.

## Actor input object example

```json
{
  "businessUrls": [
    {
      "url": "https://www.trustpilot.com/review/apify.com"
    }
  ],
  "maxBusinesses": 20,
  "minimumTrustScore": 0,
  "minimumReviewCount": 0,
  "countryCodes": [],
  "includeClosedBusinesses": false,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  },
  "dryRun": false
}
```

# Actor output Schema

## `snapshots` (type: `string`):

Business profile snapshots collected from the supplied Trustpilot URLs.

# 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 = {
    "businessUrls": [
        {
            "url": "https://www.trustpilot.com/review/apify.com"
        }
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("schnellscrapers/trustpilot-business-snapshot").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 = { "businessUrls": [{ "url": "https://www.trustpilot.com/review/apify.com" }] }

# Run the Actor and wait for it to finish
run = client.actor("schnellscrapers/trustpilot-business-snapshot").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 '{
  "businessUrls": [
    {
      "url": "https://www.trustpilot.com/review/apify.com"
    }
  ]
}' |
apify call schnellscrapers/trustpilot-business-snapshot --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,schnellscrapers/trustpilot-business-snapshot"
        }
    }
}

```

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/SfrbVdjcWDHcoUQBS/builds/peH1AHBQH7PQbUChz/openapi.json
